# 1 "" # 1 "../mesa/src/mesa/main/accum.c" /* * Mesa 3-D graphics library * * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* glheader.h expanded by -frewrite-includes */ #include "util/glheader.h" #else /* glheader.h expanded by -frewrite-includes */ # 25 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/util/glheader.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2022 Yongang Luo All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file glheader.h * Wrapper for GL/gl*.h and GLES[3|2|]/gl*.h */ #ifndef GLHEADER_H #define GLHEADER_H #define GL_GLEXT_PROTOTYPES #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(__CYGWIN__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 39 "../mesa/src/util/glheader.h" /* Prevent glheader.h from including by defining APIENTRY */ #pragma push_macro("APIENTRY") #ifndef APIENTRY #define APIENTRY GLAPIENTRY #endif # 44 "../mesa/src/util/glheader.h" #if 0 /* expanded by -frewrite-includes */ #include "GL/gl.h" #endif /* expanded by -frewrite-includes */ # 44 "../mesa/src/util/glheader.h" # 45 "../mesa/src/util/glheader.h" #if 0 /* expanded by -frewrite-includes */ #include "GL/glext.h" #endif /* expanded by -frewrite-includes */ # 45 "../mesa/src/util/glheader.h" # 46 "../mesa/src/util/glheader.h" #pragma pop_macro("APIENTRY") #else /* !(defined(_WIN32) && !defined(__CYGWIN__)) */ # 48 "../mesa/src/util/glheader.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl.h expanded by -frewrite-includes */ #include "GL/gl.h" #else /* gl.h expanded by -frewrite-includes */ # 48 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GL/gl.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef __gl_h_ #define __gl_h_ /********************************************************************** * Begin system-specific stuff. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 35 "../mesa/include/GL/gl.h" #define __WIN32__ #endif # 37 "../mesa/include/GL/gl.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__WIN32__) && !defined(__CYGWIN__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 39 "../mesa/include/GL/gl.h" # define GLAPI extern #if 0 /* disabled by -frewrite-includes */ # if !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../mesa/include/GL/gl.h" /* Win32 but not WinCE */ # define GLAPIENTRY __stdcall # else # 44 "../mesa/include/GL/gl.h" # define GLAPIENTRY # endif # 46 "../mesa/include/GL/gl.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 47 "../mesa/include/GL/gl.h" # define GLAPI extern # define GLAPIENTRY __stdcall #if 0 /* disabled by -frewrite-includes */ #if 0 #elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 50 "../mesa/include/GL/gl.h" # define GLAPI __attribute__((visibility("default"))) # define GLAPIENTRY #endif /* WIN32 && !CYGWIN */ # 53 "../mesa/include/GL/gl.h" /* * WINDOWS: Include windows.h here to define APIENTRY. * It is also useful when applications include this file by * including only glut.h, since glut.h depends on windows.h. * Applications needing to include windows.h with parms other * than "WIN32_LEAN_AND_MEAN" may include windows.h before * glut.h or gl.h. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 63 "../mesa/include/GL/gl.h" #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN 1 #endif # 66 "../mesa/include/GL/gl.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 66 "../mesa/include/GL/gl.h" # 67 "../mesa/include/GL/gl.h" #endif # 68 "../mesa/include/GL/gl.h" #ifndef GLAPI #define GLAPI extern #endif # 72 "../mesa/include/GL/gl.h" #ifndef GLAPIENTRY #define GLAPIENTRY #endif # 76 "../mesa/include/GL/gl.h" #ifndef APIENTRY #define APIENTRY GLAPIENTRY #endif # 80 "../mesa/include/GL/gl.h" /* "P" suffix to be used for a pointer to a function */ #ifndef APIENTRYP #define APIENTRYP APIENTRY * #endif # 85 "../mesa/include/GL/gl.h" #ifndef GLAPIENTRYP #define GLAPIENTRYP GLAPIENTRY * #endif # 89 "../mesa/include/GL/gl.h" /* * End system-specific stuff. **********************************************************************/ #ifdef __cplusplus extern "C" { #endif # 99 "../mesa/include/GL/gl.h" #define GL_VERSION_1_1 1 #define GL_VERSION_1_2 1 #define GL_VERSION_1_3 1 #define GL_ARB_imaging 1 /* * Datatypes */ typedef unsigned int GLenum; typedef unsigned char GLboolean; typedef unsigned int GLbitfield; typedef void GLvoid; typedef signed char GLbyte; /* 1-byte signed */ typedef short GLshort; /* 2-byte signed */ typedef int GLint; /* 4-byte signed */ typedef unsigned char GLubyte; /* 1-byte unsigned */ typedef unsigned short GLushort; /* 2-byte unsigned */ typedef unsigned int GLuint; /* 4-byte unsigned */ typedef int GLsizei; /* 4-byte signed */ typedef float GLfloat; /* single precision float */ typedef float GLclampf; /* single precision float in [0,1] */ typedef double GLdouble; /* double precision float */ typedef double GLclampd; /* double precision float in [0,1] */ /* * Constants */ /* Boolean values */ #define GL_FALSE 0 #define GL_TRUE 1 /* Data types */ #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_2_BYTES 0x1407 #define GL_3_BYTES 0x1408 #define GL_4_BYTES 0x1409 #define GL_DOUBLE 0x140A /* Primitives */ #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_QUADS 0x0007 #define GL_QUAD_STRIP 0x0008 #define GL_POLYGON 0x0009 /* Vertex Arrays */ #define GL_VERTEX_ARRAY 0x8074 #define GL_NORMAL_ARRAY 0x8075 #define GL_COLOR_ARRAY 0x8076 #define GL_INDEX_ARRAY 0x8077 #define GL_TEXTURE_COORD_ARRAY 0x8078 #define GL_EDGE_FLAG_ARRAY 0x8079 #define GL_VERTEX_ARRAY_SIZE 0x807A #define GL_VERTEX_ARRAY_TYPE 0x807B #define GL_VERTEX_ARRAY_STRIDE 0x807C #define GL_NORMAL_ARRAY_TYPE 0x807E #define GL_NORMAL_ARRAY_STRIDE 0x807F #define GL_COLOR_ARRAY_SIZE 0x8081 #define GL_COLOR_ARRAY_TYPE 0x8082 #define GL_COLOR_ARRAY_STRIDE 0x8083 #define GL_INDEX_ARRAY_TYPE 0x8085 #define GL_INDEX_ARRAY_STRIDE 0x8086 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A #define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C #define GL_VERTEX_ARRAY_POINTER 0x808E #define GL_NORMAL_ARRAY_POINTER 0x808F #define GL_COLOR_ARRAY_POINTER 0x8090 #define GL_INDEX_ARRAY_POINTER 0x8091 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 #define GL_V2F 0x2A20 #define GL_V3F 0x2A21 #define GL_C4UB_V2F 0x2A22 #define GL_C4UB_V3F 0x2A23 #define GL_C3F_V3F 0x2A24 #define GL_N3F_V3F 0x2A25 #define GL_C4F_N3F_V3F 0x2A26 #define GL_T2F_V3F 0x2A27 #define GL_T4F_V4F 0x2A28 #define GL_T2F_C4UB_V3F 0x2A29 #define GL_T2F_C3F_V3F 0x2A2A #define GL_T2F_N3F_V3F 0x2A2B #define GL_T2F_C4F_N3F_V3F 0x2A2C #define GL_T4F_C4F_N3F_V4F 0x2A2D /* Matrix Mode */ #define GL_MATRIX_MODE 0x0BA0 #define GL_MODELVIEW 0x1700 #define GL_PROJECTION 0x1701 #define GL_TEXTURE 0x1702 /* Points */ #define GL_POINT_SMOOTH 0x0B10 #define GL_POINT_SIZE 0x0B11 #define GL_POINT_SIZE_GRANULARITY 0x0B13 #define GL_POINT_SIZE_RANGE 0x0B12 /* Lines */ #define GL_LINE_SMOOTH 0x0B20 #define GL_LINE_STIPPLE 0x0B24 #define GL_LINE_STIPPLE_PATTERN 0x0B25 #define GL_LINE_STIPPLE_REPEAT 0x0B26 #define GL_LINE_WIDTH 0x0B21 #define GL_LINE_WIDTH_GRANULARITY 0x0B23 #define GL_LINE_WIDTH_RANGE 0x0B22 /* Polygons */ #define GL_POINT 0x1B00 #define GL_LINE 0x1B01 #define GL_FILL 0x1B02 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_POLYGON_MODE 0x0B40 #define GL_POLYGON_SMOOTH 0x0B41 #define GL_POLYGON_STIPPLE 0x0B42 #define GL_EDGE_FLAG 0x0B43 #define GL_CULL_FACE 0x0B44 #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_POINT 0x2A01 #define GL_POLYGON_OFFSET_LINE 0x2A02 #define GL_POLYGON_OFFSET_FILL 0x8037 /* Display Lists */ #define GL_COMPILE 0x1300 #define GL_COMPILE_AND_EXECUTE 0x1301 #define GL_LIST_BASE 0x0B32 #define GL_LIST_INDEX 0x0B33 #define GL_LIST_MODE 0x0B30 /* Depth buffer */ #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_DEPTH_TEST 0x0B71 #define GL_DEPTH_BITS 0x0D56 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_COMPONENT 0x1902 /* Lighting */ #define GL_LIGHTING 0x0B50 #define GL_LIGHT0 0x4000 #define GL_LIGHT1 0x4001 #define GL_LIGHT2 0x4002 #define GL_LIGHT3 0x4003 #define GL_LIGHT4 0x4004 #define GL_LIGHT5 0x4005 #define GL_LIGHT6 0x4006 #define GL_LIGHT7 0x4007 #define GL_SPOT_EXPONENT 0x1205 #define GL_SPOT_CUTOFF 0x1206 #define GL_CONSTANT_ATTENUATION 0x1207 #define GL_LINEAR_ATTENUATION 0x1208 #define GL_QUADRATIC_ATTENUATION 0x1209 #define GL_AMBIENT 0x1200 #define GL_DIFFUSE 0x1201 #define GL_SPECULAR 0x1202 #define GL_SHININESS 0x1601 #define GL_EMISSION 0x1600 #define GL_POSITION 0x1203 #define GL_SPOT_DIRECTION 0x1204 #define GL_AMBIENT_AND_DIFFUSE 0x1602 #define GL_COLOR_INDEXES 0x1603 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 #define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 #define GL_LIGHT_MODEL_AMBIENT 0x0B53 #define GL_FRONT_AND_BACK 0x0408 #define GL_SHADE_MODEL 0x0B54 #define GL_FLAT 0x1D00 #define GL_SMOOTH 0x1D01 #define GL_COLOR_MATERIAL 0x0B57 #define GL_COLOR_MATERIAL_FACE 0x0B55 #define GL_COLOR_MATERIAL_PARAMETER 0x0B56 #define GL_NORMALIZE 0x0BA1 /* User clipping planes */ #define GL_CLIP_PLANE0 0x3000 #define GL_CLIP_PLANE1 0x3001 #define GL_CLIP_PLANE2 0x3002 #define GL_CLIP_PLANE3 0x3003 #define GL_CLIP_PLANE4 0x3004 #define GL_CLIP_PLANE5 0x3005 /* Accumulation buffer */ #define GL_ACCUM_RED_BITS 0x0D58 #define GL_ACCUM_GREEN_BITS 0x0D59 #define GL_ACCUM_BLUE_BITS 0x0D5A #define GL_ACCUM_ALPHA_BITS 0x0D5B #define GL_ACCUM_CLEAR_VALUE 0x0B80 #define GL_ACCUM 0x0100 #define GL_ADD 0x0104 #define GL_LOAD 0x0101 #define GL_MULT 0x0103 #define GL_RETURN 0x0102 /* Alpha testing */ #define GL_ALPHA_TEST 0x0BC0 #define GL_ALPHA_TEST_REF 0x0BC2 #define GL_ALPHA_TEST_FUNC 0x0BC1 /* Blending */ #define GL_BLEND 0x0BE2 #define GL_BLEND_SRC 0x0BE1 #define GL_BLEND_DST 0x0BE0 #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 /* Render Mode */ #define GL_FEEDBACK 0x1C01 #define GL_RENDER 0x1C00 #define GL_SELECT 0x1C02 /* Feedback */ #define GL_2D 0x0600 #define GL_3D 0x0601 #define GL_3D_COLOR 0x0602 #define GL_3D_COLOR_TEXTURE 0x0603 #define GL_4D_COLOR_TEXTURE 0x0604 #define GL_POINT_TOKEN 0x0701 #define GL_LINE_TOKEN 0x0702 #define GL_LINE_RESET_TOKEN 0x0707 #define GL_POLYGON_TOKEN 0x0703 #define GL_BITMAP_TOKEN 0x0704 #define GL_DRAW_PIXEL_TOKEN 0x0705 #define GL_COPY_PIXEL_TOKEN 0x0706 #define GL_PASS_THROUGH_TOKEN 0x0700 #define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 #define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 #define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 /* Selection */ #define GL_SELECTION_BUFFER_POINTER 0x0DF3 #define GL_SELECTION_BUFFER_SIZE 0x0DF4 /* Fog */ #define GL_FOG 0x0B60 #define GL_FOG_MODE 0x0B65 #define GL_FOG_DENSITY 0x0B62 #define GL_FOG_COLOR 0x0B66 #define GL_FOG_INDEX 0x0B61 #define GL_FOG_START 0x0B63 #define GL_FOG_END 0x0B64 #define GL_LINEAR 0x2601 #define GL_EXP 0x0800 #define GL_EXP2 0x0801 /* Logic Ops */ #define GL_LOGIC_OP 0x0BF1 #define GL_INDEX_LOGIC_OP 0x0BF1 #define GL_COLOR_LOGIC_OP 0x0BF2 #define GL_LOGIC_OP_MODE 0x0BF0 #define GL_CLEAR 0x1500 #define GL_SET 0x150F #define GL_COPY 0x1503 #define GL_COPY_INVERTED 0x150C #define GL_NOOP 0x1505 #define GL_INVERT 0x150A #define GL_AND 0x1501 #define GL_NAND 0x150E #define GL_OR 0x1507 #define GL_NOR 0x1508 #define GL_XOR 0x1506 #define GL_EQUIV 0x1509 #define GL_AND_REVERSE 0x1502 #define GL_AND_INVERTED 0x1504 #define GL_OR_REVERSE 0x150B #define GL_OR_INVERTED 0x150D /* Stencil */ #define GL_STENCIL_BITS 0x0D57 #define GL_STENCIL_TEST 0x0B90 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_INDEX 0x1901 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 /* Buffers, Pixel Drawing/Reading */ #define GL_NONE 0 #define GL_LEFT 0x0406 #define GL_RIGHT 0x0407 /*GL_FRONT 0x0404 */ /*GL_BACK 0x0405 */ /*GL_FRONT_AND_BACK 0x0408 */ #define GL_FRONT_LEFT 0x0400 #define GL_FRONT_RIGHT 0x0401 #define GL_BACK_LEFT 0x0402 #define GL_BACK_RIGHT 0x0403 #define GL_AUX0 0x0409 #define GL_AUX1 0x040A #define GL_AUX2 0x040B #define GL_AUX3 0x040C #define GL_COLOR_INDEX 0x1900 #define GL_RED 0x1903 #define GL_GREEN 0x1904 #define GL_BLUE 0x1905 #define GL_ALPHA 0x1906 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_ALPHA_BITS 0x0D55 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_INDEX_BITS 0x0D51 #define GL_SUBPIXEL_BITS 0x0D50 #define GL_AUX_BUFFERS 0x0C00 #define GL_READ_BUFFER 0x0C02 #define GL_DRAW_BUFFER 0x0C01 #define GL_DOUBLEBUFFER 0x0C32 #define GL_STEREO 0x0C33 #define GL_BITMAP 0x1A00 #define GL_COLOR 0x1800 #define GL_DEPTH 0x1801 #define GL_STENCIL 0x1802 #define GL_DITHER 0x0BD0 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 /* Implementation limits */ #define GL_MAX_LIST_NESTING 0x0B31 #define GL_MAX_EVAL_ORDER 0x0D30 #define GL_MAX_LIGHTS 0x0D31 #define GL_MAX_CLIP_PLANES 0x0D32 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_PIXEL_MAP_TABLE 0x0D34 #define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 #define GL_MAX_NAME_STACK_DEPTH 0x0D37 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B /* Gets */ #define GL_ATTRIB_STACK_DEPTH 0x0BB0 #define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_CURRENT_INDEX 0x0B01 #define GL_CURRENT_COLOR 0x0B00 #define GL_CURRENT_NORMAL 0x0B02 #define GL_CURRENT_RASTER_COLOR 0x0B04 #define GL_CURRENT_RASTER_DISTANCE 0x0B09 #define GL_CURRENT_RASTER_INDEX 0x0B05 #define GL_CURRENT_RASTER_POSITION 0x0B07 #define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 #define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 #define GL_CURRENT_TEXTURE_COORDS 0x0B03 #define GL_INDEX_CLEAR_VALUE 0x0C20 #define GL_INDEX_MODE 0x0C30 #define GL_INDEX_WRITEMASK 0x0C21 #define GL_MODELVIEW_MATRIX 0x0BA6 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3 #define GL_NAME_STACK_DEPTH 0x0D70 #define GL_PROJECTION_MATRIX 0x0BA7 #define GL_PROJECTION_STACK_DEPTH 0x0BA4 #define GL_RENDER_MODE 0x0C40 #define GL_RGBA_MODE 0x0C31 #define GL_TEXTURE_MATRIX 0x0BA8 #define GL_TEXTURE_STACK_DEPTH 0x0BA5 #define GL_VIEWPORT 0x0BA2 /* Evaluators */ #define GL_AUTO_NORMAL 0x0D80 #define GL_MAP1_COLOR_4 0x0D90 #define GL_MAP1_INDEX 0x0D91 #define GL_MAP1_NORMAL 0x0D92 #define GL_MAP1_TEXTURE_COORD_1 0x0D93 #define GL_MAP1_TEXTURE_COORD_2 0x0D94 #define GL_MAP1_TEXTURE_COORD_3 0x0D95 #define GL_MAP1_TEXTURE_COORD_4 0x0D96 #define GL_MAP1_VERTEX_3 0x0D97 #define GL_MAP1_VERTEX_4 0x0D98 #define GL_MAP2_COLOR_4 0x0DB0 #define GL_MAP2_INDEX 0x0DB1 #define GL_MAP2_NORMAL 0x0DB2 #define GL_MAP2_TEXTURE_COORD_1 0x0DB3 #define GL_MAP2_TEXTURE_COORD_2 0x0DB4 #define GL_MAP2_TEXTURE_COORD_3 0x0DB5 #define GL_MAP2_TEXTURE_COORD_4 0x0DB6 #define GL_MAP2_VERTEX_3 0x0DB7 #define GL_MAP2_VERTEX_4 0x0DB8 #define GL_MAP1_GRID_DOMAIN 0x0DD0 #define GL_MAP1_GRID_SEGMENTS 0x0DD1 #define GL_MAP2_GRID_DOMAIN 0x0DD2 #define GL_MAP2_GRID_SEGMENTS 0x0DD3 #define GL_COEFF 0x0A00 #define GL_ORDER 0x0A01 #define GL_DOMAIN 0x0A02 /* Hints */ #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 #define GL_POINT_SMOOTH_HINT 0x0C51 #define GL_LINE_SMOOTH_HINT 0x0C52 #define GL_POLYGON_SMOOTH_HINT 0x0C53 #define GL_FOG_HINT 0x0C54 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 /* Scissor box */ #define GL_SCISSOR_BOX 0x0C10 #define GL_SCISSOR_TEST 0x0C11 /* Pixel Mode / Transfer */ #define GL_MAP_COLOR 0x0D10 #define GL_MAP_STENCIL 0x0D11 #define GL_INDEX_SHIFT 0x0D12 #define GL_INDEX_OFFSET 0x0D13 #define GL_RED_SCALE 0x0D14 #define GL_RED_BIAS 0x0D15 #define GL_GREEN_SCALE 0x0D18 #define GL_GREEN_BIAS 0x0D19 #define GL_BLUE_SCALE 0x0D1A #define GL_BLUE_BIAS 0x0D1B #define GL_ALPHA_SCALE 0x0D1C #define GL_ALPHA_BIAS 0x0D1D #define GL_DEPTH_SCALE 0x0D1E #define GL_DEPTH_BIAS 0x0D1F #define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 #define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 #define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 #define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 #define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 #define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 #define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 #define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 #define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 #define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 #define GL_PIXEL_MAP_S_TO_S 0x0C71 #define GL_PIXEL_MAP_I_TO_I 0x0C70 #define GL_PIXEL_MAP_I_TO_R 0x0C72 #define GL_PIXEL_MAP_I_TO_G 0x0C73 #define GL_PIXEL_MAP_I_TO_B 0x0C74 #define GL_PIXEL_MAP_I_TO_A 0x0C75 #define GL_PIXEL_MAP_R_TO_R 0x0C76 #define GL_PIXEL_MAP_G_TO_G 0x0C77 #define GL_PIXEL_MAP_B_TO_B 0x0C78 #define GL_PIXEL_MAP_A_TO_A 0x0C79 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_PACK_LSB_FIRST 0x0D01 #define GL_PACK_ROW_LENGTH 0x0D02 #define GL_PACK_SKIP_PIXELS 0x0D04 #define GL_PACK_SKIP_ROWS 0x0D03 #define GL_PACK_SWAP_BYTES 0x0D00 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_UNPACK_LSB_FIRST 0x0CF1 #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SWAP_BYTES 0x0CF0 #define GL_ZOOM_X 0x0D16 #define GL_ZOOM_Y 0x0D17 /* Texture mapping */ #define GL_TEXTURE_ENV 0x2300 #define GL_TEXTURE_ENV_MODE 0x2200 #define GL_TEXTURE_1D 0x0DE0 #define GL_TEXTURE_2D 0x0DE1 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_ENV_COLOR 0x2201 #define GL_TEXTURE_GEN_S 0x0C60 #define GL_TEXTURE_GEN_T 0x0C61 #define GL_TEXTURE_GEN_R 0x0C62 #define GL_TEXTURE_GEN_Q 0x0C63 #define GL_TEXTURE_GEN_MODE 0x2500 #define GL_TEXTURE_BORDER_COLOR 0x1004 #define GL_TEXTURE_WIDTH 0x1000 #define GL_TEXTURE_HEIGHT 0x1001 #define GL_TEXTURE_BORDER 0x1005 #define GL_TEXTURE_COMPONENTS 0x1003 #define GL_TEXTURE_RED_SIZE 0x805C #define GL_TEXTURE_GREEN_SIZE 0x805D #define GL_TEXTURE_BLUE_SIZE 0x805E #define GL_TEXTURE_ALPHA_SIZE 0x805F #define GL_TEXTURE_LUMINANCE_SIZE 0x8060 #define GL_TEXTURE_INTENSITY_SIZE 0x8061 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_OBJECT_LINEAR 0x2401 #define GL_OBJECT_PLANE 0x2501 #define GL_EYE_LINEAR 0x2400 #define GL_EYE_PLANE 0x2502 #define GL_SPHERE_MAP 0x2402 #define GL_DECAL 0x2101 #define GL_MODULATE 0x2100 #define GL_NEAREST 0x2600 #define GL_REPEAT 0x2901 #define GL_CLAMP 0x2900 #define GL_S 0x2000 #define GL_T 0x2001 #define GL_R 0x2002 #define GL_Q 0x2003 /* Utility */ #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 /* Errors */ #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_STACK_OVERFLOW 0x0503 #define GL_STACK_UNDERFLOW 0x0504 #define GL_OUT_OF_MEMORY 0x0505 /* glPush/PopAttrib bits */ #define GL_CURRENT_BIT 0x00000001 #define GL_POINT_BIT 0x00000002 #define GL_LINE_BIT 0x00000004 #define GL_POLYGON_BIT 0x00000008 #define GL_POLYGON_STIPPLE_BIT 0x00000010 #define GL_PIXEL_MODE_BIT 0x00000020 #define GL_LIGHTING_BIT 0x00000040 #define GL_FOG_BIT 0x00000080 #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_ACCUM_BUFFER_BIT 0x00000200 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_VIEWPORT_BIT 0x00000800 #define GL_TRANSFORM_BIT 0x00001000 #define GL_ENABLE_BIT 0x00002000 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_HINT_BIT 0x00008000 #define GL_EVAL_BIT 0x00010000 #define GL_LIST_BIT 0x00020000 #define GL_TEXTURE_BIT 0x00040000 #define GL_SCISSOR_BIT 0x00080000 #define GL_ALL_ATTRIB_BITS 0xFFFFFFFF /* OpenGL 1.1 */ #define GL_PROXY_TEXTURE_1D 0x8063 #define GL_PROXY_TEXTURE_2D 0x8064 #define GL_TEXTURE_PRIORITY 0x8066 #define GL_TEXTURE_RESIDENT 0x8067 #define GL_TEXTURE_BINDING_1D 0x8068 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003 #define GL_ALPHA4 0x803B #define GL_ALPHA8 0x803C #define GL_ALPHA12 0x803D #define GL_ALPHA16 0x803E #define GL_LUMINANCE4 0x803F #define GL_LUMINANCE8 0x8040 #define GL_LUMINANCE12 0x8041 #define GL_LUMINANCE16 0x8042 #define GL_LUMINANCE4_ALPHA4 0x8043 #define GL_LUMINANCE6_ALPHA2 0x8044 #define GL_LUMINANCE8_ALPHA8 0x8045 #define GL_LUMINANCE12_ALPHA4 0x8046 #define GL_LUMINANCE12_ALPHA12 0x8047 #define GL_LUMINANCE16_ALPHA16 0x8048 #define GL_INTENSITY 0x8049 #define GL_INTENSITY4 0x804A #define GL_INTENSITY8 0x804B #define GL_INTENSITY12 0x804C #define GL_INTENSITY16 0x804D #define GL_R3_G3_B2 0x2A10 #define GL_RGB4 0x804F #define GL_RGB5 0x8050 #define GL_RGB8 0x8051 #define GL_RGB10 0x8052 #define GL_RGB12 0x8053 #define GL_RGB16 0x8054 #define GL_RGBA2 0x8055 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGBA8 0x8058 #define GL_RGB10_A2 0x8059 #define GL_RGBA12 0x805A #define GL_RGBA16 0x805B #define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 #define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 #define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFFF #define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF /* * Miscellaneous */ GLAPI void GLAPIENTRY glClearIndex( GLfloat c ); GLAPI void GLAPIENTRY glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); GLAPI void GLAPIENTRY glClear( GLbitfield mask ); GLAPI void GLAPIENTRY glIndexMask( GLuint mask ); GLAPI void GLAPIENTRY glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ); GLAPI void GLAPIENTRY glAlphaFunc( GLenum func, GLclampf ref ); GLAPI void GLAPIENTRY glBlendFunc( GLenum sfactor, GLenum dfactor ); GLAPI void GLAPIENTRY glLogicOp( GLenum opcode ); GLAPI void GLAPIENTRY glCullFace( GLenum mode ); GLAPI void GLAPIENTRY glFrontFace( GLenum mode ); GLAPI void GLAPIENTRY glPointSize( GLfloat size ); GLAPI void GLAPIENTRY glLineWidth( GLfloat width ); GLAPI void GLAPIENTRY glLineStipple( GLint factor, GLushort pattern ); GLAPI void GLAPIENTRY glPolygonMode( GLenum face, GLenum mode ); GLAPI void GLAPIENTRY glPolygonOffset( GLfloat factor, GLfloat units ); GLAPI void GLAPIENTRY glPolygonStipple( const GLubyte *mask ); GLAPI void GLAPIENTRY glGetPolygonStipple( GLubyte *mask ); GLAPI void GLAPIENTRY glEdgeFlag( GLboolean flag ); GLAPI void GLAPIENTRY glEdgeFlagv( const GLboolean *flag ); GLAPI void GLAPIENTRY glScissor( GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void GLAPIENTRY glClipPlane( GLenum plane, const GLdouble *equation ); GLAPI void GLAPIENTRY glGetClipPlane( GLenum plane, GLdouble *equation ); GLAPI void GLAPIENTRY glDrawBuffer( GLenum mode ); GLAPI void GLAPIENTRY glReadBuffer( GLenum mode ); GLAPI void GLAPIENTRY glEnable( GLenum cap ); GLAPI void GLAPIENTRY glDisable( GLenum cap ); GLAPI GLboolean GLAPIENTRY glIsEnabled( GLenum cap ); GLAPI void GLAPIENTRY glEnableClientState( GLenum cap ); /* 1.1 */ GLAPI void GLAPIENTRY glDisableClientState( GLenum cap ); /* 1.1 */ GLAPI void GLAPIENTRY glGetBooleanv( GLenum pname, GLboolean *params ); GLAPI void GLAPIENTRY glGetDoublev( GLenum pname, GLdouble *params ); GLAPI void GLAPIENTRY glGetFloatv( GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetIntegerv( GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glPushAttrib( GLbitfield mask ); GLAPI void GLAPIENTRY glPopAttrib( void ); GLAPI void GLAPIENTRY glPushClientAttrib( GLbitfield mask ); /* 1.1 */ GLAPI void GLAPIENTRY glPopClientAttrib( void ); /* 1.1 */ GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode ); GLAPI GLenum GLAPIENTRY glGetError( void ); GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name ); GLAPI void GLAPIENTRY glFinish( void ); GLAPI void GLAPIENTRY glFlush( void ); GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode ); /* * Depth Buffer */ GLAPI void GLAPIENTRY glClearDepth( GLclampd depth ); GLAPI void GLAPIENTRY glDepthFunc( GLenum func ); GLAPI void GLAPIENTRY glDepthMask( GLboolean flag ); GLAPI void GLAPIENTRY glDepthRange( GLclampd near_val, GLclampd far_val ); /* * Accumulation Buffer */ GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value ); /* * Transformation */ GLAPI void GLAPIENTRY glMatrixMode( GLenum mode ); GLAPI void GLAPIENTRY glOrtho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); GLAPI void GLAPIENTRY glFrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val ); GLAPI void GLAPIENTRY glViewport( GLint x, GLint y, GLsizei width, GLsizei height ); GLAPI void GLAPIENTRY glPushMatrix( void ); GLAPI void GLAPIENTRY glPopMatrix( void ); GLAPI void GLAPIENTRY glLoadIdentity( void ); GLAPI void GLAPIENTRY glLoadMatrixd( const GLdouble *m ); GLAPI void GLAPIENTRY glLoadMatrixf( const GLfloat *m ); GLAPI void GLAPIENTRY glMultMatrixd( const GLdouble *m ); GLAPI void GLAPIENTRY glMultMatrixf( const GLfloat *m ); GLAPI void GLAPIENTRY glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z ); /* * Display Lists */ GLAPI GLboolean GLAPIENTRY glIsList( GLuint list ); GLAPI void GLAPIENTRY glDeleteLists( GLuint list, GLsizei range ); GLAPI GLuint GLAPIENTRY glGenLists( GLsizei range ); GLAPI void GLAPIENTRY glNewList( GLuint list, GLenum mode ); GLAPI void GLAPIENTRY glEndList( void ); GLAPI void GLAPIENTRY glCallList( GLuint list ); GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type, const GLvoid *lists ); GLAPI void GLAPIENTRY glListBase( GLuint base ); /* * Drawing Functions */ GLAPI void GLAPIENTRY glBegin( GLenum mode ); GLAPI void GLAPIENTRY glEnd( void ); GLAPI void GLAPIENTRY glVertex2d( GLdouble x, GLdouble y ); GLAPI void GLAPIENTRY glVertex2f( GLfloat x, GLfloat y ); GLAPI void GLAPIENTRY glVertex2i( GLint x, GLint y ); GLAPI void GLAPIENTRY glVertex2s( GLshort x, GLshort y ); GLAPI void GLAPIENTRY glVertex3d( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glVertex3f( GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glVertex3i( GLint x, GLint y, GLint z ); GLAPI void GLAPIENTRY glVertex3s( GLshort x, GLshort y, GLshort z ); GLAPI void GLAPIENTRY glVertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); GLAPI void GLAPIENTRY glVertex4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); GLAPI void GLAPIENTRY glVertex4i( GLint x, GLint y, GLint z, GLint w ); GLAPI void GLAPIENTRY glVertex4s( GLshort x, GLshort y, GLshort z, GLshort w ); GLAPI void GLAPIENTRY glVertex2dv( const GLdouble *v ); GLAPI void GLAPIENTRY glVertex2fv( const GLfloat *v ); GLAPI void GLAPIENTRY glVertex2iv( const GLint *v ); GLAPI void GLAPIENTRY glVertex2sv( const GLshort *v ); GLAPI void GLAPIENTRY glVertex3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glVertex3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glVertex3iv( const GLint *v ); GLAPI void GLAPIENTRY glVertex3sv( const GLshort *v ); GLAPI void GLAPIENTRY glVertex4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glVertex4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glVertex4iv( const GLint *v ); GLAPI void GLAPIENTRY glVertex4sv( const GLshort *v ); GLAPI void GLAPIENTRY glNormal3b( GLbyte nx, GLbyte ny, GLbyte nz ); GLAPI void GLAPIENTRY glNormal3d( GLdouble nx, GLdouble ny, GLdouble nz ); GLAPI void GLAPIENTRY glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz ); GLAPI void GLAPIENTRY glNormal3i( GLint nx, GLint ny, GLint nz ); GLAPI void GLAPIENTRY glNormal3s( GLshort nx, GLshort ny, GLshort nz ); GLAPI void GLAPIENTRY glNormal3bv( const GLbyte *v ); GLAPI void GLAPIENTRY glNormal3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glNormal3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glNormal3iv( const GLint *v ); GLAPI void GLAPIENTRY glNormal3sv( const GLshort *v ); GLAPI void GLAPIENTRY glIndexd( GLdouble c ); GLAPI void GLAPIENTRY glIndexf( GLfloat c ); GLAPI void GLAPIENTRY glIndexi( GLint c ); GLAPI void GLAPIENTRY glIndexs( GLshort c ); GLAPI void GLAPIENTRY glIndexub( GLubyte c ); /* 1.1 */ GLAPI void GLAPIENTRY glIndexdv( const GLdouble *c ); GLAPI void GLAPIENTRY glIndexfv( const GLfloat *c ); GLAPI void GLAPIENTRY glIndexiv( const GLint *c ); GLAPI void GLAPIENTRY glIndexsv( const GLshort *c ); GLAPI void GLAPIENTRY glIndexubv( const GLubyte *c ); /* 1.1 */ GLAPI void GLAPIENTRY glColor3b( GLbyte red, GLbyte green, GLbyte blue ); GLAPI void GLAPIENTRY glColor3d( GLdouble red, GLdouble green, GLdouble blue ); GLAPI void GLAPIENTRY glColor3f( GLfloat red, GLfloat green, GLfloat blue ); GLAPI void GLAPIENTRY glColor3i( GLint red, GLint green, GLint blue ); GLAPI void GLAPIENTRY glColor3s( GLshort red, GLshort green, GLshort blue ); GLAPI void GLAPIENTRY glColor3ub( GLubyte red, GLubyte green, GLubyte blue ); GLAPI void GLAPIENTRY glColor3ui( GLuint red, GLuint green, GLuint blue ); GLAPI void GLAPIENTRY glColor3us( GLushort red, GLushort green, GLushort blue ); GLAPI void GLAPIENTRY glColor4b( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha ); GLAPI void GLAPIENTRY glColor4d( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha ); GLAPI void GLAPIENTRY glColor4f( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ); GLAPI void GLAPIENTRY glColor4i( GLint red, GLint green, GLint blue, GLint alpha ); GLAPI void GLAPIENTRY glColor4s( GLshort red, GLshort green, GLshort blue, GLshort alpha ); GLAPI void GLAPIENTRY glColor4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); GLAPI void GLAPIENTRY glColor4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha ); GLAPI void GLAPIENTRY glColor4us( GLushort red, GLushort green, GLushort blue, GLushort alpha ); GLAPI void GLAPIENTRY glColor3bv( const GLbyte *v ); GLAPI void GLAPIENTRY glColor3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glColor3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glColor3iv( const GLint *v ); GLAPI void GLAPIENTRY glColor3sv( const GLshort *v ); GLAPI void GLAPIENTRY glColor3ubv( const GLubyte *v ); GLAPI void GLAPIENTRY glColor3uiv( const GLuint *v ); GLAPI void GLAPIENTRY glColor3usv( const GLushort *v ); GLAPI void GLAPIENTRY glColor4bv( const GLbyte *v ); GLAPI void GLAPIENTRY glColor4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glColor4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glColor4iv( const GLint *v ); GLAPI void GLAPIENTRY glColor4sv( const GLshort *v ); GLAPI void GLAPIENTRY glColor4ubv( const GLubyte *v ); GLAPI void GLAPIENTRY glColor4uiv( const GLuint *v ); GLAPI void GLAPIENTRY glColor4usv( const GLushort *v ); GLAPI void GLAPIENTRY glTexCoord1d( GLdouble s ); GLAPI void GLAPIENTRY glTexCoord1f( GLfloat s ); GLAPI void GLAPIENTRY glTexCoord1i( GLint s ); GLAPI void GLAPIENTRY glTexCoord1s( GLshort s ); GLAPI void GLAPIENTRY glTexCoord2d( GLdouble s, GLdouble t ); GLAPI void GLAPIENTRY glTexCoord2f( GLfloat s, GLfloat t ); GLAPI void GLAPIENTRY glTexCoord2i( GLint s, GLint t ); GLAPI void GLAPIENTRY glTexCoord2s( GLshort s, GLshort t ); GLAPI void GLAPIENTRY glTexCoord3d( GLdouble s, GLdouble t, GLdouble r ); GLAPI void GLAPIENTRY glTexCoord3f( GLfloat s, GLfloat t, GLfloat r ); GLAPI void GLAPIENTRY glTexCoord3i( GLint s, GLint t, GLint r ); GLAPI void GLAPIENTRY glTexCoord3s( GLshort s, GLshort t, GLshort r ); GLAPI void GLAPIENTRY glTexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ); GLAPI void GLAPIENTRY glTexCoord4f( GLfloat s, GLfloat t, GLfloat r, GLfloat q ); GLAPI void GLAPIENTRY glTexCoord4i( GLint s, GLint t, GLint r, GLint q ); GLAPI void GLAPIENTRY glTexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ); GLAPI void GLAPIENTRY glTexCoord1dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord1fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord1iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord1sv( const GLshort *v ); GLAPI void GLAPIENTRY glTexCoord2dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord2fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord2iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord2sv( const GLshort *v ); GLAPI void GLAPIENTRY glTexCoord3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord3iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord3sv( const GLshort *v ); GLAPI void GLAPIENTRY glTexCoord4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glTexCoord4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glTexCoord4iv( const GLint *v ); GLAPI void GLAPIENTRY glTexCoord4sv( const GLshort *v ); GLAPI void GLAPIENTRY glRasterPos2d( GLdouble x, GLdouble y ); GLAPI void GLAPIENTRY glRasterPos2f( GLfloat x, GLfloat y ); GLAPI void GLAPIENTRY glRasterPos2i( GLint x, GLint y ); GLAPI void GLAPIENTRY glRasterPos2s( GLshort x, GLshort y ); GLAPI void GLAPIENTRY glRasterPos3d( GLdouble x, GLdouble y, GLdouble z ); GLAPI void GLAPIENTRY glRasterPos3f( GLfloat x, GLfloat y, GLfloat z ); GLAPI void GLAPIENTRY glRasterPos3i( GLint x, GLint y, GLint z ); GLAPI void GLAPIENTRY glRasterPos3s( GLshort x, GLshort y, GLshort z ); GLAPI void GLAPIENTRY glRasterPos4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ); GLAPI void GLAPIENTRY glRasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ); GLAPI void GLAPIENTRY glRasterPos4i( GLint x, GLint y, GLint z, GLint w ); GLAPI void GLAPIENTRY glRasterPos4s( GLshort x, GLshort y, GLshort z, GLshort w ); GLAPI void GLAPIENTRY glRasterPos2dv( const GLdouble *v ); GLAPI void GLAPIENTRY glRasterPos2fv( const GLfloat *v ); GLAPI void GLAPIENTRY glRasterPos2iv( const GLint *v ); GLAPI void GLAPIENTRY glRasterPos2sv( const GLshort *v ); GLAPI void GLAPIENTRY glRasterPos3dv( const GLdouble *v ); GLAPI void GLAPIENTRY glRasterPos3fv( const GLfloat *v ); GLAPI void GLAPIENTRY glRasterPos3iv( const GLint *v ); GLAPI void GLAPIENTRY glRasterPos3sv( const GLshort *v ); GLAPI void GLAPIENTRY glRasterPos4dv( const GLdouble *v ); GLAPI void GLAPIENTRY glRasterPos4fv( const GLfloat *v ); GLAPI void GLAPIENTRY glRasterPos4iv( const GLint *v ); GLAPI void GLAPIENTRY glRasterPos4sv( const GLshort *v ); GLAPI void GLAPIENTRY glRectd( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 ); GLAPI void GLAPIENTRY glRectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); GLAPI void GLAPIENTRY glRecti( GLint x1, GLint y1, GLint x2, GLint y2 ); GLAPI void GLAPIENTRY glRects( GLshort x1, GLshort y1, GLshort x2, GLshort y2 ); GLAPI void GLAPIENTRY glRectdv( const GLdouble *v1, const GLdouble *v2 ); GLAPI void GLAPIENTRY glRectfv( const GLfloat *v1, const GLfloat *v2 ); GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 ); GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 ); /* * Vertex Arrays (1.1) */ GLAPI void GLAPIENTRY glVertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glNormalPointer( GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glIndexPointer( GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glTexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glEdgeFlagPointer( GLsizei stride, const GLvoid *ptr ); GLAPI void GLAPIENTRY glGetPointerv( GLenum pname, GLvoid **params ); GLAPI void GLAPIENTRY glArrayElement( GLint i ); GLAPI void GLAPIENTRY glDrawArrays( GLenum mode, GLint first, GLsizei count ); GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ); GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride, const GLvoid *pointer ); /* * Lighting */ GLAPI void GLAPIENTRY glShadeModel( GLenum mode ); GLAPI void GLAPIENTRY glLightf( GLenum light, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glLighti( GLenum light, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glLightfv( GLenum light, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glLightiv( GLenum light, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetLightfv( GLenum light, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetLightiv( GLenum light, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glLightModelf( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glLightModeli( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glLightModelfv( GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glLightModeliv( GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glMaterialf( GLenum face, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glMateriali( GLenum face, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glMaterialfv( GLenum face, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glMaterialiv( GLenum face, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode ); /* * Raster functions */ GLAPI void GLAPIENTRY glPixelZoom( GLfloat xfactor, GLfloat yfactor ); GLAPI void GLAPIENTRY glPixelStoref( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glPixelStorei( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glPixelTransferf( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glPixelTransferi( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glPixelMapfv( GLenum map, GLsizei mapsize, const GLfloat *values ); GLAPI void GLAPIENTRY glPixelMapuiv( GLenum map, GLsizei mapsize, const GLuint *values ); GLAPI void GLAPIENTRY glPixelMapusv( GLenum map, GLsizei mapsize, const GLushort *values ); GLAPI void GLAPIENTRY glGetPixelMapfv( GLenum map, GLfloat *values ); GLAPI void GLAPIENTRY glGetPixelMapuiv( GLenum map, GLuint *values ); GLAPI void GLAPIENTRY glGetPixelMapusv( GLenum map, GLushort *values ); GLAPI void GLAPIENTRY glBitmap( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap ); GLAPI void GLAPIENTRY glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ); GLAPI void GLAPIENTRY glDrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type ); /* * Stenciling */ GLAPI void GLAPIENTRY glStencilFunc( GLenum func, GLint ref, GLuint mask ); GLAPI void GLAPIENTRY glStencilMask( GLuint mask ); GLAPI void GLAPIENTRY glStencilOp( GLenum fail, GLenum zfail, GLenum zpass ); GLAPI void GLAPIENTRY glClearStencil( GLint s ); /* * Texture mapping */ GLAPI void GLAPIENTRY glTexGend( GLenum coord, GLenum pname, GLdouble param ); GLAPI void GLAPIENTRY glTexGenf( GLenum coord, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glTexGeni( GLenum coord, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glTexGendv( GLenum coord, GLenum pname, const GLdouble *params ); GLAPI void GLAPIENTRY glTexGenfv( GLenum coord, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glTexGeniv( GLenum coord, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetTexGendv( GLenum coord, GLenum pname, GLdouble *params ); GLAPI void GLAPIENTRY glGetTexGenfv( GLenum coord, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetTexGeniv( GLenum coord, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glTexEnvf( GLenum target, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glTexEnvi( GLenum target, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glTexEnviv( GLenum target, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetTexEnvfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetTexEnviv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glTexParameterf( GLenum target, GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glTexParameteri( GLenum target, GLenum pname, GLint param ); GLAPI void GLAPIENTRY glTexParameterfv( GLenum target, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glTexParameteriv( GLenum target, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params); GLAPI void GLAPIENTRY glGetTexParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glTexImage1D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glTexImage2D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels ); /* 1.1 functions */ GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures ); GLAPI void GLAPIENTRY glDeleteTextures( GLsizei n, const GLuint *textures); GLAPI void GLAPIENTRY glBindTexture( GLenum target, GLuint texture ); GLAPI void GLAPIENTRY glPrioritizeTextures( GLsizei n, const GLuint *textures, const GLclampf *priorities ); GLAPI GLboolean GLAPIENTRY glAreTexturesResident( GLsizei n, const GLuint *textures, GLboolean *residences ); GLAPI GLboolean GLAPIENTRY glIsTexture( GLuint texture ); GLAPI void GLAPIENTRY glTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glCopyTexImage1D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border ); GLAPI void GLAPIENTRY glCopyTexImage2D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ); GLAPI void GLAPIENTRY glCopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ); /* * Evaluators */ GLAPI void GLAPIENTRY glMap1d( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points ); GLAPI void GLAPIENTRY glMap1f( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points ); GLAPI void GLAPIENTRY glMap2d( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points ); GLAPI void GLAPIENTRY glMap2f( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points ); GLAPI void GLAPIENTRY glGetMapdv( GLenum target, GLenum query, GLdouble *v ); GLAPI void GLAPIENTRY glGetMapfv( GLenum target, GLenum query, GLfloat *v ); GLAPI void GLAPIENTRY glGetMapiv( GLenum target, GLenum query, GLint *v ); GLAPI void GLAPIENTRY glEvalCoord1d( GLdouble u ); GLAPI void GLAPIENTRY glEvalCoord1f( GLfloat u ); GLAPI void GLAPIENTRY glEvalCoord1dv( const GLdouble *u ); GLAPI void GLAPIENTRY glEvalCoord1fv( const GLfloat *u ); GLAPI void GLAPIENTRY glEvalCoord2d( GLdouble u, GLdouble v ); GLAPI void GLAPIENTRY glEvalCoord2f( GLfloat u, GLfloat v ); GLAPI void GLAPIENTRY glEvalCoord2dv( const GLdouble *u ); GLAPI void GLAPIENTRY glEvalCoord2fv( const GLfloat *u ); GLAPI void GLAPIENTRY glMapGrid1d( GLint un, GLdouble u1, GLdouble u2 ); GLAPI void GLAPIENTRY glMapGrid1f( GLint un, GLfloat u1, GLfloat u2 ); GLAPI void GLAPIENTRY glMapGrid2d( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 ); GLAPI void GLAPIENTRY glMapGrid2f( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 ); GLAPI void GLAPIENTRY glEvalPoint1( GLint i ); GLAPI void GLAPIENTRY glEvalPoint2( GLint i, GLint j ); GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 ); GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ); /* * Fog */ GLAPI void GLAPIENTRY glFogf( GLenum pname, GLfloat param ); GLAPI void GLAPIENTRY glFogi( GLenum pname, GLint param ); GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params ); /* * Selection and Feedback */ GLAPI void GLAPIENTRY glFeedbackBuffer( GLsizei size, GLenum type, GLfloat *buffer ); GLAPI void GLAPIENTRY glPassThrough( GLfloat token ); GLAPI void GLAPIENTRY glSelectBuffer( GLsizei size, GLuint *buffer ); GLAPI void GLAPIENTRY glInitNames( void ); GLAPI void GLAPIENTRY glLoadName( GLuint name ); GLAPI void GLAPIENTRY glPushName( GLuint name ); GLAPI void GLAPIENTRY glPopName( void ); /* * OpenGL 1.2 */ #define GL_RESCALE_NORMAL 0x803A #define GL_CLAMP_TO_EDGE 0x812F #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_BGR 0x80E0 #define GL_BGRA 0x80E1 #define GL_UNSIGNED_BYTE_3_3_2 0x8032 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 #define GL_UNSIGNED_INT_10_10_10_2 0x8036 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 #define GL_SINGLE_COLOR 0x81F9 #define GL_SEPARATE_SPECULAR_COLOR 0x81FA #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_PACK_SKIP_IMAGES 0x806B #define GL_PACK_IMAGE_HEIGHT 0x806C #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_PROXY_TEXTURE_3D 0x8070 #define GL_TEXTURE_DEPTH 0x8071 #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_TEXTURE_BINDING_3D 0x806A GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices ); GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels ); GLAPI void GLAPIENTRY glTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height ); typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* * GL_ARB_imaging */ #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_COLOR_TABLE 0x80D0 #define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 #define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 #define GL_PROXY_COLOR_TABLE 0x80D3 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 #define GL_COLOR_TABLE_SCALE 0x80D6 #define GL_COLOR_TABLE_BIAS 0x80D7 #define GL_COLOR_TABLE_FORMAT 0x80D8 #define GL_COLOR_TABLE_WIDTH 0x80D9 #define GL_COLOR_TABLE_RED_SIZE 0x80DA #define GL_COLOR_TABLE_GREEN_SIZE 0x80DB #define GL_COLOR_TABLE_BLUE_SIZE 0x80DC #define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD #define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF #define GL_CONVOLUTION_1D 0x8010 #define GL_CONVOLUTION_2D 0x8011 #define GL_SEPARABLE_2D 0x8012 #define GL_CONVOLUTION_BORDER_MODE 0x8013 #define GL_CONVOLUTION_FILTER_SCALE 0x8014 #define GL_CONVOLUTION_FILTER_BIAS 0x8015 #define GL_REDUCE 0x8016 #define GL_CONVOLUTION_FORMAT 0x8017 #define GL_CONVOLUTION_WIDTH 0x8018 #define GL_CONVOLUTION_HEIGHT 0x8019 #define GL_MAX_CONVOLUTION_WIDTH 0x801A #define GL_MAX_CONVOLUTION_HEIGHT 0x801B #define GL_POST_CONVOLUTION_RED_SCALE 0x801C #define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D #define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E #define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F #define GL_POST_CONVOLUTION_RED_BIAS 0x8020 #define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 #define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 #define GL_CONSTANT_BORDER 0x8151 #define GL_REPLICATE_BORDER 0x8153 #define GL_CONVOLUTION_BORDER_COLOR 0x8154 #define GL_COLOR_MATRIX 0x80B1 #define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 #define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 #define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 #define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 #define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 #define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 #define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA #define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB #define GL_HISTOGRAM 0x8024 #define GL_PROXY_HISTOGRAM 0x8025 #define GL_HISTOGRAM_WIDTH 0x8026 #define GL_HISTOGRAM_FORMAT 0x8027 #define GL_HISTOGRAM_RED_SIZE 0x8028 #define GL_HISTOGRAM_GREEN_SIZE 0x8029 #define GL_HISTOGRAM_BLUE_SIZE 0x802A #define GL_HISTOGRAM_ALPHA_SIZE 0x802B #define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C #define GL_HISTOGRAM_SINK 0x802D #define GL_MINMAX 0x802E #define GL_MINMAX_FORMAT 0x802F #define GL_MINMAX_SINK 0x8030 #define GL_TABLE_TOO_LARGE 0x8031 #define GL_BLEND_EQUATION 0x8009 #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_FUNC_ADD 0x8006 #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_BLEND_COLOR 0x8005 GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table ); GLAPI void GLAPIENTRY glColorSubTable( GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data ); GLAPI void GLAPIENTRY glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params); GLAPI void GLAPIENTRY glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params); GLAPI void GLAPIENTRY glCopyColorSubTable( GLenum target, GLsizei start, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glCopyColorTable( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glGetColorTable( GLenum target, GLenum format, GLenum type, GLvoid *table ); GLAPI void GLAPIENTRY glGetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glBlendEquation( GLenum mode ); GLAPI void GLAPIENTRY glBlendColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ); GLAPI void GLAPIENTRY glHistogram( GLenum target, GLsizei width, GLenum internalformat, GLboolean sink ); GLAPI void GLAPIENTRY glResetHistogram( GLenum target ); GLAPI void GLAPIENTRY glGetHistogram( GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values ); GLAPI void GLAPIENTRY glGetHistogramParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetHistogramParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glMinmax( GLenum target, GLenum internalformat, GLboolean sink ); GLAPI void GLAPIENTRY glResetMinmax( GLenum target ); GLAPI void GLAPIENTRY glGetMinmax( GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values ); GLAPI void GLAPIENTRY glGetMinmaxParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetMinmaxParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glConvolutionFilter1D( GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image ); GLAPI void GLAPIENTRY glConvolutionFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image ); GLAPI void GLAPIENTRY glConvolutionParameterf( GLenum target, GLenum pname, GLfloat params ); GLAPI void GLAPIENTRY glConvolutionParameterfv( GLenum target, GLenum pname, const GLfloat *params ); GLAPI void GLAPIENTRY glConvolutionParameteri( GLenum target, GLenum pname, GLint params ); GLAPI void GLAPIENTRY glConvolutionParameteriv( GLenum target, GLenum pname, const GLint *params ); GLAPI void GLAPIENTRY glCopyConvolutionFilter1D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width ); GLAPI void GLAPIENTRY glCopyConvolutionFilter2D( GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void GLAPIENTRY glGetConvolutionFilter( GLenum target, GLenum format, GLenum type, GLvoid *image ); GLAPI void GLAPIENTRY glGetConvolutionParameterfv( GLenum target, GLenum pname, GLfloat *params ); GLAPI void GLAPIENTRY glGetConvolutionParameteriv( GLenum target, GLenum pname, GLint *params ); GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column ); GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span ); /* * OpenGL 1.3 */ /* multitexture */ #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 #define GL_MAX_TEXTURE_UNITS 0x84E2 /* texture_cube_map */ #define GL_NORMAL_MAP 0x8511 #define GL_REFLECTION_MAP 0x8512 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C /* texture_compression */ #define GL_COMPRESSED_ALPHA 0x84E9 #define GL_COMPRESSED_LUMINANCE 0x84EA #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB #define GL_COMPRESSED_INTENSITY 0x84EC #define GL_COMPRESSED_RGB 0x84ED #define GL_COMPRESSED_RGBA 0x84EE #define GL_TEXTURE_COMPRESSION_HINT 0x84EF #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 #define GL_TEXTURE_COMPRESSED 0x86A1 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 /* multisample */ #define GL_MULTISAMPLE 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_ONE 0x809F #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_MULTISAMPLE_BIT 0x20000000 /* transpose_matrix */ #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 /* texture_env_combine */ #define GL_COMBINE 0x8570 #define GL_COMBINE_RGB 0x8571 #define GL_COMBINE_ALPHA 0x8572 #define GL_SOURCE0_RGB 0x8580 #define GL_SOURCE1_RGB 0x8581 #define GL_SOURCE2_RGB 0x8582 #define GL_SOURCE0_ALPHA 0x8588 #define GL_SOURCE1_ALPHA 0x8589 #define GL_SOURCE2_ALPHA 0x858A #define GL_OPERAND0_RGB 0x8590 #define GL_OPERAND1_RGB 0x8591 #define GL_OPERAND2_RGB 0x8592 #define GL_OPERAND0_ALPHA 0x8598 #define GL_OPERAND1_ALPHA 0x8599 #define GL_OPERAND2_ALPHA 0x859A #define GL_RGB_SCALE 0x8573 #define GL_ADD_SIGNED 0x8574 #define GL_INTERPOLATE 0x8575 #define GL_SUBTRACT 0x84E7 #define GL_CONSTANT 0x8576 #define GL_PRIMARY_COLOR 0x8577 #define GL_PREVIOUS 0x8578 /* texture_env_dot3 */ #define GL_DOT3_RGB 0x86AE #define GL_DOT3_RGBA 0x86AF /* texture_border_clamp */ #define GL_CLAMP_TO_BORDER 0x812D GLAPI void GLAPIENTRY glActiveTexture( GLenum texture ); GLAPI void GLAPIENTRY glClientActiveTexture( GLenum texture ); GLAPI void GLAPIENTRY glCompressedTexImage1D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexImage3D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glCompressedTexSubImage3D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data ); GLAPI void GLAPIENTRY glGetCompressedTexImage( GLenum target, GLint lod, GLvoid *img ); GLAPI void GLAPIENTRY glMultiTexCoord1d( GLenum target, GLdouble s ); GLAPI void GLAPIENTRY glMultiTexCoord1dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord1f( GLenum target, GLfloat s ); GLAPI void GLAPIENTRY glMultiTexCoord1fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord1i( GLenum target, GLint s ); GLAPI void GLAPIENTRY glMultiTexCoord1iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord1s( GLenum target, GLshort s ); GLAPI void GLAPIENTRY glMultiTexCoord1sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glMultiTexCoord2d( GLenum target, GLdouble s, GLdouble t ); GLAPI void GLAPIENTRY glMultiTexCoord2dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord2f( GLenum target, GLfloat s, GLfloat t ); GLAPI void GLAPIENTRY glMultiTexCoord2fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord2i( GLenum target, GLint s, GLint t ); GLAPI void GLAPIENTRY glMultiTexCoord2iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord2s( GLenum target, GLshort s, GLshort t ); GLAPI void GLAPIENTRY glMultiTexCoord2sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glMultiTexCoord3d( GLenum target, GLdouble s, GLdouble t, GLdouble r ); GLAPI void GLAPIENTRY glMultiTexCoord3dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord3f( GLenum target, GLfloat s, GLfloat t, GLfloat r ); GLAPI void GLAPIENTRY glMultiTexCoord3fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord3i( GLenum target, GLint s, GLint t, GLint r ); GLAPI void GLAPIENTRY glMultiTexCoord3iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord3s( GLenum target, GLshort s, GLshort t, GLshort r ); GLAPI void GLAPIENTRY glMultiTexCoord3sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glMultiTexCoord4d( GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q ); GLAPI void GLAPIENTRY glMultiTexCoord4dv( GLenum target, const GLdouble *v ); GLAPI void GLAPIENTRY glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ); GLAPI void GLAPIENTRY glMultiTexCoord4fv( GLenum target, const GLfloat *v ); GLAPI void GLAPIENTRY glMultiTexCoord4i( GLenum target, GLint s, GLint t, GLint r, GLint q ); GLAPI void GLAPIENTRY glMultiTexCoord4iv( GLenum target, const GLint *v ); GLAPI void GLAPIENTRY glMultiTexCoord4s( GLenum target, GLshort s, GLshort t, GLshort r, GLshort q ); GLAPI void GLAPIENTRY glMultiTexCoord4sv( GLenum target, const GLshort *v ); GLAPI void GLAPIENTRY glLoadTransposeMatrixd( const GLdouble * m ); GLAPI void GLAPIENTRY glLoadTransposeMatrixf( const GLfloat * m ); GLAPI void GLAPIENTRY glMultTransposeMatrixd( const GLdouble * m ); GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat * m ); GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); /* * GL_ARB_multitexture (ARB extension 1 and OpenGL 1.2.1) */ #ifndef GL_ARB_multitexture #define GL_ARB_multitexture 1 #define GL_TEXTURE0_ARB 0x84C0 #define GL_TEXTURE1_ARB 0x84C1 #define GL_TEXTURE2_ARB 0x84C2 #define GL_TEXTURE3_ARB 0x84C3 #define GL_TEXTURE4_ARB 0x84C4 #define GL_TEXTURE5_ARB 0x84C5 #define GL_TEXTURE6_ARB 0x84C6 #define GL_TEXTURE7_ARB 0x84C7 #define GL_TEXTURE8_ARB 0x84C8 #define GL_TEXTURE9_ARB 0x84C9 #define GL_TEXTURE10_ARB 0x84CA #define GL_TEXTURE11_ARB 0x84CB #define GL_TEXTURE12_ARB 0x84CC #define GL_TEXTURE13_ARB 0x84CD #define GL_TEXTURE14_ARB 0x84CE #define GL_TEXTURE15_ARB 0x84CF #define GL_TEXTURE16_ARB 0x84D0 #define GL_TEXTURE17_ARB 0x84D1 #define GL_TEXTURE18_ARB 0x84D2 #define GL_TEXTURE19_ARB 0x84D3 #define GL_TEXTURE20_ARB 0x84D4 #define GL_TEXTURE21_ARB 0x84D5 #define GL_TEXTURE22_ARB 0x84D6 #define GL_TEXTURE23_ARB 0x84D7 #define GL_TEXTURE24_ARB 0x84D8 #define GL_TEXTURE25_ARB 0x84D9 #define GL_TEXTURE26_ARB 0x84DA #define GL_TEXTURE27_ARB 0x84DB #define GL_TEXTURE28_ARB 0x84DC #define GL_TEXTURE29_ARB 0x84DD #define GL_TEXTURE30_ARB 0x84DE #define GL_TEXTURE31_ARB 0x84DF #define GL_ACTIVE_TEXTURE_ARB 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture); GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture); GLAPI void GLAPIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s); GLAPI void GLAPIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s); GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord1iARB(GLenum target, GLint s); GLAPI void GLAPIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s); GLAPI void GLAPIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v); GLAPI void GLAPIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); GLAPI void GLAPIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); GLAPI void GLAPIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v); GLAPI void GLAPIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); GLAPI void GLAPIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); GLAPI void GLAPIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); GLAPI void GLAPIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v); GLAPI void GLAPIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); GLAPI void GLAPIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); GLAPI void GLAPIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); #endif /* GL_ARB_multitexture */ # 2032 "../mesa/include/GL/gl.h" /* * Define this token if you want "old-style" header file behaviour (extensions * defined in gl.h). Otherwise, extensions will be included from glext.h. */ #if 0 /* disabled by -frewrite-includes */ #if defined(GL_GLEXT_LEGACY) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2040 "../mesa/include/GL/gl.h" /* All extensions that used to be here are now found in glext.h */ #else /* GL_GLEXT_LEGACY */ # 2044 "../mesa/include/GL/gl.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* glext.h expanded by -frewrite-includes */ #include #else /* glext.h expanded by -frewrite-includes */ # 2045 "../mesa/include/GL/gl.h" # 1 "../mesa/include/GL/glext.h" 1 #ifndef __gl_glext_h_ #define __gl_glext_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GL/glext.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 19 "../mesa/include/GL/glext.h" #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN 1 #endif # 22 "../mesa/include/GL/glext.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "../mesa/include/GL/glext.h" # 23 "../mesa/include/GL/glext.h" #endif # 24 "../mesa/include/GL/glext.h" #ifndef APIENTRY #define APIENTRY #endif # 28 "../mesa/include/GL/glext.h" #ifndef APIENTRYP #define APIENTRYP APIENTRY * #endif # 31 "../mesa/include/GL/glext.h" #ifndef GLAPI #define GLAPI extern #endif # 34 "../mesa/include/GL/glext.h" #define GL_GLEXT_VERSION 20230309 #if defined(__CLANG_REWRITTEN_INCLUDES) /* khrplatform.h expanded by -frewrite-includes */ #include #else /* khrplatform.h expanded by -frewrite-includes */ # 37 "../mesa/include/GL/glext.h" # 1 "../mesa/include/KHR/khrplatform.h" 1 #ifndef __khrplatform_h_ #define __khrplatform_h_ /* ** Copyright (c) 2008-2018 The Khronos Group Inc. ** ** Permission is hereby granted, free of charge, to any person obtaining a ** copy of this software and/or associated documentation files (the ** "Materials"), to deal in the Materials without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Materials, and to ** permit persons to whom the Materials are furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be included ** in all copies or substantial portions of the Materials. ** ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. */ /* Khronos platform-specific types and definitions. * * The master copy of khrplatform.h is maintained in the Khronos EGL * Registry repository at https://github.com/KhronosGroup/EGL-Registry * The last semantic modification to khrplatform.h was at commit ID: * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 * * Adopters may modify this file to suit their platform. Adopters are * encouraged to submit platform specific modifications to the Khronos * group so that they can be included in future versions of this file. * Please submit changes by filing pull requests or issues on * the EGL Registry repository linked above. * * * See the Implementer's Guidelines for information about where this file * should be located on your system and for more details of its use: * http://www.khronos.org/registry/implementers_guide.pdf * * This file should be included as * #include * by Khronos client API header files that use its types and defines. * * The types in khrplatform.h should only be used to define API-specific types. * * Types defined in khrplatform.h: * khronos_int8_t signed 8 bit * khronos_uint8_t unsigned 8 bit * khronos_int16_t signed 16 bit * khronos_uint16_t unsigned 16 bit * khronos_int32_t signed 32 bit * khronos_uint32_t unsigned 32 bit * khronos_int64_t signed 64 bit * khronos_uint64_t unsigned 64 bit * khronos_intptr_t signed same number of bits as a pointer * khronos_uintptr_t unsigned same number of bits as a pointer * khronos_ssize_t signed size * khronos_usize_t unsigned size * khronos_float_t signed 32 bit floating point * khronos_time_ns_t unsigned 64 bit time in nanoseconds * khronos_utime_nanoseconds_t unsigned time interval or absolute time in * nanoseconds * khronos_stime_nanoseconds_t signed time interval in nanoseconds * khronos_boolean_enum_t enumerated boolean type. This should * only be used as a base type when a client API's boolean type is * an enum. Client APIs which use an integer or other type for * booleans cannot use this as the base type for their boolean. * * Tokens defined in khrplatform.h: * * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. * * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. * * Calling convention macros defined in this file: * KHRONOS_APICALL * KHRONOS_APIENTRY * KHRONOS_APIATTRIBUTES * * These may be used in function prototypes as: * * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( * int arg1, * int arg2) KHRONOS_APIATTRIBUTES; */ #if 0 /* disabled by -frewrite-includes */ #if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 94 "../mesa/include/KHR/khrplatform.h" # define KHRONOS_STATIC 1 #endif # 96 "../mesa/include/KHR/khrplatform.h" /*------------------------------------------------------------------------- * Definition of KHRONOS_APICALL *------------------------------------------------------------------------- * This precedes the return type of the function in the function prototype. */ #if 0 /* disabled by -frewrite-includes */ #if defined(KHRONOS_STATIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "../mesa/include/KHR/khrplatform.h" /* If the preprocessor constant KHRONOS_STATIC is defined, make the * header compatible with static linking. */ # define KHRONOS_APICALL #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN32) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 107 "../mesa/include/KHR/khrplatform.h" # define KHRONOS_APICALL __declspec(dllimport) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined (__SYMBIAN32__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 109 "../mesa/include/KHR/khrplatform.h" # define KHRONOS_APICALL IMPORT_C #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__ANDROID__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 111 "../mesa/include/KHR/khrplatform.h" # define KHRONOS_APICALL __attribute__((visibility("default"))) #else # 113 "../mesa/include/KHR/khrplatform.h" # define KHRONOS_APICALL #endif # 115 "../mesa/include/KHR/khrplatform.h" /*------------------------------------------------------------------------- * Definition of KHRONOS_APIENTRY *------------------------------------------------------------------------- * This follows the return type of the function and precedes the function * name in the function prototype. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "../mesa/include/KHR/khrplatform.h" /* Win32 but not WinCE */ # define KHRONOS_APIENTRY __stdcall #else # 126 "../mesa/include/KHR/khrplatform.h" # define KHRONOS_APIENTRY #endif # 128 "../mesa/include/KHR/khrplatform.h" /*------------------------------------------------------------------------- * Definition of KHRONOS_APIATTRIBUTES *------------------------------------------------------------------------- * This follows the closing parenthesis of the function prototype arguments. */ #if 0 /* disabled by -frewrite-includes */ #if defined (__ARMCC_2__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "../mesa/include/KHR/khrplatform.h" #define KHRONOS_APIATTRIBUTES __softfp #else # 137 "../mesa/include/KHR/khrplatform.h" #define KHRONOS_APIATTRIBUTES #endif # 139 "../mesa/include/KHR/khrplatform.h" /*------------------------------------------------------------------------- * basic type definitions *-----------------------------------------------------------------------*/ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 144 "../mesa/include/KHR/khrplatform.h" /* * Using */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint.h expanded by -frewrite-includes */ #include #else /* stdint.h expanded by -frewrite-includes */ # 149 "../mesa/include/KHR/khrplatform.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 1 3 /*===---- stdint.h - Standard header for sized integer types --------------===*\ * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * \*===----------------------------------------------------------------------===*/ #ifndef __CLANG_STDINT_H // AIX system headers need stdint.h to be re-enterable while _STD_TYPES_T // is defined until an inclusion of it without _STD_TYPES_T occurs, in which // case the header guard macro is defined. #if 0 /* disabled by -frewrite-includes */ #if !defined(_AIX) || !defined(_STD_TYPES_T) || !defined(__STDC_HOSTED__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #define __CLANG_STDINT_H #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # 19 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #else # 20 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* If we're hosted, fall back to the system's stdint.h, which might have * additional definitions. */ #if 0 /* disabled by -frewrite-includes */ #if __STDC_HOSTED__ && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 25 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 // C99 7.18.3 Limits of other integer types // // Footnote 219, 220: C++ implementations should define these macros only when // __STDC_LIMIT_MACROS is defined before is included. // // Footnote 222: C++ implementations should define these macros only when // __STDC_CONSTANT_MACROS is defined before is included. // // C++11 [cstdint.syn]p2: // // The macros defined by are provided unconditionally. In particular, // the symbols __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS (mentioned in // footnotes 219, 220, and 222 in the C standard) play no role in C++. // // C11 removed the problematic footnotes. // // Work around this inconsistency by always defining those macros in C++ mode, // so that a C library implementation which follows the C99 standard can be // used in C++. # ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ # if !defined(__STDC_LIMIT_MACROS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS_DEFINED_BY_CLANG # endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #if 0 /* disabled by -frewrite-includes */ # if !defined(__STDC_CONSTANT_MACROS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG # endif # 54 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # endif # 55 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint.h expanded by -frewrite-includes */ # include_next #else /* stdint.h expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # 1 "/usr/include/stdint.h" 1 3 4 /* Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99: 7.18 Integer types */ #ifndef _STDINT_H #define _STDINT_H 1 #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libc-header-start.h expanded by -frewrite-includes */ #include #else /* libc-header-start.h expanded by -frewrite-includes */ # 26 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4 /* Handle feature test macros at the start of a header. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header cannot have multiple include guards because ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included. */ #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION # error "Never include directly." #endif # 30 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* features.h expanded by -frewrite-includes */ #include #else /* features.h expanded by -frewrite-includes */ # 33 "/usr/include/bits/libc-header-start.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _FEATURES_H #define _FEATURES_H 1 /* These are defined by the user (or the compiler) to specify the desired environment: __STRICT_ANSI__ ISO Standard C. _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. _ISOC23_SOURCE Extensions to ISO C99 from ISO C23. _ISOC2X_SOURCE Old name for _ISOC23_SOURCE. __STDC_WANT_LIB_EXT2__ Extensions to ISO C99 from TR 27431-2:2010. __STDC_WANT_IEC_60559_BFP_EXT__ Extensions to ISO C11 from TS 18661-1:2014. __STDC_WANT_IEC_60559_FUNCS_EXT__ Extensions to ISO C11 from TS 18661-4:2015. __STDC_WANT_IEC_60559_TYPES_EXT__ Extensions to ISO C11 from TS 18661-3:2015. __STDC_WANT_IEC_60559_EXT__ ISO C23 interfaces defined only in Annex F. _POSIX_SOURCE IEEE Std 1003.1. _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; if >=199309L, add IEEE Std 1003.1b-1993; if >=199506L, add IEEE Std 1003.1c-1995; if >=200112L, all of IEEE 1003.1-2004 if >=200809L, all of IEEE 1003.1-2008 _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if Single Unix conformance is wanted, to 600 for the sixth revision, to 700 for the seventh revision. _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. _LARGEFILE_SOURCE Some more functions for correct standard I/O. _LARGEFILE64_SOURCE Additional functionality from LFS for large files. _FILE_OFFSET_BITS=N Select default filesystem interface. _ATFILE_SOURCE Additional *at interfaces. _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. _GNU_SOURCE All of the above, plus GNU extensions. _DEFAULT_SOURCE The default set of features (taking precedence over __STRICT_ANSI__). _FORTIFY_SOURCE Add security hardening to many library functions. Set to 1, 2 or 3; 3 performs stricter checks than 2, which performs stricter checks than 1. _REENTRANT, _THREAD_SAFE Obsolete; equivalent to _POSIX_C_SOURCE=199506L. The `-ansi' switch to the GNU C compiler, and standards conformance options such as `-std=c99', define __STRICT_ANSI__. If none of these are defined, or if _DEFAULT_SOURCE is defined, the default is to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 200809L, as well as enabling miscellaneous functions from BSD and SVID. If more than one of these are defined, they accumulate. For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together give you ISO C, 1003.1, and 1003.2, but nothing else. These are defined by this file and are used by the header files to decide what to declare or define: __GLIBC_USE (F) Define things from feature set F. This is defined to 1 or 0; the subsequent macros are either defined or undefined, and those tests should be moved to __GLIBC_USE. __USE_ISOC11 Define ISO C11 things. __USE_ISOC99 Define ISO C99 things. __USE_ISOC95 Define ISO C90 AMD1 (C95) things. __USE_ISOCXX11 Define ISO C++11 things. __USE_POSIX Define IEEE Std 1003.1 things. __USE_POSIX2 Define IEEE Std 1003.2 things. __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. __USE_XOPEN Define XPG things. __USE_XOPEN_EXTENDED Define X/Open Unix things. __USE_UNIX98 Define Single Unix V2 things. __USE_XOPEN2K Define XPG6 things. __USE_XOPEN2KXSI Define XPG6 XSI things. __USE_XOPEN2K8 Define XPG7 things. __USE_XOPEN2K8XSI Define XPG7 XSI things. __USE_LARGEFILE Define correct standard I/O things. __USE_LARGEFILE64 Define LFS things with separate names. __USE_FILE_OFFSET64 Define 64bit interface as default. __USE_MISC Define things from 4.3BSD or System V Unix. __USE_ATFILE Define *at interfaces and AT_* constants for them. __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. __USE_GNU Define GNU extensions. __USE_FORTIFY_LEVEL Additional security measures used, according to level. The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are defined by this file unconditionally. `__GNU_LIBRARY__' is provided only for compatibility. All new code should use the other symbols to test for features. All macros listed above as possibly being defined by this file are explicitly undefined if they are not explicitly defined. Feature-test macros that are not defined by the user or compiler but are implied by the other feature-test macros defined (or by the lack of any definitions) are defined by the file. ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included, and so they are handled in , which does not have a multiple include guard. Feature test macros that can be handled from the first system header included are handled here. */ /* Undefine everything, so we get a clean slate. */ #undef __USE_ISOC11 #undef __USE_ISOC99 #undef __USE_ISOC95 #undef __USE_ISOCXX11 #undef __USE_POSIX #undef __USE_POSIX2 #undef __USE_POSIX199309 #undef __USE_POSIX199506 #undef __USE_XOPEN #undef __USE_XOPEN_EXTENDED #undef __USE_UNIX98 #undef __USE_XOPEN2K #undef __USE_XOPEN2KXSI #undef __USE_XOPEN2K8 #undef __USE_XOPEN2K8XSI #undef __USE_LARGEFILE #undef __USE_LARGEFILE64 #undef __USE_FILE_OFFSET64 #undef __USE_MISC #undef __USE_ATFILE #undef __USE_DYNAMIC_STACK_SIZE #undef __USE_GNU #undef __USE_FORTIFY_LEVEL #undef __KERNEL_STRICT_NAMES #undef __GLIBC_USE_ISOC23 #undef __GLIBC_USE_DEPRECATED_GETS #undef __GLIBC_USE_DEPRECATED_SCANF #undef __GLIBC_USE_C23_STRTOL /* Suppress kernel-name space pollution unless user expressedly asks for it. */ #ifndef _LOOSE_KERNEL_NAMES # define __KERNEL_STRICT_NAMES #endif # 162 "/usr/include/features.h" 3 4 /* Convenience macro to test the version of gcc. Use like this: #if __GNUC_PREREQ (2,8) ... code requiring gcc 2.8 or later ... #endif Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was added in 2.0. */ #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ && defined __GNUC_MINOR__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 171 "/usr/include/features.h" 3 4 # define __GNUC_PREREQ(maj, min) \ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) #else # 174 "/usr/include/features.h" 3 4 # define __GNUC_PREREQ(maj, min) 0 #endif # 176 "/usr/include/features.h" 3 4 /* Similarly for clang. Features added to GCC after version 4.2 may or may not also be available in clang, and clang's definitions of __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such features can be queried via __has_extension/__has_feature. */ #if 0 /* disabled by -frewrite-includes */ #if defined __clang_major__ && defined __clang_minor__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 182 "/usr/include/features.h" 3 4 # define __glibc_clang_prereq(maj, min) \ ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min)) #else # 185 "/usr/include/features.h" 3 4 # define __glibc_clang_prereq(maj, min) 0 #endif # 187 "/usr/include/features.h" 3 4 /* Whether to use feature set F. */ #define __GLIBC_USE(F) __GLIBC_USE_ ## F /* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not issue a warning; the expectation is that the source is being transitioned to use the new macro. */ #if 0 /* disabled by -frewrite-includes */ #if (defined _BSD_SOURCE || defined _SVID_SOURCE) \ && !defined _DEFAULT_SOURCE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/features.h" 3 4 # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" # undef _DEFAULT_SOURCE # define _DEFAULT_SOURCE 1 #endif # 201 "/usr/include/features.h" 3 4 /* Remap the old name _ISOC2X_SOURCE to _ISOC23_SOURCE. */ #ifdef _ISOC2X_SOURCE # undef _ISOC2X_SOURCE # undef _ISOC23_SOURCE # define _ISOC23_SOURCE 1 #endif # 208 "/usr/include/features.h" 3 4 /* If _GNU_SOURCE was defined by the user, turn on all the other features. */ #ifdef _GNU_SOURCE # undef _ISOC95_SOURCE # define _ISOC95_SOURCE 1 # undef _ISOC99_SOURCE # define _ISOC99_SOURCE 1 # undef _ISOC11_SOURCE # define _ISOC11_SOURCE 1 # undef _ISOC23_SOURCE # define _ISOC23_SOURCE 1 # undef _POSIX_SOURCE # define _POSIX_SOURCE 1 # undef _POSIX_C_SOURCE # define _POSIX_C_SOURCE 200809L # undef _XOPEN_SOURCE # define _XOPEN_SOURCE 700 # undef _XOPEN_SOURCE_EXTENDED # define _XOPEN_SOURCE_EXTENDED 1 # undef _LARGEFILE64_SOURCE # define _LARGEFILE64_SOURCE 1 # undef _DEFAULT_SOURCE # define _DEFAULT_SOURCE 1 # undef _ATFILE_SOURCE # define _ATFILE_SOURCE 1 # undef _DYNAMIC_STACK_SIZE_SOURCE # define _DYNAMIC_STACK_SIZE_SOURCE 1 #endif # 236 "/usr/include/features.h" 3 4 /* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, define _DEFAULT_SOURCE. */ #if 0 /* disabled by -frewrite-includes */ #if (defined _DEFAULT_SOURCE \ || (!defined __STRICT_ANSI__ \ && !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \ && !defined _ISOC23_SOURCE \ && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \ && !defined _XOPEN_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/features.h" 3 4 # undef _DEFAULT_SOURCE # define _DEFAULT_SOURCE 1 #endif # 248 "/usr/include/features.h" 3 4 /* This is to enable the ISO C23 extension. */ #if 0 /* disabled by -frewrite-includes */ #if (defined _ISOC23_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 252 "/usr/include/features.h" 3 4 # define __GLIBC_USE_ISOC23 1 #else # 254 "/usr/include/features.h" 3 4 # define __GLIBC_USE_ISOC23 0 #endif # 256 "/usr/include/features.h" 3 4 /* This is to enable the ISO C11 extension. */ #if 0 /* disabled by -frewrite-includes */ #if (defined _ISOC11_SOURCE || defined _ISOC23_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 260 "/usr/include/features.h" 3 4 # define __USE_ISOC11 1 #endif # 262 "/usr/include/features.h" 3 4 /* This is to enable the ISO C99 extension. */ #if 0 /* disabled by -frewrite-includes */ #if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ || defined _ISOC23_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 267 "/usr/include/features.h" 3 4 # define __USE_ISOC99 1 #endif # 269 "/usr/include/features.h" 3 4 /* This is to enable the ISO C90 Amendment 1:1995 extension. */ #if 0 /* disabled by -frewrite-includes */ #if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ || defined _ISOC23_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 274 "/usr/include/features.h" 3 4 # define __USE_ISOC95 1 #endif # 276 "/usr/include/features.h" 3 4 #ifdef __cplusplus /* This is to enable compatibility for ISO C++17. */ #if 0 /* disabled by -frewrite-includes */ # if __cplusplus >= 201703L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 280 "/usr/include/features.h" 3 4 # define __USE_ISOC11 1 # endif # 282 "/usr/include/features.h" 3 4 /* This is to enable compatibility for ISO C++11. Check the temporary macro for now, too. */ #if 0 /* disabled by -frewrite-includes */ # if __cplusplus >= 201103L || defined __GXX_EXPERIMENTAL_CXX0X__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 285 "/usr/include/features.h" 3 4 # define __USE_ISOCXX11 1 # define __USE_ISOC99 1 # endif # 288 "/usr/include/features.h" 3 4 #endif # 289 "/usr/include/features.h" 3 4 /* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE is defined, use POSIX.1-2008 (or another version depending on _XOPEN_SOURCE). */ #ifdef _DEFAULT_SOURCE #if 0 /* disabled by -frewrite-includes */ # if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 295 "/usr/include/features.h" 3 4 # define __USE_POSIX_IMPLICITLY 1 # endif # 297 "/usr/include/features.h" 3 4 # undef _POSIX_SOURCE # define _POSIX_SOURCE 1 # undef _POSIX_C_SOURCE # define _POSIX_C_SOURCE 200809L #endif # 302 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if ((!defined __STRICT_ANSI__ \ || (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)) \ && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 306 "/usr/include/features.h" 3 4 # define _POSIX_SOURCE 1 #if 0 /* disabled by -frewrite-includes */ # if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 308 "/usr/include/features.h" 3 4 # define _POSIX_C_SOURCE 2 #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 310 "/usr/include/features.h" 3 4 # define _POSIX_C_SOURCE 199506L #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 312 "/usr/include/features.h" 3 4 # define _POSIX_C_SOURCE 200112L # else # 314 "/usr/include/features.h" 3 4 # define _POSIX_C_SOURCE 200809L # endif # 316 "/usr/include/features.h" 3 4 # define __USE_POSIX_IMPLICITLY 1 #endif # 318 "/usr/include/features.h" 3 4 /* Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be defined in all multithreaded code. GNU libc has not required this for many years. We now treat them as compatibility synonyms for _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with comprehensive support for multithreaded code. Using them never lowers the selected level of POSIX conformance, only raises it. */ #if 0 /* disabled by -frewrite-includes */ #if ((!defined _POSIX_C_SOURCE || (_POSIX_C_SOURCE - 0) < 199506L) \ && (defined _REENTRANT || defined _THREAD_SAFE)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 327 "/usr/include/features.h" 3 4 # define _POSIX_SOURCE 1 # undef _POSIX_C_SOURCE # define _POSIX_C_SOURCE 199506L #endif # 331 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined _POSIX_SOURCE \ || (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1) \ || defined _XOPEN_SOURCE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 335 "/usr/include/features.h" 3 4 # define __USE_POSIX 1 #endif # 337 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 339 "/usr/include/features.h" 3 4 # define __USE_POSIX2 1 #endif # 341 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 343 "/usr/include/features.h" 3 4 # define __USE_POSIX199309 1 #endif # 345 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/features.h" 3 4 # define __USE_POSIX199506 1 #endif # 349 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 351 "/usr/include/features.h" 3 4 # define __USE_XOPEN2K 1 # undef __USE_ISOC95 # define __USE_ISOC95 1 # undef __USE_ISOC99 # define __USE_ISOC99 1 #endif # 357 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/features.h" 3 4 # define __USE_XOPEN2K8 1 # undef _ATFILE_SOURCE # define _ATFILE_SOURCE 1 #endif # 363 "/usr/include/features.h" 3 4 #ifdef _XOPEN_SOURCE # define __USE_XOPEN 1 #if 0 /* disabled by -frewrite-includes */ # if (_XOPEN_SOURCE - 0) >= 500 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 367 "/usr/include/features.h" 3 4 # define __USE_XOPEN_EXTENDED 1 # define __USE_UNIX98 1 # undef _LARGEFILE_SOURCE # define _LARGEFILE_SOURCE 1 #if 0 /* disabled by -frewrite-includes */ # if (_XOPEN_SOURCE - 0) >= 600 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 372 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if (_XOPEN_SOURCE - 0) >= 700 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 373 "/usr/include/features.h" 3 4 # define __USE_XOPEN2K8 1 # define __USE_XOPEN2K8XSI 1 # endif # 376 "/usr/include/features.h" 3 4 # define __USE_XOPEN2K 1 # define __USE_XOPEN2KXSI 1 # undef __USE_ISOC95 # define __USE_ISOC95 1 # undef __USE_ISOC99 # define __USE_ISOC99 1 # endif # 383 "/usr/include/features.h" 3 4 # else # 384 "/usr/include/features.h" 3 4 # ifdef _XOPEN_SOURCE_EXTENDED # define __USE_XOPEN_EXTENDED 1 # endif # 387 "/usr/include/features.h" 3 4 # endif # 388 "/usr/include/features.h" 3 4 #endif # 389 "/usr/include/features.h" 3 4 #ifdef _LARGEFILE_SOURCE # define __USE_LARGEFILE 1 #endif # 393 "/usr/include/features.h" 3 4 #ifdef _LARGEFILE64_SOURCE # define __USE_LARGEFILE64 1 #endif # 397 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/features.h" 3 4 # define __USE_FILE_OFFSET64 1 #endif # 401 "/usr/include/features.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* features-time64.h expanded by -frewrite-includes */ #include #else /* features-time64.h expanded by -frewrite-includes */ # 402 "/usr/include/features.h" 3 4 # 1 "/usr/include/features-time64.h" 1 3 4 /* Features part to handle 64-bit time_t support. Copyright (C) 2021-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* We need to know the word size in order to check the time size. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 20 "/usr/include/features-time64.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 21 "/usr/include/features-time64.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* timesize.h expanded by -frewrite-includes */ #include #else /* timesize.h expanded by -frewrite-includes */ # 21 "/usr/include/features-time64.h" 3 4 # 1 "/usr/include/bits/timesize.h" 1 3 4 /* Bit size of the time_t type at glibc build time, x86-64 and x32 case. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 19 "/usr/include/bits/timesize.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 20 "/usr/include/bits/timesize.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 22 "/usr/include/bits/timesize.h" 3 4 /* For x32, time is 64-bit even though word size is 32-bit. */ # define __TIMESIZE 64 #else # 25 "/usr/include/bits/timesize.h" 3 4 /* For others, time size is word size. */ # define __TIMESIZE __WORDSIZE #endif # 28 "/usr/include/bits/timesize.h" 3 4 #endif /* timesize.h expanded by -frewrite-includes */ # 22 "/usr/include/features-time64.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _TIME_BITS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "/usr/include/features-time64.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if _TIME_BITS == 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 25 "/usr/include/features-time64.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ! defined (_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 26 "/usr/include/features-time64.h" 3 4 # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64" # endif # 28 "/usr/include/features-time64.h" 3 4 # define __USE_TIME_BITS64 1 #if 0 /* disabled by -frewrite-includes */ #if 0 # elif _TIME_BITS == 32 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 30 "/usr/include/features-time64.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __TIMESIZE > 32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 31 "/usr/include/features-time64.h" 3 4 # error "_TIME_BITS=32 is not compatible with __TIMESIZE > 32" # endif # 33 "/usr/include/features-time64.h" 3 4 # else # 34 "/usr/include/features-time64.h" 3 4 # error Invalid _TIME_BITS value (can only be 32 or 64-bit) # endif # 36 "/usr/include/features-time64.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __TIMESIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 37 "/usr/include/features-time64.h" 3 4 # define __USE_TIME_BITS64 1 #endif # 39 "/usr/include/features-time64.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_TIME_BITS64 && __TIMESIZE == 32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "/usr/include/features-time64.h" 3 4 # define __USE_TIME64_REDIRECTS 1 #endif # 43 "/usr/include/features-time64.h" 3 4 #endif /* features-time64.h expanded by -frewrite-includes */ # 403 "/usr/include/features.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _DEFAULT_SOURCE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 405 "/usr/include/features.h" 3 4 # define __USE_MISC 1 #endif # 407 "/usr/include/features.h" 3 4 #ifdef _ATFILE_SOURCE # define __USE_ATFILE 1 #endif # 411 "/usr/include/features.h" 3 4 #ifdef _DYNAMIC_STACK_SIZE_SOURCE # define __USE_DYNAMIC_STACK_SIZE 1 #endif # 415 "/usr/include/features.h" 3 4 #ifdef _GNU_SOURCE # define __USE_GNU 1 #endif # 419 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 421 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __OPTIMIZE__ || __OPTIMIZE__ <= 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 422 "/usr/include/features.h" 3 4 # warning _FORTIFY_SOURCE requires compiling with optimization (-O) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !__GNUC_PREREQ (4, 1) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 424 "/usr/include/features.h" 3 4 # warning _FORTIFY_SOURCE requires GCC 4.1 or later #if 0 /* disabled by -frewrite-includes */ #if 0 # elif _FORTIFY_SOURCE > 2 && (__glibc_clang_prereq (9, 0) \ || __GNUC_PREREQ (12, 0)) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 427 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if _FORTIFY_SOURCE > 3 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 429 "/usr/include/features.h" 3 4 # warning _FORTIFY_SOURCE > 3 is treated like 3 on this platform # endif # 431 "/usr/include/features.h" 3 4 # define __USE_FORTIFY_LEVEL 3 #if 0 /* disabled by -frewrite-includes */ #if 0 # elif _FORTIFY_SOURCE > 1 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 433 "/usr/include/features.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if _FORTIFY_SOURCE > 2 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 434 "/usr/include/features.h" 3 4 # warning _FORTIFY_SOURCE > 2 is treated like 2 on this platform # endif # 436 "/usr/include/features.h" 3 4 # define __USE_FORTIFY_LEVEL 2 # else # 438 "/usr/include/features.h" 3 4 # define __USE_FORTIFY_LEVEL 1 # endif # 440 "/usr/include/features.h" 3 4 #endif # 441 "/usr/include/features.h" 3 4 #ifndef __USE_FORTIFY_LEVEL # define __USE_FORTIFY_LEVEL 0 #endif # 444 "/usr/include/features.h" 3 4 /* The function 'gets' existed in C89, but is impossible to use safely. It has been removed from ISO C11 and ISO C++14. Note: for compatibility with various implementations of , this test must consider only the value of __cplusplus when compiling C++. */ #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus ? __cplusplus >= 201402L : defined __USE_ISOC11 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 450 "/usr/include/features.h" 3 4 # define __GLIBC_USE_DEPRECATED_GETS 0 #else # 452 "/usr/include/features.h" 3 4 # define __GLIBC_USE_DEPRECATED_GETS 1 #endif # 454 "/usr/include/features.h" 3 4 /* GNU formerly extended the scanf functions with modified format specifiers %as, %aS, and %a[...] that allocate a buffer for the input using malloc. This extension conflicts with ISO C99, which defines %a as a standalone format specifier that reads a floating- point number; moreover, POSIX.1-2008 provides the same feature using the modifier letter 'm' instead (%ms, %mS, %m[...]). We now follow C99 unless GNU extensions are active and the compiler is specifically in C89 or C++98 mode (strict or not). For instance, with GCC, -std=gnu11 will have C99-compliant scanf with or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the old extension. */ #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ && (defined __cplusplus \ ? (__cplusplus < 201103L && !defined __GXX_EXPERIMENTAL_CXX0X__) \ : (!defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L))) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 471 "/usr/include/features.h" 3 4 # define __GLIBC_USE_DEPRECATED_SCANF 1 #else # 473 "/usr/include/features.h" 3 4 # define __GLIBC_USE_DEPRECATED_SCANF 0 #endif # 475 "/usr/include/features.h" 3 4 /* ISO C23 added support for a 0b or 0B prefix on binary constants as inputs to strtol-family functions (base 0 or 2). This macro is used to condition redirection in headers to allow that redirection to be disabled when building those functions, despite _GNU_SOURCE being defined. */ #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 482 "/usr/include/features.h" 3 4 # define __GLIBC_USE_C23_STRTOL 1 #else # 484 "/usr/include/features.h" 3 4 # define __GLIBC_USE_C23_STRTOL 0 #endif # 486 "/usr/include/features.h" 3 4 /* Get definitions of __STDC_* predefined macros, if the compiler has not preincluded this header automatically. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdc-predef.h expanded by -frewrite-includes */ #include #else /* stdc-predef.h expanded by -frewrite-includes */ # 489 "/usr/include/features.h" 3 4 # 1 "/usr/include/stdc-predef.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _STDC_PREDEF_H #define _STDC_PREDEF_H 1 /* This header is separate from features.h so that the compiler can include it implicitly at the start of every compilation. It must not itself include or any other header that includes because the implicit include comes before any feature test macros that may be defined in a source file before it first explicitly includes a system header. GCC knows the name of this header in order to preinclude it. */ /* glibc's intent is to support the IEC 559 math functionality, real and complex. If the GCC (4.9 and later) predefined macros specifying compiler intent are available, use them to determine whether the overall intent is to support these features; otherwise, presume an older compiler has intent to support these features and define these macros by default. */ #ifdef __GCC_IEC_559 #if 0 /* disabled by -frewrite-includes */ # if __GCC_IEC_559 > 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/stdc-predef.h" 3 4 # define __STDC_IEC_559__ 1 # define __STDC_IEC_60559_BFP__ 201404L # endif # 41 "/usr/include/stdc-predef.h" 3 4 #else # 42 "/usr/include/stdc-predef.h" 3 4 # define __STDC_IEC_559__ 1 # define __STDC_IEC_60559_BFP__ 201404L #endif # 45 "/usr/include/stdc-predef.h" 3 4 #ifdef __GCC_IEC_559_COMPLEX #if 0 /* disabled by -frewrite-includes */ # if __GCC_IEC_559_COMPLEX > 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/usr/include/stdc-predef.h" 3 4 # define __STDC_IEC_559_COMPLEX__ 1 # define __STDC_IEC_60559_COMPLEX__ 201404L # endif # 51 "/usr/include/stdc-predef.h" 3 4 #else # 52 "/usr/include/stdc-predef.h" 3 4 # define __STDC_IEC_559_COMPLEX__ 1 # define __STDC_IEC_60559_COMPLEX__ 201404L #endif # 55 "/usr/include/stdc-predef.h" 3 4 /* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is synchronized with ISO/IEC 10646:2017, fifth edition, plus the following additions from Amendment 1 to the fifth edition: - 56 emoji characters - 285 hentaigana - 3 additional Zanabazar Square characters */ #define __STDC_ISO_10646__ 201706L #endif # 65 "/usr/include/stdc-predef.h" 3 4 #endif /* stdc-predef.h expanded by -frewrite-includes */ # 490 "/usr/include/features.h" 2 3 4 /* This macro indicates that the installed library is the GNU C Library. For historic reasons the value now is 6 and this will stay from now on. The use of this variable is deprecated. Use __GLIBC__ and __GLIBC_MINOR__ now (see below) when you want to test for a specific GNU C library version and use the values in to get the sonames of the shared libraries. */ #undef __GNU_LIBRARY__ #define __GNU_LIBRARY__ 6 /* Major and minor version number of the GNU C library package. Use these macros to test for features in specific releases. */ #define __GLIBC__ 2 #define __GLIBC_MINOR__ 40 #define __GLIBC_PREREQ(maj, min) \ ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) /* This is here only because every header file already includes this one. */ #ifndef __ASSEMBLER__ # ifndef _SYS_CDEFS_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* cdefs.h expanded by -frewrite-includes */ # include #else /* cdefs.h expanded by -frewrite-includes */ # 511 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 /* Copyright (C) 1992-2024 Free Software Foundation, Inc. Copyright The GNU Toolchain Authors. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SYS_CDEFS_H #define _SYS_CDEFS_H 1 /* We are almost always included from features.h. */ #ifndef _FEATURES_H #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 24 "/usr/include/sys/cdefs.h" 3 4 # 25 "/usr/include/sys/cdefs.h" 3 4 #endif # 26 "/usr/include/sys/cdefs.h" 3 4 /* The GNU libc does not support any K&R compilers or the traditional mode of ISO C compilers anymore. Check for some of the combinations not supported anymore. */ #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ && !defined __STDC__ && !defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 31 "/usr/include/sys/cdefs.h" 3 4 # error "You need a ISO C or C++ conforming compiler to use the glibc headers" #endif # 33 "/usr/include/sys/cdefs.h" 3 4 /* Some user header file might have defined this before. */ #undef __P #undef __PMT /* Compilers that lack __has_attribute may object to #if defined __has_attribute && __has_attribute (...) even though they do not need to evaluate the right-hand side of the &&. Similarly for __has_builtin, etc. */ #if 0 /* disabled by -frewrite-includes */ #if (defined __has_attribute \ && (!defined __clang_minor__ \ || 3 < __clang_major__ + (5 <= __clang_minor__))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_has_attribute(attr) __has_attribute (attr) #else # 47 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_has_attribute(attr) 0 #endif # 49 "/usr/include/sys/cdefs.h" 3 4 #ifdef __has_builtin # define __glibc_has_builtin(name) __has_builtin (name) #else # 52 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_has_builtin(name) 0 #endif # 54 "/usr/include/sys/cdefs.h" 3 4 #ifdef __has_extension # define __glibc_has_extension(ext) __has_extension (ext) #else # 57 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_has_extension(ext) 0 #endif # 59 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 61 "/usr/include/sys/cdefs.h" 3 4 /* All functions, except those with callbacks or those that synchronize memory, are leaf functions. */ #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (4, 6) && !defined _LIBC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 65 "/usr/include/sys/cdefs.h" 3 4 # define __LEAF , __leaf__ # define __LEAF_ATTR __attribute__ ((__leaf__)) # else # 68 "/usr/include/sys/cdefs.h" 3 4 # define __LEAF # define __LEAF_ATTR # endif # 71 "/usr/include/sys/cdefs.h" 3 4 /* GCC can always grok prototypes. For C++ programs we add throw() to help it optimize the function calls. But this only works with gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions as non-throwing using a function attribute since programs can use the -fexceptions options for C code as well. */ #if 0 /* disabled by -frewrite-includes */ # if !defined __cplusplus \ && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 79 "/usr/include/sys/cdefs.h" 3 4 # define __THROW __attribute__ ((__nothrow__ __LEAF)) # define __THROWNL __attribute__ ((__nothrow__)) # define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct # define __NTHNL(fct) __attribute__ ((__nothrow__)) fct # else # 84 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 85 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __cplusplus >= 201103L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 86 "/usr/include/sys/cdefs.h" 3 4 # define __THROW noexcept (true) # else # 88 "/usr/include/sys/cdefs.h" 3 4 # define __THROW throw () # endif # 90 "/usr/include/sys/cdefs.h" 3 4 # define __THROWNL __THROW # define __NTH(fct) __LEAF_ATTR fct __THROW # define __NTHNL(fct) fct __THROW # else # 94 "/usr/include/sys/cdefs.h" 3 4 # define __THROW # define __THROWNL # define __NTH(fct) fct # define __NTHNL(fct) fct # endif # 99 "/usr/include/sys/cdefs.h" 3 4 # endif # 100 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (4, 3) || __glibc_has_attribute (__cold__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 102 "/usr/include/sys/cdefs.h" 3 4 # define __COLD __attribute__ ((__cold__)) # else # 104 "/usr/include/sys/cdefs.h" 3 4 # define __COLD # endif # 106 "/usr/include/sys/cdefs.h" 3 4 #else /* Not GCC or clang. */ # 108 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if (defined __cplusplus \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 111 "/usr/include/sys/cdefs.h" 3 4 # define __inline inline # else # 113 "/usr/include/sys/cdefs.h" 3 4 # define __inline /* No inline functions. */ # endif # 115 "/usr/include/sys/cdefs.h" 3 4 # define __THROW # define __THROWNL # define __NTH(fct) fct # define __COLD #endif /* GCC || clang. */ # 122 "/usr/include/sys/cdefs.h" 3 4 /* These two macros are not used in glibc anymore. They are kept here only because some other projects expect the macros to be defined. */ #define __P(args) args #define __PMT(args) args /* For these things, GCC behaves the ANSI way normally, and the non-ANSI way under -traditional. */ #define __CONCAT(x,y) x ## y #define __STRING(x) #x /* This is not a typedef so `const __ptr_t' does the right thing. */ #define __ptr_t void * /* C++ needs to know that types and declarations are C, not C++. */ #ifdef __cplusplus # define __BEGIN_DECLS extern "C" { # define __END_DECLS } #else # 143 "/usr/include/sys/cdefs.h" 3 4 # define __BEGIN_DECLS # define __END_DECLS #endif # 146 "/usr/include/sys/cdefs.h" 3 4 /* The overloadable attribute was added on clang 2.6. */ #if 0 /* disabled by -frewrite-includes */ #if defined __clang_major__ \ && (__clang_major__ + (__clang_minor__ >= 6) > 2) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 151 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_overloadable__ __attribute__((__overloadable__)) #else # 153 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_overloadable__ #endif # 155 "/usr/include/sys/cdefs.h" 3 4 /* Fortify support. */ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) /* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ || __GNUC_PREREQ (12, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 163 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) # define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) #else # 166 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_objsize0(__o) __bos0 (__o) # define __glibc_objsize(__o) __bos (__o) #endif # 169 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL > 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 171 "/usr/include/sys/cdefs.h" 3 4 /* Compile time conditions to choose between the regular, _chk and _chk_warn variants. These conditions should get evaluated to constant and optimized away. */ #define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) #define __glibc_unsigned_or_positive(__l) \ ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ || (__builtin_constant_p (__l) && (__l) > 0)) /* Length is known to be safe at compile time if the __L * __S <= __OBJSZ condition can be folded to a constant and if it is true, or unknown (-1) */ #define __glibc_safe_or_unknown_len(__l, __s, __osz) \ ((__builtin_constant_p (__osz) && (__osz) == (__SIZE_TYPE__) -1) \ || (__glibc_unsigned_or_positive (__l) \ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ (__s), (__osz))) \ && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) /* Conversely, we know at compile time that the length is unsafe if the __L * __S <= __OBJSZ condition can be folded to a constant and if it is false. */ #define __glibc_unsafe_len(__l, __s, __osz) \ (__glibc_unsigned_or_positive (__l) \ && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ __s, __osz)) \ && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) /* To correctly instrument the fortify wrapper clang requires the pass_object_size attribute, and the attribute has the restriction that the argument needs to be 'const'. Furthermore, to make it usable with C interfaces, clang provides the overload attribute, which provides a C++ like function overload support. The overloaded fortify wrapper with the pass_object_size attribute has precedence over the default symbol. Also, clang does not support __va_arg_pack, so variadic functions are expanded to issue va_arg implementations. The error function must not have bodies (address takes are expanded to nonfortified calls), and with __fortify_function compiler might still create a body with the C++ mangling name (due to the overload attribute). In this case, the function is defined with __fortify_function_error_function macro instead. The argument size check is also done with a clang-only attribute, __attribute__ ((__diagnose_if__ (...))), different than gcc which calls symbol_chk_warn alias with uses __warnattr attribute. The pass_object_size was added on clang 4.0, __diagnose_if__ on 5.0, and pass_dynamic_object_size on 9.0. */ #if 0 /* disabled by -frewrite-includes */ #if defined __clang_major__ && __clang_major__ >= 5 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 219 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_use_clang 1 # define __fortify_function_error_function static __attribute__((__unused__)) # define __fortify_clang_pass_object_size_n(n) \ __attribute__ ((__pass_object_size__ (n))) # define __fortify_clang_pass_object_size0 \ __fortify_clang_pass_object_size_n (0) # define __fortify_clang_pass_object_size \ __fortify_clang_pass_object_size_n (__USE_FORTIFY_LEVEL > 1) #if 0 /* disabled by -frewrite-includes */ # if __clang_major__ >= 9 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 231 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_clang_pass_dynamic_object_size_n(n) \ __attribute__ ((__pass_dynamic_object_size__ (n))) # define __fortify_clang_pass_dynamic_object_size0 \ __fortify_clang_pass_dynamic_object_size_n (0) # define __fortify_clang_pass_dynamic_object_size \ __fortify_clang_pass_dynamic_object_size_n (1) # else # 238 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_clang_pass_dynamic_object_size_n(n) # define __fortify_clang_pass_dynamic_object_size0 # define __fortify_clang_pass_dynamic_object_size # endif # 242 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_clang_bos_static_lt_impl(bos_val, n, s) \ ((bos_val) != -1ULL && (n) > (bos_val) / (s)) # define __fortify_clang_bos_static_lt2(__n, __e, __s) \ __fortify_clang_bos_static_lt_impl (__bos (__e), __n, __s) # define __fortify_clang_bos_static_lt(__n, __e) \ __fortify_clang_bos_static_lt2 (__n, __e, 1) # define __fortify_clang_bos0_static_lt2(__n, __e, __s) \ __fortify_clang_bos_static_lt_impl (__bos0 (__e), __n, __s) # define __fortify_clang_bos0_static_lt(__n, __e) \ __fortify_clang_bos0_static_lt2 (__n, __e, 1) # define __fortify_clang_bosn_args(bos_fn, n, buf, div, complaint) \ (__fortify_clang_bos_static_lt_impl (bos_fn (buf), n, div)), (complaint), \ "warning" # define __fortify_clang_warning(__c, __msg) \ __attribute__ ((__diagnose_if__ ((__c), (__msg), "warning"))) # define __fortify_clang_error(__c, __msg) \ __attribute__ ((__diagnose_if__ ((__c), (__msg), "error"))) # define __fortify_clang_warning_only_if_bos0_lt(n, buf, complaint) \ __attribute__ ((__diagnose_if__ \ (__fortify_clang_bosn_args (__bos0, n, buf, 1, complaint)))) # define __fortify_clang_warning_only_if_bos0_lt2(n, buf, div, complaint) \ __attribute__ ((__diagnose_if__ \ (__fortify_clang_bosn_args (__bos0, n, buf, div, complaint)))) # define __fortify_clang_warning_only_if_bos_lt(n, buf, complaint) \ __attribute__ ((__diagnose_if__ \ (__fortify_clang_bosn_args (__bos, n, buf, 1, complaint)))) # define __fortify_clang_warning_only_if_bos_lt2(n, buf, div, complaint) \ __attribute__ ((__diagnose_if__ \ (__fortify_clang_bosn_args (__bos, n, buf, div, complaint)))) # define __fortify_clang_prefer_this_overload \ __attribute__ ((enable_if (1, ""))) # define __fortify_clang_unavailable(__msg) \ __attribute__ ((unavailable(__msg))) #if 0 /* disabled by -frewrite-includes */ # if __USE_FORTIFY_LEVEL == 3 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 281 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_clang_overload_arg(__type, __attr, __name) \ __type __attr const __fortify_clang_pass_dynamic_object_size __name # define __fortify_clang_overload_arg0(__type, __attr, __name) \ __type __attr const __fortify_clang_pass_dynamic_object_size0 __name # else # 286 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_clang_overload_arg(__type, __attr, __name) \ __type __attr const __fortify_clang_pass_object_size __name # define __fortify_clang_overload_arg0(__type, __attr, __name) \ __type __attr const __fortify_clang_pass_object_size0 __name # endif # 291 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_clang_mul_may_overflow(size, n) \ ((size | n) >= (((size_t)1) << (8 * sizeof (size_t) / 2))) # define __fortify_clang_size_too_small(__bos, __dest, __len) \ (__bos (__dest) != (size_t) -1 && __bos (__dest) < __len) # define __fortify_clang_warn_if_src_too_large(__dest, __src) \ __fortify_clang_warning (__fortify_clang_size_too_small (__glibc_objsize, \ __dest, \ __builtin_strlen (__src) + 1), \ "destination buffer will always be overflown by source") # define __fortify_clang_warn_if_dest_too_small(__dest, __len) \ __fortify_clang_warning (__fortify_clang_size_too_small (__glibc_objsize, \ __dest, \ __len), \ "function called with bigger length than the destination buffer") # define __fortify_clang_warn_if_dest_too_small0(__dest, __len) \ __fortify_clang_warning (__fortify_clang_size_too_small (__glibc_objsize0, \ __dest, \ __len), \ "function called with bigger length than the destination buffer") #else # 313 "/usr/include/sys/cdefs.h" 3 4 # define __fortify_use_clang 0 # define __fortify_clang_warning(__c, __msg) # define __fortify_clang_warning_only_if_bos0_lt(__n, __buf, __complaint) # define __fortify_clang_warning_only_if_bos0_lt2(__n, __buf, __div, complaint) # define __fortify_clang_warning_only_if_bos_lt(__n, __buf, __complaint) # define __fortify_clang_warning_only_if_bos_lt2(__n, __buf, div, __complaint) # define __fortify_clang_overload_arg(__type, __attr, __name) \ __type __attr __name # define __fortify_clang_overload_arg0(__type, __attr, __name) \ __fortify_clang_overload_arg (__type, __attr, __name) # define __fortify_clang_warn_if_src_too_large(__dest, __src) # define __fortify_clang_warn_if_dest_too_small(__dest, __len) # define __fortify_clang_warn_if_dest_too_small0(__dest, __len) #endif # 327 "/usr/include/sys/cdefs.h" 3 4 /* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be declared. */ #if 0 /* disabled by -frewrite-includes */ #if !__fortify_use_clang #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 333 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_fortify(f, __l, __s, __osz, ...) \ (__glibc_safe_or_unknown_len (__l, __s, __osz) \ ? __ ## f ## _alias (__VA_ARGS__) \ : (__glibc_unsafe_len (__l, __s, __osz) \ ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ : __ ## f ## _chk (__VA_ARGS__, __osz))) #else # 340 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_fortify(f, __l, __s, __osz, ...) \ (__osz == (__SIZE_TYPE__) -1) \ ? __ ## f ## _alias (__VA_ARGS__) \ : __ ## f ## _chk (__VA_ARGS__, __osz) #endif # 345 "/usr/include/sys/cdefs.h" 3 4 /* Fortify function f, where object size argument passed to f is the number of elements and not total size. */ #if 0 /* disabled by -frewrite-includes */ #if !__fortify_use_clang #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 350 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_fortify_n(f, __l, __s, __osz, ...) \ (__glibc_safe_or_unknown_len (__l, __s, __osz) \ ? __ ## f ## _alias (__VA_ARGS__) \ : (__glibc_unsafe_len (__l, __s, __osz) \ ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) # else # 357 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_fortify_n(f, __l, __s, __osz, ...) \ (__osz == (__SIZE_TYPE__) -1) \ ? __ ## f ## _alias (__VA_ARGS__) \ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)) #endif # 362 "/usr/include/sys/cdefs.h" 3 4 #endif /* __USE_FORTIFY_LEVEL > 0 */ # 364 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4,3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 366 "/usr/include/sys/cdefs.h" 3 4 # define __warnattr(msg) __attribute__((__warning__ (msg))) # define __errordecl(name, msg) \ extern void name (void) __attribute__((__error__ (msg))) #else # 370 "/usr/include/sys/cdefs.h" 3 4 # define __warnattr(msg) # define __errordecl(name, msg) extern void name (void) #endif # 373 "/usr/include/sys/cdefs.h" 3 4 /* Support for flexible arrays. Headers that should use flexible arrays only if they're "real" (e.g. only if they won't affect sizeof()) should test #if __glibc_c99_flexarr_available. */ #if 0 /* disabled by -frewrite-includes */ #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 379 "/usr/include/sys/cdefs.h" 3 4 # define __flexarr [] # define __glibc_c99_flexarr_available 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __GNUC_PREREQ (2,97) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 382 "/usr/include/sys/cdefs.h" 3 4 /* GCC 2.97 and clang support C99 flexible array members as an extension, even when in C89 mode or compiling C++ (any version). */ # define __flexarr [] # define __glibc_c99_flexarr_available 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 387 "/usr/include/sys/cdefs.h" 3 4 /* Pre-2.97 GCC did not support C99 flexible arrays but did have an equivalent extension with slightly different notation. */ # define __flexarr [0] # define __glibc_c99_flexarr_available 1 #else # 392 "/usr/include/sys/cdefs.h" 3 4 /* Some other non-C99 compiler. Approximate with [1]. */ # define __flexarr [1] # define __glibc_c99_flexarr_available 0 #endif # 396 "/usr/include/sys/cdefs.h" 3 4 /* __asm__ ("xyz") is used throughout the headers to rename functions at the assembly language level. This is wrapped by the __REDIRECT macro, in order to support compilers that can do this some other way. When compilers don't support asm-names at all, we have to do preprocessor tricks instead (which don't have exactly the right semantics, but it's the best we can do). Example: int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ #if 0 /* disabled by -frewrite-includes */ #if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 409 "/usr/include/sys/cdefs.h" 3 4 # define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) # ifdef __cplusplus # define __REDIRECT_NTH(name, proto, alias) \ name proto __THROW __asm__ (__ASMNAME (#alias)) # define __REDIRECT_NTHNL(name, proto, alias) \ name proto __THROWNL __asm__ (__ASMNAME (#alias)) # else # 417 "/usr/include/sys/cdefs.h" 3 4 # define __REDIRECT_NTH(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROW # define __REDIRECT_NTHNL(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROWNL # endif # 422 "/usr/include/sys/cdefs.h" 3 4 # define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) # define __ASMNAME2(prefix, cname) __STRING (prefix) cname #ifndef __REDIRECT_FORTIFY #define __REDIRECT_FORTIFY __REDIRECT #endif # 428 "/usr/include/sys/cdefs.h" 3 4 #ifndef __REDIRECT_FORTIFY_NTH #define __REDIRECT_FORTIFY_NTH __REDIRECT_NTH #endif # 432 "/usr/include/sys/cdefs.h" 3 4 /* #elif __SOME_OTHER_COMPILER__ # define __REDIRECT(name, proto, alias) name proto; \ _Pragma("let " #name " = " #alias) */ #endif # 440 "/usr/include/sys/cdefs.h" 3 4 /* GCC and clang have various useful declarations that can be made with the '__attribute__' syntax. All of the ways we use this do fine if they are omitted for compilers that don't understand it. */ #if 0 /* disabled by -frewrite-includes */ #if !(defined __GNUC__ || defined __clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 445 "/usr/include/sys/cdefs.h" 3 4 # define __attribute__(xyz) /* Ignore */ #endif # 447 "/usr/include/sys/cdefs.h" 3 4 /* At some point during the gcc 2.96 development the `malloc' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 452 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_malloc__ __attribute__ ((__malloc__)) #else # 454 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_malloc__ /* Ignore */ #endif # 456 "/usr/include/sys/cdefs.h" 3 4 /* Tell the compiler which arguments to an allocation function indicate the size of the allocation. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 460 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_alloc_size__(params) \ __attribute__ ((__alloc_size__ params)) #else # 463 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_alloc_size__(params) /* Ignore. */ #endif # 465 "/usr/include/sys/cdefs.h" 3 4 /* Tell the compiler which argument to an allocation function indicates the alignment of the allocation. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 469 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_alloc_align__(param) \ __attribute__ ((__alloc_align__ param)) #else # 472 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_alloc_align__(param) /* Ignore. */ #endif # 474 "/usr/include/sys/cdefs.h" 3 4 /* At some point during the gcc 2.96 development the `pure' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 479 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_pure__ __attribute__ ((__pure__)) #else # 481 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_pure__ /* Ignore */ #endif # 483 "/usr/include/sys/cdefs.h" 3 4 /* This declaration tells the compiler that the value is constant. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 486 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_const__ __attribute__ ((__const__)) #else # 488 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_const__ /* Ignore */ #endif # 490 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 492 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_maybe_unused__ __attribute__ ((__unused__)) #else # 494 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_maybe_unused__ /* Ignore */ #endif # 496 "/usr/include/sys/cdefs.h" 3 4 /* At some point during the gcc 3.1 development the `used' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 501 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_used__ __attribute__ ((__used__)) # define __attribute_noinline__ __attribute__ ((__noinline__)) #else # 504 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_used__ __attribute__ ((__unused__)) # define __attribute_noinline__ /* Ignore */ #endif # 507 "/usr/include/sys/cdefs.h" 3 4 /* Since version 3.2, gcc allows marking deprecated functions. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 510 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_deprecated__ __attribute__ ((__deprecated__)) #else # 512 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_deprecated__ /* Ignore */ #endif # 514 "/usr/include/sys/cdefs.h" 3 4 /* Since version 4.5, gcc also allows one to specify the message printed when a deprecated function is used. clang claims to be gcc 4.2, but may also support this feature. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4,5) \ || __glibc_has_extension (__attribute_deprecated_with_message__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 520 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_deprecated_msg__(msg) \ __attribute__ ((__deprecated__ (msg))) #else # 523 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_deprecated_msg__(msg) __attribute_deprecated__ #endif # 525 "/usr/include/sys/cdefs.h" 3 4 /* At some point during the gcc 2.8 development the `format_arg' attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. If several `format_arg' attributes are given for the same function, in gcc-3.0 and older, all but the last one are ignored. In newer gccs, all designated arguments are considered. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 533 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) #else # 535 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_format_arg__(x) /* Ignore */ #endif # 537 "/usr/include/sys/cdefs.h" 3 4 /* At some point during the gcc 2.97 development the `strfmon' format attribute for functions was introduced. We don't want to use it unconditionally (although this would be possible) since it generates warnings. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 543 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_format_strfmon__(a,b) \ __attribute__ ((__format__ (__strfmon__, a, b))) #else # 546 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_format_strfmon__(a,b) /* Ignore */ #endif # 548 "/usr/include/sys/cdefs.h" 3 4 /* The nonnull function attribute marks pointer parameters that must not be NULL. This has the name __nonnull in glibc, and __attribute_nonnull__ in files shared with Gnulib to avoid collision with a different __nonnull in DragonFlyBSD 5.9. */ #ifndef __attribute_nonnull__ #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 555 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) # else # 557 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_nonnull__(params) # endif # 559 "/usr/include/sys/cdefs.h" 3 4 #endif # 560 "/usr/include/sys/cdefs.h" 3 4 #ifndef __nonnull # define __nonnull(params) __attribute_nonnull__ (params) #endif # 563 "/usr/include/sys/cdefs.h" 3 4 /* The returns_nonnull function attribute marks the return type of the function as always being non-null. */ #ifndef __returns_nonnull #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 568 "/usr/include/sys/cdefs.h" 3 4 # define __returns_nonnull __attribute__ ((__returns_nonnull__)) # else # 570 "/usr/include/sys/cdefs.h" 3 4 # define __returns_nonnull # endif # 572 "/usr/include/sys/cdefs.h" 3 4 #endif # 573 "/usr/include/sys/cdefs.h" 3 4 /* If fortification mode, we warn about unused results of certain function calls which can lead to problems. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 577 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_warn_unused_result__ \ __attribute__ ((__warn_unused_result__)) #if 0 /* disabled by -frewrite-includes */ # if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 580 "/usr/include/sys/cdefs.h" 3 4 # define __wur __attribute_warn_unused_result__ # endif # 582 "/usr/include/sys/cdefs.h" 3 4 #else # 583 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_warn_unused_result__ /* empty */ #endif # 585 "/usr/include/sys/cdefs.h" 3 4 #ifndef __wur # define __wur /* Ignore */ #endif # 588 "/usr/include/sys/cdefs.h" 3 4 /* Forces a function to be always inlined. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 591 "/usr/include/sys/cdefs.h" 3 4 /* The Linux kernel defines __always_inline in stddef.h (283d7573), and it conflicts with this definition. Therefore undefine it first to allow either header to be included first. */ # undef __always_inline # define __always_inline __inline __attribute__ ((__always_inline__)) #else # 597 "/usr/include/sys/cdefs.h" 3 4 # undef __always_inline # define __always_inline __inline #endif # 600 "/usr/include/sys/cdefs.h" 3 4 /* Associate error messages with the source location of the call site rather than with the source location inside the function. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 604 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_artificial__ __attribute__ ((__artificial__)) #else # 606 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_artificial__ /* Ignore */ #endif # 608 "/usr/include/sys/cdefs.h" 3 4 /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions older than 4.3 may define these macros and still not guarantee GNU inlining semantics. clang++ identifies itself as gcc-4.2, but has support for GNU inlining semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and __GNUC_GNU_INLINE__ macro definitions. */ #if 0 /* disabled by -frewrite-includes */ #if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ || defined __GNUC_GNU_INLINE__))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 621 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __GNUC_STDC_INLINE__ || defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 622 "/usr/include/sys/cdefs.h" 3 4 # define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) # define __extern_always_inline \ extern __always_inline __attribute__ ((__gnu_inline__)) # else # 626 "/usr/include/sys/cdefs.h" 3 4 # define __extern_inline extern __inline # define __extern_always_inline extern __always_inline # endif # 629 "/usr/include/sys/cdefs.h" 3 4 #endif # 630 "/usr/include/sys/cdefs.h" 3 4 #ifdef __extern_always_inline # define __fortify_function __extern_always_inline __attribute_artificial__ #endif # 634 "/usr/include/sys/cdefs.h" 3 4 /* GCC 4.3 and above allow passing all anonymous arguments of an __extern_always_inline function to some other vararg function. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4,3) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 638 "/usr/include/sys/cdefs.h" 3 4 # define __va_arg_pack() __builtin_va_arg_pack () # define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif # 641 "/usr/include/sys/cdefs.h" 3 4 /* It is possible to compile containing GCC extensions even if GCC is run in pedantic mode if the uses are carefully marked using the `__extension__' keyword. But this is not generally available before version 2.8. */ #if 0 /* disabled by -frewrite-includes */ #if !(__GNUC_PREREQ (2,8) || defined __clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 647 "/usr/include/sys/cdefs.h" 3 4 # define __extension__ /* Ignore */ #endif # 649 "/usr/include/sys/cdefs.h" 3 4 /* __restrict is known in EGCS 1.2 and above, and in clang. It works also in C++ mode (outside of arrays), but only when spelled as '__restrict', not 'restrict'. */ #if 0 /* disabled by -frewrite-includes */ #if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 654 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 655 "/usr/include/sys/cdefs.h" 3 4 # define __restrict restrict # else # 657 "/usr/include/sys/cdefs.h" 3 4 # define __restrict /* Ignore */ # endif # 659 "/usr/include/sys/cdefs.h" 3 4 #endif # 660 "/usr/include/sys/cdefs.h" 3 4 /* ISO C99 also allows to declare arrays as non-overlapping. The syntax is array_name[restrict] GCC 3.1 and clang support this. This syntax is not usable in C++ mode. */ #if 0 /* disabled by -frewrite-includes */ #if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 666 "/usr/include/sys/cdefs.h" 3 4 # define __restrict_arr __restrict #else # 668 "/usr/include/sys/cdefs.h" 3 4 # ifdef __GNUC__ # define __restrict_arr /* Not supported in old GCC. */ # else # 671 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 672 "/usr/include/sys/cdefs.h" 3 4 # define __restrict_arr restrict # else # 674 "/usr/include/sys/cdefs.h" 3 4 /* Some other non-C99 compiler. */ # define __restrict_arr /* Not supported. */ # endif # 677 "/usr/include/sys/cdefs.h" 3 4 # endif # 678 "/usr/include/sys/cdefs.h" 3 4 #endif # 679 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 681 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_unlikely(cond) __builtin_expect ((cond), 0) # define __glibc_likely(cond) __builtin_expect ((cond), 1) #else # 684 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_unlikely(cond) (cond) # define __glibc_likely(cond) (cond) #endif # 687 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (!defined _Noreturn \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && !(__GNUC_PREREQ (4,7) \ || (3 < __clang_major__ + (5 <= __clang_minor__)))) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 692 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (2,8) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 693 "/usr/include/sys/cdefs.h" 3 4 # define _Noreturn __attribute__ ((__noreturn__)) # else # 695 "/usr/include/sys/cdefs.h" 3 4 # define _Noreturn # endif # 697 "/usr/include/sys/cdefs.h" 3 4 #endif # 698 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (8, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 700 "/usr/include/sys/cdefs.h" 3 4 /* Describes a char array whose address can safely be passed as the first argument to strncpy and strncat, as the char array is not necessarily a NUL-terminated string. */ # define __attribute_nonstring__ __attribute__ ((__nonstring__)) #else # 705 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_nonstring__ #endif # 707 "/usr/include/sys/cdefs.h" 3 4 /* Undefine (also defined in libc-symbols.h). */ #undef __attribute_copy__ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (9, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 711 "/usr/include/sys/cdefs.h" 3 4 /* Copies attributes from the declaration or type referenced by the argument. */ # define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) #else # 715 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_copy__(arg) #endif # 717 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (!defined _Static_assert && !defined __cplusplus \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ || defined __STRICT_ANSI__)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 722 "/usr/include/sys/cdefs.h" 3 4 # define _Static_assert(expr, diagnostic) \ extern int (*__Static_assert_function (void)) \ [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] #endif # 726 "/usr/include/sys/cdefs.h" 3 4 /* Gnulib avoids including these, as they don't work on non-glibc or older glibc platforms. */ #ifndef __GNULIB_CDEFS #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ # include #else /* wordsize.h expanded by -frewrite-includes */ # 730 "/usr/include/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 731 "/usr/include/sys/cdefs.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* long-double.h expanded by -frewrite-includes */ # include #else /* long-double.h expanded by -frewrite-includes */ # 731 "/usr/include/sys/cdefs.h" 3 4 # 1 "/usr/include/bits/long-double.h" 1 3 4 /* Properties of long double type. ldbl-96 version. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* long double is distinct from double, so there is nothing to define here. */ #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 #endif /* long-double.h expanded by -frewrite-includes */ # 732 "/usr/include/sys/cdefs.h" 2 3 4 #endif # 733 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 735 "/usr/include/sys/cdefs.h" 3 4 # ifdef __REDIRECT /* Alias name defined automatically. */ # define __LDBL_REDIR(name, proto) ... unused__ldbl_redir # define __LDBL_REDIR_DECL(name) \ extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); # define __REDIRECT_LDBL(name, proto, alias) \ name proto __asm (__ASMNAME ("__" #alias "ieee128")) /* Alias name defined automatically, with leading underscores. */ # define __LDBL_REDIR2_DECL(name) \ extern __typeof (__##name) __##name \ __asm (__ASMNAME ("__" #name "ieee128")); /* Alias name defined manually. */ # define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 # define __LDBL_REDIR1_DECL(name, alias) \ extern __typeof (name) name __asm (__ASMNAME (#alias)); # define __LDBL_REDIR1_NTH(name, proto, alias) \ __REDIRECT_NTH (name, proto, alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) /* Unused. */ # define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth # else # 763 "/usr/include/sys/cdefs.h" 3 4 _Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); # endif # 765 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 766 "/usr/include/sys/cdefs.h" 3 4 # define __LDBL_COMPAT 1 # ifdef __REDIRECT # define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) # define __LDBL_REDIR(name, proto) \ __LDBL_REDIR1 (name, proto, __nldbl_##name) # define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) # define __LDBL_REDIR_NTH(name, proto) \ __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) # define __LDBL_REDIR2_DECL(name) \ extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); # define __LDBL_REDIR1_DECL(name, alias) \ extern __typeof (name) name __asm (__ASMNAME (#alias)); # define __LDBL_REDIR_DECL(name) \ extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); # define __REDIRECT_LDBL(name, proto, alias) \ __LDBL_REDIR1 (name, proto, __nldbl_##alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) # endif # 785 "/usr/include/sys/cdefs.h" 3 4 #endif # 786 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ || !defined __REDIRECT #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 788 "/usr/include/sys/cdefs.h" 3 4 # define __LDBL_REDIR1(name, proto, alias) name proto # define __LDBL_REDIR(name, proto) name proto # define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW # define __LDBL_REDIR_NTH(name, proto) name proto __THROW # define __LDBL_REDIR2_DECL(name) # define __LDBL_REDIR_DECL(name) # ifdef __REDIRECT # define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) # define __REDIRECT_NTH_LDBL(name, proto, alias) \ __REDIRECT_NTH (name, proto, alias) # endif # 799 "/usr/include/sys/cdefs.h" 3 4 #endif # 800 "/usr/include/sys/cdefs.h" 3 4 /* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is intended for use in preprocessor macros. Note: MESSAGE must be a _single_ string; concatenation of string literals is not supported. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 807 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_macro_warning1(message) _Pragma (#message) # define __glibc_macro_warning(message) \ __glibc_macro_warning1 (GCC warning message) #else # 811 "/usr/include/sys/cdefs.h" 3 4 # define __glibc_macro_warning(msg) #endif # 813 "/usr/include/sys/cdefs.h" 3 4 /* Generic selection (ISO C11) is a C-only feature, available in GCC since version 4.9. Previous versions do not provide generic selection, even though they might set __STDC_VERSION__ to 201112L, when in -std=c11 mode. Thus, we must check for !defined __GNUC__ when testing __STDC_VERSION__ for generic selection support. On the other hand, Clang also defines __GNUC__, so a clang-specific check is required to enable the use of generic selection. */ #if 0 /* disabled by -frewrite-includes */ #if !defined __cplusplus \ && (__GNUC_PREREQ (4, 9) \ || __glibc_has_extension (c_generic_selections) \ || (!defined __GNUC__ && defined __STDC_VERSION__ \ && __STDC_VERSION__ >= 201112L)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 826 "/usr/include/sys/cdefs.h" 3 4 # define __HAVE_GENERIC_SELECTION 1 #else # 828 "/usr/include/sys/cdefs.h" 3 4 # define __HAVE_GENERIC_SELECTION 0 #endif # 830 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (10, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 832 "/usr/include/sys/cdefs.h" 3 4 /* Designates a 1-based positional argument ref-index of pointer type that can be used to access size-index elements of the pointed-to array according to access mode, or at least one element when size-index is not provided: access (access-mode, [, ]) */ # define __attr_access(x) __attribute__ ((__access__ x)) /* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may use the access attribute to get object sizes from function definition arguments, so we can't use them on functions we fortify. Drop the access attribute for such functions. */ #if 0 /* disabled by -frewrite-includes */ # if __USE_FORTIFY_LEVEL == 3 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 843 "/usr/include/sys/cdefs.h" 3 4 # define __fortified_attr_access(a, o, s) # else # 845 "/usr/include/sys/cdefs.h" 3 4 # define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) # endif # 847 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (11, 0) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 848 "/usr/include/sys/cdefs.h" 3 4 # define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) # else # 850 "/usr/include/sys/cdefs.h" 3 4 # define __attr_access_none(argno) # endif # 852 "/usr/include/sys/cdefs.h" 3 4 #else # 853 "/usr/include/sys/cdefs.h" 3 4 # define __fortified_attr_access(a, o, s) # define __attr_access(x) # define __attr_access_none(argno) #endif # 857 "/usr/include/sys/cdefs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (11, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 859 "/usr/include/sys/cdefs.h" 3 4 /* Designates dealloc as a function to call to deallocate objects allocated by the declared function. */ # define __attr_dealloc(dealloc, argno) \ __attribute__ ((__malloc__ (dealloc, argno))) # define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) #else # 865 "/usr/include/sys/cdefs.h" 3 4 # define __attr_dealloc(dealloc, argno) # define __attr_dealloc_free #endif # 868 "/usr/include/sys/cdefs.h" 3 4 /* Specify that a function such as setjmp or vfork may return twice. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4, 1) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 872 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) #else # 874 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_returns_twice__ /* Ignore. */ #endif # 876 "/usr/include/sys/cdefs.h" 3 4 /* Mark struct types as aliasable. Restricted to compilers that support forward declarations of structs in the presence of the attribute. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (7, 1) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 881 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_struct_may_alias__ __attribute__ ((__may_alias__)) #else # 883 "/usr/include/sys/cdefs.h" 3 4 # define __attribute_struct_may_alias__ #endif # 885 "/usr/include/sys/cdefs.h" 3 4 #endif /* sys/cdefs.h */ # 887 "/usr/include/sys/cdefs.h" 3 4 #endif /* cdefs.h expanded by -frewrite-includes */ # 512 "/usr/include/features.h" 2 3 4 # endif # 513 "/usr/include/features.h" 3 4 /* If we don't have __REDIRECT, prototypes will be missing if __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */ #if 0 /* disabled by -frewrite-includes */ # if defined __USE_FILE_OFFSET64 && !defined __REDIRECT #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 517 "/usr/include/features.h" 3 4 # define __USE_LARGEFILE 1 # define __USE_LARGEFILE64 1 # endif # 520 "/usr/include/features.h" 3 4 #endif /* !ASSEMBLER */ # 522 "/usr/include/features.h" 3 4 /* Decide whether we can define 'extern inline' functions in headers. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \ && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \ && defined __extern_inline #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 527 "/usr/include/features.h" 3 4 # define __USE_EXTERN_INLINES 1 #endif # 529 "/usr/include/features.h" 3 4 /* This is here only because every header file already includes this one. Get the definitions of all the appropriate `__stub_FUNCTION' symbols. contains `#define __stub_FUNCTION' when FUNCTION is a stub that will always return failure (and set errno to ENOSYS). */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stubs.h expanded by -frewrite-includes */ #include #else /* stubs.h expanded by -frewrite-includes */ # 535 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 /* This file is automatically generated. This file selects the right generated file of `__stub_FUNCTION' macros based on the architecture being compiled for. */ #if 0 /* disabled by -frewrite-includes */ #if !defined __x86_64__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 7 "/usr/include/gnu/stubs.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 7 "/usr/include/gnu/stubs.h" 3 4 # 8 "/usr/include/gnu/stubs.h" 3 4 #endif # 9 "/usr/include/gnu/stubs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __LP64__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 10 "/usr/include/gnu/stubs.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stubs-64.h expanded by -frewrite-includes */ # include #else /* stubs-64.h expanded by -frewrite-includes */ # 10 "/usr/include/gnu/stubs.h" 3 4 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4 /* This file is automatically generated. It defines a symbol `__stub_FUNCTION' for each function in the C library which is a stub, meaning it will fail every time called, usually setting errno to ENOSYS. */ #ifdef _LIBC #error Applications may not define the macro _LIBC #endif # 9 "/usr/include/gnu/stubs-64.h" 3 4 #define __stub___compat_bdflush #define __stub_chflags #define __stub_fchflags #define __stub_gtty #define __stub_revoke #define __stub_setlogin #define __stub_sigreturn #define __stub_stty #endif /* stubs-64.h expanded by -frewrite-includes */ # 11 "/usr/include/gnu/stubs.h" 2 3 4 #endif # 12 "/usr/include/gnu/stubs.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 13 "/usr/include/gnu/stubs.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 13 "/usr/include/gnu/stubs.h" 3 4 # 14 "/usr/include/gnu/stubs.h" 3 4 #endif # 15 "/usr/include/gnu/stubs.h" 3 4 #endif /* stubs.h expanded by -frewrite-includes */ # 536 "/usr/include/features.h" 2 3 4 #endif /* features.h */ # 539 "/usr/include/features.h" 3 4 #endif /* features.h expanded by -frewrite-includes */ # 34 "/usr/include/bits/libc-header-start.h" 2 3 4 /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ macro. */ #undef __GLIBC_USE_LIB_EXT2 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 1 #else # 42 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 0 #endif # 44 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ macro. Most but not all symbols enabled by that macro in TS 18661-1 are enabled unconditionally in C23. In C23, the symbols in Annex F still require a new feature test macro __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 18661-1 are not included in C23 (and thus should depend on __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are enabled). __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 18661-1 not included in C23. __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS 18661-1 that are also included in C23 (with no feature test macro required in C23). __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 that are included in C23 but conditional on __STDC_WANT_IEC_60559_EXT__. (There are currently no features conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 18661-1.) */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # 71 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif # 73 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1 #else # 77 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0 #endif # 79 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_EXT #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 1 #else # 83 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 0 #endif # 85 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-4:2015 defines the __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction functions, the symbols from this TS are enabled unconditionally in C23. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 92 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # 94 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif # 96 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1 #else # 100 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0 #endif # 102 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ #undef __GLIBC_USE_IEC_60559_TYPES_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 #else # 109 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 #endif # 111 "/usr/include/bits/libc-header-start.h" 3 4 #endif /* libc-header-start.h expanded by -frewrite-includes */ # 27 "/usr/include/stdint.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* types.h expanded by -frewrite-includes */ #include #else /* types.h expanded by -frewrite-includes */ # 27 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 /* bits/types.h -- definitions of __*_t types underlying *_t types. Copyright (C) 2002-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * Never include this file directly; use instead. */ #ifndef _BITS_TYPES_H #define _BITS_TYPES_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "/usr/include/bits/types.h" 3 4 # 27 "/usr/include/bits/types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 27 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 28 "/usr/include/bits/types.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* timesize.h expanded by -frewrite-includes */ #include #else /* timesize.h expanded by -frewrite-includes */ # 28 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/timesize.h" 1 3 4 /* Bit size of the time_t type at glibc build time, x86-64 and x32 case. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 19 "/usr/include/bits/timesize.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 20 "/usr/include/bits/timesize.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 22 "/usr/include/bits/timesize.h" 3 4 /* For x32, time is 64-bit even though word size is 32-bit. */ # define __TIMESIZE 64 #else # 25 "/usr/include/bits/timesize.h" 3 4 /* For others, time size is word size. */ # define __TIMESIZE __WORDSIZE #endif # 28 "/usr/include/bits/timesize.h" 3 4 #endif /* timesize.h expanded by -frewrite-includes */ # 29 "/usr/include/bits/types.h" 2 3 4 /* Convenience types. */ typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; /* Fixed-size types, underlying types depend on word size and compiler. */ typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 44 "/usr/include/bits/types.h" 3 4 typedef signed long int __int64_t; typedef unsigned long int __uint64_t; #else # 47 "/usr/include/bits/types.h" 3 4 __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; #endif # 50 "/usr/include/bits/types.h" 3 4 /* Smallest types with at least a given width. */ typedef __int8_t __int_least8_t; typedef __uint8_t __uint_least8_t; typedef __int16_t __int_least16_t; typedef __uint16_t __uint_least16_t; typedef __int32_t __int_least32_t; typedef __uint32_t __uint_least32_t; typedef __int64_t __int_least64_t; typedef __uint64_t __uint_least64_t; /* quad_t is also 64 bits. */ #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 63 "/usr/include/bits/types.h" 3 4 typedef long int __quad_t; typedef unsigned long int __u_quad_t; #else # 66 "/usr/include/bits/types.h" 3 4 __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; #endif # 69 "/usr/include/bits/types.h" 3 4 /* Largest integral types. */ #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 72 "/usr/include/bits/types.h" 3 4 typedef long int __intmax_t; typedef unsigned long int __uintmax_t; #else # 75 "/usr/include/bits/types.h" 3 4 __extension__ typedef long long int __intmax_t; __extension__ typedef unsigned long long int __uintmax_t; #endif # 78 "/usr/include/bits/types.h" 3 4 /* The machine-dependent file defines __*_T_TYPE macros for each of the OS types we define below. The definitions of those macros must use the following macros for underlying types. We define __S_TYPE and __U_TYPE for the signed and unsigned variants of each of the following integer types on this machine. 16 -- "natural" 16-bit type (always short) 32 -- "natural" 32-bit type (always int) 64 -- "natural" 64-bit type (long or long long) LONG32 -- 32-bit type, traditionally long QUAD -- 64-bit type, traditionally long long WORD -- natural type of __WORDSIZE bits (int or long) LONGWORD -- type of __WORDSIZE bits, traditionally long We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the conventional uses of `long' or `long long' type modifiers match the types we define, even when a less-adorned type would be the same size. This matters for (somewhat) portably writing printf/scanf formats for these types, where using the appropriate l or ll format modifiers can make the typedefs and the formats match up across all GNU platforms. If we used `long' when it's 64 bits where `long long' is expected, then the compiler would warn about the formats not matching the argument types, and the programmer changing them to shut up the compiler would break the program's portability. Here we assume what is presently the case in all the GCC configurations we support: long long is always 64 bits, long is always word/address size, and int is always 32 bits. */ #define __S16_TYPE short int #define __U16_TYPE unsigned short int #define __S32_TYPE int #define __U32_TYPE unsigned int #define __SLONGWORD_TYPE long int #define __ULONGWORD_TYPE unsigned long int #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 116 "/usr/include/bits/types.h" 3 4 # define __SQUAD_TYPE __int64_t # define __UQUAD_TYPE __uint64_t # define __SWORD_TYPE int # define __UWORD_TYPE unsigned int # define __SLONG32_TYPE long int # define __ULONG32_TYPE unsigned long int # define __S64_TYPE __int64_t # define __U64_TYPE __uint64_t /* We want __extension__ before typedef's that use nonstandard base types such as `long long' in C89 mode. */ # define __STD_TYPE __extension__ typedef #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 128 "/usr/include/bits/types.h" 3 4 # define __SQUAD_TYPE long int # define __UQUAD_TYPE unsigned long int # define __SWORD_TYPE long int # define __UWORD_TYPE unsigned long int # define __SLONG32_TYPE int # define __ULONG32_TYPE unsigned int # define __S64_TYPE long int # define __U64_TYPE unsigned long int /* No need to mark the typedef with __extension__. */ # define __STD_TYPE typedef #else # 139 "/usr/include/bits/types.h" 3 4 # error #endif # 141 "/usr/include/bits/types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* typesizes.h expanded by -frewrite-includes */ #include /* Defines __*_T_TYPE macros. */ #else /* typesizes.h expanded by -frewrite-includes */ # 141 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 /* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. Copyright (C) 2012-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES_H # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/typesizes.h" 3 4 #ifndef _BITS_TYPESIZES_H #define _BITS_TYPESIZES_H 1 /* See for the meaning of these macros. This file exists so that need not vary across different GNU platforms. */ /* X32 kernel interface is 64-bit. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 31 "/usr/include/bits/typesizes.h" 3 4 # define __SYSCALL_SLONG_TYPE __SQUAD_TYPE # define __SYSCALL_ULONG_TYPE __UQUAD_TYPE #else # 34 "/usr/include/bits/typesizes.h" 3 4 # define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE # define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE #endif # 37 "/usr/include/bits/typesizes.h" 3 4 #define __DEV_T_TYPE __UQUAD_TYPE #define __UID_T_TYPE __U32_TYPE #define __GID_T_TYPE __U32_TYPE #define __INO_T_TYPE __SYSCALL_ULONG_TYPE #define __INO64_T_TYPE __UQUAD_TYPE #define __MODE_T_TYPE __U32_TYPE #ifdef __x86_64__ # define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE # define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE #else # 48 "/usr/include/bits/typesizes.h" 3 4 # define __NLINK_T_TYPE __UWORD_TYPE # define __FSWORD_T_TYPE __SWORD_TYPE #endif # 51 "/usr/include/bits/typesizes.h" 3 4 #define __OFF_T_TYPE __SYSCALL_SLONG_TYPE #define __OFF64_T_TYPE __SQUAD_TYPE #define __PID_T_TYPE __S32_TYPE #define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE #define __RLIM64_T_TYPE __UQUAD_TYPE #define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE #define __BLKCNT64_T_TYPE __SQUAD_TYPE #define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE #define __FSBLKCNT64_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE #define __FSFILCNT64_T_TYPE __UQUAD_TYPE #define __ID_T_TYPE __U32_TYPE #define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE #define __TIME_T_TYPE __SYSCALL_SLONG_TYPE #define __USECONDS_T_TYPE __U32_TYPE #define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE #define __SUSECONDS64_T_TYPE __SQUAD_TYPE #define __DADDR_T_TYPE __S32_TYPE #define __KEY_T_TYPE __S32_TYPE #define __CLOCKID_T_TYPE __S32_TYPE #define __TIMER_T_TYPE void * #define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE #define __FSID_T_TYPE struct { int __val[2]; } #define __SSIZE_T_TYPE __SWORD_TYPE #define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE #ifdef __x86_64__ /* Tell the libc code that off_t and off64_t are actually the same type for all ABI purposes, even if possibly expressed as different base types for C type-checking purposes. */ # define __OFF_T_MATCHES_OFF64_T 1 /* Same for ino_t and ino64_t. */ # define __INO_T_MATCHES_INO64_T 1 /* And for __rlim_t and __rlim64_t. */ # define __RLIM_T_MATCHES_RLIM64_T 1 /* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ # define __STATFS_MATCHES_STATFS64 1 /* And for getitimer, setitimer and rusage */ # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1 #else # 95 "/usr/include/bits/typesizes.h" 3 4 # define __RLIM_T_MATCHES_RLIM64_T 0 # define __STATFS_MATCHES_STATFS64 0 # define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0 #endif # 101 "/usr/include/bits/typesizes.h" 3 4 /* Number of descriptors that can fit in an `fd_set'. */ #define __FD_SETSIZE 1024 #endif /* bits/typesizes.h */ # 107 "/usr/include/bits/typesizes.h" 3 4 #endif /* typesizes.h expanded by -frewrite-includes */ # 142 "/usr/include/bits/types.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time64.h expanded by -frewrite-includes */ #include /* Defines __TIME*_T_TYPE macros. */ #else /* time64.h expanded by -frewrite-includes */ # 142 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/time64.h" 1 3 4 /* bits/time64.h -- underlying types for __time64_t. Generic version. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES_H # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/time64.h" 3 4 #ifndef _BITS_TIME64_H #define _BITS_TIME64_H 1 /* Define __TIME64_T_TYPE so that it is always a 64-bit type. */ #if 0 /* disabled by -frewrite-includes */ #if __TIMESIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 29 "/usr/include/bits/time64.h" 3 4 /* If we already have 64-bit time type then use it. */ # define __TIME64_T_TYPE __TIME_T_TYPE #else # 32 "/usr/include/bits/time64.h" 3 4 /* Define a 64-bit time type alongsize the 32-bit one. */ # define __TIME64_T_TYPE __SQUAD_TYPE #endif # 35 "/usr/include/bits/time64.h" 3 4 #endif /* bits/time64.h */ # 37 "/usr/include/bits/time64.h" 3 4 #endif /* time64.h expanded by -frewrite-includes */ # 143 "/usr/include/bits/types.h" 2 3 4 __STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ __STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */ __STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */ __STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */ __STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/ __STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */ __STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */ __STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */ __STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */ __STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */ __STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ __STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */ __STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */ __STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */ __STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */ __STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */ __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */ __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */ __STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t; __STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */ __STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */ /* Clock ID used in clock and timer functions. */ __STD_TYPE __CLOCKID_T_TYPE __clockid_t; /* Timer ID returned by `timer_create'. */ __STD_TYPE __TIMER_T_TYPE __timer_t; /* Type to represent block size. */ __STD_TYPE __BLKSIZE_T_TYPE __blksize_t; /* Types from the Large File Support interface. */ /* Type to count number of disk blocks. */ __STD_TYPE __BLKCNT_T_TYPE __blkcnt_t; __STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t; /* Type to count file system blocks. */ __STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t; __STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t; /* Type to count file system nodes. */ __STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t; __STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t; /* Type of miscellaneous file system fields. */ __STD_TYPE __FSWORD_T_TYPE __fsword_t; __STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */ /* Signed long type used in system calls. */ __STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t; /* Unsigned long type used in system calls. */ __STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t; /* These few don't really vary by system, they always correspond to one of the other defined types. */ typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */ typedef char *__caddr_t; /* Duplicates info from stdint.h but this is used in unistd.h. */ __STD_TYPE __SWORD_TYPE __intptr_t; /* Duplicate info from sys/socket.h. */ __STD_TYPE __U32_TYPE __socklen_t; /* C99: An integer type that can be accessed as an atomic entity, even in the presence of asynchronous interrupts. It is not currently necessary for this to be machine-specific. */ typedef int __sig_atomic_t; /* Seconds since the Epoch, visible to user code when time_t is too narrow only for consistency with the old way of widening too-narrow types. User code should never use __time64_t. */ #if 0 /* disabled by -frewrite-includes */ #if __TIMESIZE == 64 && defined __LIBC #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 221 "/usr/include/bits/types.h" 3 4 # define __time64_t __time_t #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __TIMESIZE != 64 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/types.h" 3 4 __STD_TYPE __TIME64_T_TYPE __time64_t; #endif # 225 "/usr/include/bits/types.h" 3 4 #undef __STD_TYPE #endif /* bits/types.h */ # 229 "/usr/include/bits/types.h" 3 4 #endif /* types.h expanded by -frewrite-includes */ # 28 "/usr/include/stdint.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wchar.h expanded by -frewrite-includes */ #include #else /* wchar.h expanded by -frewrite-includes */ # 28 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 /* wchar_t type related definitions. Copyright (C) 2000-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_WCHAR_H #define _BITS_WCHAR_H 1 /* The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__ are not defined, give the right value and type as long as both int and wchar_t are 32-bit types. Adding L'\0' to a constant value ensures that the type is correct; it is necessary to use (L'\0' + 0) rather than just L'\0' so that the type in C++ is the promoted version of wchar_t rather than the distinct wchar_t type itself. Because wchar_t in preprocessor #if expressions is treated as intmax_t or uintmax_t, the expression (L'\0' - 1) would have the wrong value for WCHAR_MAX in such expressions and so cannot be used to define __WCHAR_MAX in the unsigned case. */ #ifdef __WCHAR_MAX__ # define __WCHAR_MAX __WCHAR_MAX__ #if 0 /* disabled by -frewrite-includes */ #if 0 #elif L'\0' - 1 > 0 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 36 "/usr/include/bits/wchar.h" 3 4 # define __WCHAR_MAX (0xffffffffu + L'\0') #else # 38 "/usr/include/bits/wchar.h" 3 4 # define __WCHAR_MAX (0x7fffffff + L'\0') #endif # 40 "/usr/include/bits/wchar.h" 3 4 #ifdef __WCHAR_MIN__ # define __WCHAR_MIN __WCHAR_MIN__ #if 0 /* disabled by -frewrite-includes */ #if 0 #elif L'\0' - 1 > 0 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 44 "/usr/include/bits/wchar.h" 3 4 # define __WCHAR_MIN (L'\0' + 0) #else # 46 "/usr/include/bits/wchar.h" 3 4 # define __WCHAR_MIN (-__WCHAR_MAX - 1) #endif # 48 "/usr/include/bits/wchar.h" 3 4 #endif /* bits/wchar.h */ # 50 "/usr/include/bits/wchar.h" 3 4 #endif /* wchar.h expanded by -frewrite-includes */ # 29 "/usr/include/stdint.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 29 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 30 "/usr/include/stdint.h" 2 3 4 /* Exact integral types. */ /* Signed. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint-intn.h expanded by -frewrite-includes */ #include #else /* stdint-intn.h expanded by -frewrite-includes */ # 34 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/stdint-intn.h" 1 3 4 /* Define intN_t types. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_STDINT_INTN_H #define _BITS_STDINT_INTN_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "/usr/include/bits/stdint-intn.h" 3 4 # 23 "/usr/include/bits/stdint-intn.h" 3 4 typedef __int8_t int8_t; typedef __int16_t int16_t; typedef __int32_t int32_t; typedef __int64_t int64_t; #endif /* bits/stdint-intn.h */ # 30 "/usr/include/bits/stdint-intn.h" 3 4 #endif /* stdint-intn.h expanded by -frewrite-includes */ # 35 "/usr/include/stdint.h" 2 3 4 /* Unsigned. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint-uintn.h expanded by -frewrite-includes */ #include #else /* stdint-uintn.h expanded by -frewrite-includes */ # 37 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/stdint-uintn.h" 1 3 4 /* Define uintN_t types. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_STDINT_UINTN_H #define _BITS_STDINT_UINTN_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "/usr/include/bits/stdint-uintn.h" 3 4 # 23 "/usr/include/bits/stdint-uintn.h" 3 4 typedef __uint8_t uint8_t; typedef __uint16_t uint16_t; typedef __uint32_t uint32_t; typedef __uint64_t uint64_t; #endif /* bits/stdint-uintn.h */ # 30 "/usr/include/bits/stdint-uintn.h" 3 4 #endif /* stdint-uintn.h expanded by -frewrite-includes */ # 38 "/usr/include/stdint.h" 2 3 4 /* Small types. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdint-least.h expanded by -frewrite-includes */ #include #else /* stdint-least.h expanded by -frewrite-includes */ # 41 "/usr/include/stdint.h" 3 4 # 1 "/usr/include/bits/stdint-least.h" 1 3 4 /* Define int_leastN_t and uint_leastN types. Copyright (C) 2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_STDINT_LEAST_H #define _BITS_STDINT_LEAST_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "/usr/include/bits/stdint-least.h" 3 4 # 23 "/usr/include/bits/stdint-least.h" 3 4 /* Signed. */ typedef __int_least8_t int_least8_t; typedef __int_least16_t int_least16_t; typedef __int_least32_t int_least32_t; typedef __int_least64_t int_least64_t; /* Unsigned. */ typedef __uint_least8_t uint_least8_t; typedef __uint_least16_t uint_least16_t; typedef __uint_least32_t uint_least32_t; typedef __uint_least64_t uint_least64_t; #endif /* bits/stdint-least.h */ # 37 "/usr/include/bits/stdint-least.h" 3 4 #endif /* stdint-least.h expanded by -frewrite-includes */ # 42 "/usr/include/stdint.h" 2 3 4 /* Fast types. */ /* Signed. */ typedef signed char int_fast8_t; #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 49 "/usr/include/stdint.h" 3 4 typedef long int int_fast16_t; typedef long int int_fast32_t; typedef long int int_fast64_t; #else # 53 "/usr/include/stdint.h" 3 4 typedef int int_fast16_t; typedef int int_fast32_t; __extension__ typedef long long int int_fast64_t; #endif # 58 "/usr/include/stdint.h" 3 4 /* Unsigned. */ typedef unsigned char uint_fast8_t; #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 62 "/usr/include/stdint.h" 3 4 typedef unsigned long int uint_fast16_t; typedef unsigned long int uint_fast32_t; typedef unsigned long int uint_fast64_t; #else # 66 "/usr/include/stdint.h" 3 4 typedef unsigned int uint_fast16_t; typedef unsigned int uint_fast32_t; __extension__ typedef unsigned long long int uint_fast64_t; #endif # 71 "/usr/include/stdint.h" 3 4 /* Types for `void *' pointers. */ #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/stdint.h" 3 4 # ifndef __intptr_t_defined typedef long int intptr_t; # define __intptr_t_defined # endif # 79 "/usr/include/stdint.h" 3 4 typedef unsigned long int uintptr_t; #else # 81 "/usr/include/stdint.h" 3 4 # ifndef __intptr_t_defined typedef int intptr_t; # define __intptr_t_defined # endif # 85 "/usr/include/stdint.h" 3 4 typedef unsigned int uintptr_t; #endif # 87 "/usr/include/stdint.h" 3 4 /* Largest integral types. */ typedef __intmax_t intmax_t; typedef __uintmax_t uintmax_t; #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 95 "/usr/include/stdint.h" 3 4 # define __INT64_C(c) c ## L # define __UINT64_C(c) c ## UL # else # 98 "/usr/include/stdint.h" 3 4 # define __INT64_C(c) c ## LL # define __UINT64_C(c) c ## ULL # endif # 101 "/usr/include/stdint.h" 3 4 /* Limits of integral types. */ /* Minimum of signed integral types. */ # define INT8_MIN (-128) # define INT16_MIN (-32767-1) # define INT32_MIN (-2147483647-1) # define INT64_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum of signed integral types. */ # define INT8_MAX (127) # define INT16_MAX (32767) # define INT32_MAX (2147483647) # define INT64_MAX (__INT64_C(9223372036854775807)) /* Maximum of unsigned integral types. */ # define UINT8_MAX (255) # define UINT16_MAX (65535) # define UINT32_MAX (4294967295U) # define UINT64_MAX (__UINT64_C(18446744073709551615)) /* Minimum of signed integral types having a minimum size. */ # define INT_LEAST8_MIN (-128) # define INT_LEAST16_MIN (-32767-1) # define INT_LEAST32_MIN (-2147483647-1) # define INT_LEAST64_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum of signed integral types having a minimum size. */ # define INT_LEAST8_MAX (127) # define INT_LEAST16_MAX (32767) # define INT_LEAST32_MAX (2147483647) # define INT_LEAST64_MAX (__INT64_C(9223372036854775807)) /* Maximum of unsigned integral types having a minimum size. */ # define UINT_LEAST8_MAX (255) # define UINT_LEAST16_MAX (65535) # define UINT_LEAST32_MAX (4294967295U) # define UINT_LEAST64_MAX (__UINT64_C(18446744073709551615)) /* Minimum of fast signed integral types having a minimum size. */ # define INT_FAST8_MIN (-128) #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 143 "/usr/include/stdint.h" 3 4 # define INT_FAST16_MIN (-9223372036854775807L-1) # define INT_FAST32_MIN (-9223372036854775807L-1) # else # 146 "/usr/include/stdint.h" 3 4 # define INT_FAST16_MIN (-2147483647-1) # define INT_FAST32_MIN (-2147483647-1) # endif # 149 "/usr/include/stdint.h" 3 4 # define INT_FAST64_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum of fast signed integral types having a minimum size. */ # define INT_FAST8_MAX (127) #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 153 "/usr/include/stdint.h" 3 4 # define INT_FAST16_MAX (9223372036854775807L) # define INT_FAST32_MAX (9223372036854775807L) # else # 156 "/usr/include/stdint.h" 3 4 # define INT_FAST16_MAX (2147483647) # define INT_FAST32_MAX (2147483647) # endif # 159 "/usr/include/stdint.h" 3 4 # define INT_FAST64_MAX (__INT64_C(9223372036854775807)) /* Maximum of fast unsigned integral types having a minimum size. */ # define UINT_FAST8_MAX (255) #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 164 "/usr/include/stdint.h" 3 4 # define UINT_FAST16_MAX (18446744073709551615UL) # define UINT_FAST32_MAX (18446744073709551615UL) # else # 167 "/usr/include/stdint.h" 3 4 # define UINT_FAST16_MAX (4294967295U) # define UINT_FAST32_MAX (4294967295U) # endif # 170 "/usr/include/stdint.h" 3 4 # define UINT_FAST64_MAX (__UINT64_C(18446744073709551615)) /* Values to test for integral types holding `void *' pointer. */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 175 "/usr/include/stdint.h" 3 4 # define INTPTR_MIN (-9223372036854775807L-1) # define INTPTR_MAX (9223372036854775807L) # define UINTPTR_MAX (18446744073709551615UL) # else # 179 "/usr/include/stdint.h" 3 4 # define INTPTR_MIN (-2147483647-1) # define INTPTR_MAX (2147483647) # define UINTPTR_MAX (4294967295U) # endif # 183 "/usr/include/stdint.h" 3 4 /* Minimum for largest signed integral type. */ # define INTMAX_MIN (-__INT64_C(9223372036854775807)-1) /* Maximum for largest signed integral type. */ # define INTMAX_MAX (__INT64_C(9223372036854775807)) /* Maximum for largest unsigned integral type. */ # define UINTMAX_MAX (__UINT64_C(18446744073709551615)) /* Limits of other integer types. */ /* Limits of `ptrdiff_t' type. */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 198 "/usr/include/stdint.h" 3 4 # define PTRDIFF_MIN (-9223372036854775807L-1) # define PTRDIFF_MAX (9223372036854775807L) # else # 201 "/usr/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE32_PTRDIFF_LONG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 202 "/usr/include/stdint.h" 3 4 # define PTRDIFF_MIN (-2147483647L-1) # define PTRDIFF_MAX (2147483647L) # else # 205 "/usr/include/stdint.h" 3 4 # define PTRDIFF_MIN (-2147483647-1) # define PTRDIFF_MAX (2147483647) # endif # 208 "/usr/include/stdint.h" 3 4 # endif # 209 "/usr/include/stdint.h" 3 4 /* Limits of `sig_atomic_t'. */ # define SIG_ATOMIC_MIN (-2147483647-1) # define SIG_ATOMIC_MAX (2147483647) /* Limit of `size_t' type. */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 216 "/usr/include/stdint.h" 3 4 # define SIZE_MAX (18446744073709551615UL) # else # 218 "/usr/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE32_SIZE_ULONG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 219 "/usr/include/stdint.h" 3 4 # define SIZE_MAX (4294967295UL) # else # 221 "/usr/include/stdint.h" 3 4 # define SIZE_MAX (4294967295U) # endif # 223 "/usr/include/stdint.h" 3 4 # endif # 224 "/usr/include/stdint.h" 3 4 /* Limits of `wchar_t'. */ # ifndef WCHAR_MIN /* These constants might also be defined in . */ # define WCHAR_MIN __WCHAR_MIN # define WCHAR_MAX __WCHAR_MAX # endif # 231 "/usr/include/stdint.h" 3 4 /* Limits of `wint_t'. */ # define WINT_MIN (0u) # define WINT_MAX (4294967295u) /* Signed. */ # define INT8_C(c) c # define INT16_C(c) c # define INT32_C(c) c #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 241 "/usr/include/stdint.h" 3 4 # define INT64_C(c) c ## L # else # 243 "/usr/include/stdint.h" 3 4 # define INT64_C(c) c ## LL # endif # 245 "/usr/include/stdint.h" 3 4 /* Unsigned. */ # define UINT8_C(c) c # define UINT16_C(c) c # define UINT32_C(c) c ## U #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 251 "/usr/include/stdint.h" 3 4 # define UINT64_C(c) c ## UL # else # 253 "/usr/include/stdint.h" 3 4 # define UINT64_C(c) c ## ULL # endif # 255 "/usr/include/stdint.h" 3 4 /* Maximal type. */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 258 "/usr/include/stdint.h" 3 4 # define INTMAX_C(c) c ## L # define UINTMAX_C(c) c ## UL # else # 261 "/usr/include/stdint.h" 3 4 # define INTMAX_C(c) c ## LL # define UINTMAX_C(c) c ## ULL # endif # 264 "/usr/include/stdint.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 266 "/usr/include/stdint.h" 3 4 # define INT8_WIDTH 8 # define UINT8_WIDTH 8 # define INT16_WIDTH 16 # define UINT16_WIDTH 16 # define INT32_WIDTH 32 # define UINT32_WIDTH 32 # define INT64_WIDTH 64 # define UINT64_WIDTH 64 # define INT_LEAST8_WIDTH 8 # define UINT_LEAST8_WIDTH 8 # define INT_LEAST16_WIDTH 16 # define UINT_LEAST16_WIDTH 16 # define INT_LEAST32_WIDTH 32 # define UINT_LEAST32_WIDTH 32 # define INT_LEAST64_WIDTH 64 # define UINT_LEAST64_WIDTH 64 # define INT_FAST8_WIDTH 8 # define UINT_FAST8_WIDTH 8 # define INT_FAST16_WIDTH __WORDSIZE # define UINT_FAST16_WIDTH __WORDSIZE # define INT_FAST32_WIDTH __WORDSIZE # define UINT_FAST32_WIDTH __WORDSIZE # define INT_FAST64_WIDTH 64 # define UINT_FAST64_WIDTH 64 # define INTPTR_WIDTH __WORDSIZE # define UINTPTR_WIDTH __WORDSIZE # define INTMAX_WIDTH 64 # define UINTMAX_WIDTH 64 # define PTRDIFF_WIDTH __WORDSIZE # define SIG_ATOMIC_WIDTH 32 # define SIZE_WIDTH __WORDSIZE # define WCHAR_WIDTH 32 # define WINT_WIDTH 32 #endif # 307 "/usr/include/stdint.h" 3 4 #endif /* stdint.h */ # 309 "/usr/include/stdint.h" 3 4 #endif /* stdint.h expanded by -frewrite-includes */ # 57 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 2 3 # ifdef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG # undef __STDC_LIMIT_MACROS # undef __STDC_LIMIT_MACROS_DEFINED_BY_CLANG # endif # 62 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # ifdef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG # undef __STDC_CONSTANT_MACROS # undef __STDC_CONSTANT_MACROS_DEFINED_BY_CLANG # endif # 66 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #else # 68 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* C99 7.18.1.1 Exact-width integer types. * C99 7.18.1.2 Minimum-width integer types. * C99 7.18.1.3 Fastest minimum-width integer types. * * The standard requires that exact-width type be defined for 8-, 16-, 32-, and * 64-bit types if they are implemented. Other exact width types are optional. * This implementation defines an exact-width types for every integer width * that is represented in the standard integer types. * * The standard also requires minimum-width types be defined for 8-, 16-, 32-, * and 64-bit widths regardless of whether there are corresponding exact-width * types. * * To accommodate targets that are missing types that are exactly 8, 16, 32, or * 64 bits wide, this implementation takes an approach of cascading * redefinitions, redefining __int_leastN_t to successively smaller exact-width * types. It is therefore important that the types are defined in order of * descending widths. * * We currently assume that the minimum-width types and the fastest * minimum-width types are the same. This is allowed by the standard, but is * suboptimal. * * In violation of the standard, some targets do not implement a type that is * wide enough to represent all of the required widths (8-, 16-, 32-, 64-bit). * To accommodate these targets, a required minimum-width type is only * defined if there exists an exact-width type of equal or greater width. */ #ifdef __INT64_TYPE__ # ifndef __int8_t_defined /* glibc sys/types.h also defines int64_t*/ typedef __INT64_TYPE__ int64_t; # endif /* __int8_t_defined */ # 102 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 typedef __UINT64_TYPE__ uint64_t; # undef __int_least64_t # define __int_least64_t int64_t # undef __uint_least64_t # define __uint_least64_t uint64_t # undef __int_least32_t # define __int_least32_t int64_t # undef __uint_least32_t # define __uint_least32_t uint64_t # undef __int_least16_t # define __int_least16_t int64_t # undef __uint_least16_t # define __uint_least16_t uint64_t # undef __int_least8_t # define __int_least8_t int64_t # undef __uint_least8_t # define __uint_least8_t uint64_t #endif /* __INT64_TYPE__ */ # 120 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least64_t typedef __int_least64_t int_least64_t; typedef __uint_least64_t uint_least64_t; typedef __int_least64_t int_fast64_t; typedef __uint_least64_t uint_fast64_t; #endif /* __int_least64_t */ # 127 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT56_TYPE__ typedef __INT56_TYPE__ int56_t; typedef __UINT56_TYPE__ uint56_t; typedef int56_t int_least56_t; typedef uint56_t uint_least56_t; typedef int56_t int_fast56_t; typedef uint56_t uint_fast56_t; # undef __int_least32_t # define __int_least32_t int56_t # undef __uint_least32_t # define __uint_least32_t uint56_t # undef __int_least16_t # define __int_least16_t int56_t # undef __uint_least16_t # define __uint_least16_t uint56_t # undef __int_least8_t # define __int_least8_t int56_t # undef __uint_least8_t # define __uint_least8_t uint56_t #endif /* __INT56_TYPE__ */ # 148 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT48_TYPE__ typedef __INT48_TYPE__ int48_t; typedef __UINT48_TYPE__ uint48_t; typedef int48_t int_least48_t; typedef uint48_t uint_least48_t; typedef int48_t int_fast48_t; typedef uint48_t uint_fast48_t; # undef __int_least32_t # define __int_least32_t int48_t # undef __uint_least32_t # define __uint_least32_t uint48_t # undef __int_least16_t # define __int_least16_t int48_t # undef __uint_least16_t # define __uint_least16_t uint48_t # undef __int_least8_t # define __int_least8_t int48_t # undef __uint_least8_t # define __uint_least8_t uint48_t #endif /* __INT48_TYPE__ */ # 170 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT40_TYPE__ typedef __INT40_TYPE__ int40_t; typedef __UINT40_TYPE__ uint40_t; typedef int40_t int_least40_t; typedef uint40_t uint_least40_t; typedef int40_t int_fast40_t; typedef uint40_t uint_fast40_t; # undef __int_least32_t # define __int_least32_t int40_t # undef __uint_least32_t # define __uint_least32_t uint40_t # undef __int_least16_t # define __int_least16_t int40_t # undef __uint_least16_t # define __uint_least16_t uint40_t # undef __int_least8_t # define __int_least8_t int40_t # undef __uint_least8_t # define __uint_least8_t uint40_t #endif /* __INT40_TYPE__ */ # 192 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT32_TYPE__ # ifndef __int8_t_defined /* glibc sys/types.h also defines int32_t*/ typedef __INT32_TYPE__ int32_t; # endif /* __int8_t_defined */ # 199 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # ifndef __uint32_t_defined /* more glibc compatibility */ # define __uint32_t_defined typedef __UINT32_TYPE__ uint32_t; # endif /* __uint32_t_defined */ # 204 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # undef __int_least32_t # define __int_least32_t int32_t # undef __uint_least32_t # define __uint_least32_t uint32_t # undef __int_least16_t # define __int_least16_t int32_t # undef __uint_least16_t # define __uint_least16_t uint32_t # undef __int_least8_t # define __int_least8_t int32_t # undef __uint_least8_t # define __uint_least8_t uint32_t #endif /* __INT32_TYPE__ */ # 218 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least32_t typedef __int_least32_t int_least32_t; typedef __uint_least32_t uint_least32_t; typedef __int_least32_t int_fast32_t; typedef __uint_least32_t uint_fast32_t; #endif /* __int_least32_t */ # 225 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT24_TYPE__ typedef __INT24_TYPE__ int24_t; typedef __UINT24_TYPE__ uint24_t; typedef int24_t int_least24_t; typedef uint24_t uint_least24_t; typedef int24_t int_fast24_t; typedef uint24_t uint_fast24_t; # undef __int_least16_t # define __int_least16_t int24_t # undef __uint_least16_t # define __uint_least16_t uint24_t # undef __int_least8_t # define __int_least8_t int24_t # undef __uint_least8_t # define __uint_least8_t uint24_t #endif /* __INT24_TYPE__ */ # 242 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT16_TYPE__ #ifndef __int8_t_defined /* glibc sys/types.h also defines int16_t*/ typedef __INT16_TYPE__ int16_t; #endif /* __int8_t_defined */ # 247 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 typedef __UINT16_TYPE__ uint16_t; # undef __int_least16_t # define __int_least16_t int16_t # undef __uint_least16_t # define __uint_least16_t uint16_t # undef __int_least8_t # define __int_least8_t int16_t # undef __uint_least8_t # define __uint_least8_t uint16_t #endif /* __INT16_TYPE__ */ # 257 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least16_t typedef __int_least16_t int_least16_t; typedef __uint_least16_t uint_least16_t; typedef __int_least16_t int_fast16_t; typedef __uint_least16_t uint_fast16_t; #endif /* __int_least16_t */ # 264 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT8_TYPE__ #ifndef __int8_t_defined /* glibc sys/types.h also defines int8_t*/ typedef __INT8_TYPE__ int8_t; #endif /* __int8_t_defined */ # 270 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 typedef __UINT8_TYPE__ uint8_t; # undef __int_least8_t # define __int_least8_t int8_t # undef __uint_least8_t # define __uint_least8_t uint8_t #endif /* __INT8_TYPE__ */ # 276 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least8_t typedef __int_least8_t int_least8_t; typedef __uint_least8_t uint_least8_t; typedef __int_least8_t int_fast8_t; typedef __uint_least8_t uint_fast8_t; #endif /* __int_least8_t */ # 283 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* prevent glibc sys/types.h from defining conflicting types */ #ifndef __int8_t_defined # define __int8_t_defined #endif /* __int8_t_defined */ # 288 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* C99 7.18.1.4 Integer types capable of holding object pointers. */ #define __stdint_join3(a,b,c) a ## b ## c #ifndef _INTPTR_T #ifndef __intptr_t_defined typedef __INTPTR_TYPE__ intptr_t; #define __intptr_t_defined #define _INTPTR_T #endif # 299 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif # 300 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifndef _UINTPTR_T typedef __UINTPTR_TYPE__ uintptr_t; #define _UINTPTR_T #endif # 305 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* C99 7.18.1.5 Greatest-width integer types. */ typedef __INTMAX_TYPE__ intmax_t; typedef __UINTMAX_TYPE__ uintmax_t; /* C99 7.18.4 Macros for minimum-width integer constants. * * The standard requires that integer constant macros be defined for all the * minimum-width types defined above. As 8-, 16-, 32-, and 64-bit minimum-width * types are required, the corresponding integer constant macros are defined * here. This implementation also defines minimum-width types for every other * integer width that the target implements, so corresponding macros are * defined below, too. * * These macros are defined using the same successive-shrinking approach as * the type definitions above. It is likewise important that macros are defined * in order of decending width. * * Note that C++ should not check __STDC_CONSTANT_MACROS here, contrary to the * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). */ #define __int_c_join(a, b) a ## b #define __int_c(v, suffix) __int_c_join(v, suffix) #define __uint_c(v, suffix) __int_c_join(v##U, suffix) #ifdef __INT64_TYPE__ # undef __int64_c_suffix # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT64_C_SUFFIX__ # define __int64_c_suffix __INT64_C_SUFFIX__ # define __int32_c_suffix __INT64_C_SUFFIX__ # define __int16_c_suffix __INT64_C_SUFFIX__ # define __int8_c_suffix __INT64_C_SUFFIX__ # endif /* __INT64_C_SUFFIX__ */ # 344 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT64_TYPE__ */ # 345 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least64_t # ifdef __int64_c_suffix # define INT64_C(v) __int_c(v, __int64_c_suffix) # define UINT64_C(v) __uint_c(v, __int64_c_suffix) # else # 351 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT64_C(v) v # define UINT64_C(v) v ## U # endif /* __int64_c_suffix */ # 354 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __int_least64_t */ # 355 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT56_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT56_C_SUFFIX__ # define INT56_C(v) __int_c(v, __INT56_C_SUFFIX__) # define UINT56_C(v) __uint_c(v, __INT56_C_SUFFIX__) # define __int32_c_suffix __INT56_C_SUFFIX__ # define __int16_c_suffix __INT56_C_SUFFIX__ # define __int8_c_suffix __INT56_C_SUFFIX__ # else # 368 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT56_C(v) v # define UINT56_C(v) v ## U # endif /* __INT56_C_SUFFIX__ */ # 371 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT56_TYPE__ */ # 372 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT48_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT48_C_SUFFIX__ # define INT48_C(v) __int_c(v, __INT48_C_SUFFIX__) # define UINT48_C(v) __uint_c(v, __INT48_C_SUFFIX__) # define __int32_c_suffix __INT48_C_SUFFIX__ # define __int16_c_suffix __INT48_C_SUFFIX__ # define __int8_c_suffix __INT48_C_SUFFIX__ # else # 385 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT48_C(v) v # define UINT48_C(v) v ## U # endif /* __INT48_C_SUFFIX__ */ # 388 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT48_TYPE__ */ # 389 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT40_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT40_C_SUFFIX__ # define INT40_C(v) __int_c(v, __INT40_C_SUFFIX__) # define UINT40_C(v) __uint_c(v, __INT40_C_SUFFIX__) # define __int32_c_suffix __INT40_C_SUFFIX__ # define __int16_c_suffix __INT40_C_SUFFIX__ # define __int8_c_suffix __INT40_C_SUFFIX__ # else # 402 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT40_C(v) v # define UINT40_C(v) v ## U # endif /* __INT40_C_SUFFIX__ */ # 405 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT40_TYPE__ */ # 406 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT32_TYPE__ # undef __int32_c_suffix # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT32_C_SUFFIX__ # define __int32_c_suffix __INT32_C_SUFFIX__ # define __int16_c_suffix __INT32_C_SUFFIX__ # define __int8_c_suffix __INT32_C_SUFFIX__ # endif /* __INT32_C_SUFFIX__ */ # 417 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT32_TYPE__ */ # 418 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least32_t # ifdef __int32_c_suffix # define INT32_C(v) __int_c(v, __int32_c_suffix) # define UINT32_C(v) __uint_c(v, __int32_c_suffix) # else # 424 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT32_C(v) v # define UINT32_C(v) v ## U # endif /* __int32_c_suffix */ # 427 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __int_least32_t */ # 428 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT24_TYPE__ # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT24_C_SUFFIX__ # define INT24_C(v) __int_c(v, __INT24_C_SUFFIX__) # define UINT24_C(v) __uint_c(v, __INT24_C_SUFFIX__) # define __int16_c_suffix __INT24_C_SUFFIX__ # define __int8_c_suffix __INT24_C_SUFFIX__ # else # 439 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT24_C(v) v # define UINT24_C(v) v ## U # endif /* __INT24_C_SUFFIX__ */ # 442 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT24_TYPE__ */ # 443 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT16_TYPE__ # undef __int16_c_suffix # undef __int8_c_suffix # ifdef __INT16_C_SUFFIX__ # define __int16_c_suffix __INT16_C_SUFFIX__ # define __int8_c_suffix __INT16_C_SUFFIX__ # endif /* __INT16_C_SUFFIX__ */ # 452 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT16_TYPE__ */ # 453 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least16_t # ifdef __int16_c_suffix # define INT16_C(v) __int_c(v, __int16_c_suffix) # define UINT16_C(v) __uint_c(v, __int16_c_suffix) # else # 459 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT16_C(v) v # define UINT16_C(v) v ## U # endif /* __int16_c_suffix */ # 462 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __int_least16_t */ # 463 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT8_TYPE__ # undef __int8_c_suffix # ifdef __INT8_C_SUFFIX__ # define __int8_c_suffix __INT8_C_SUFFIX__ # endif /* __INT8_C_SUFFIX__ */ # 470 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT8_TYPE__ */ # 471 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __int_least8_t # ifdef __int8_c_suffix # define INT8_C(v) __int_c(v, __int8_c_suffix) # define UINT8_C(v) __uint_c(v, __int8_c_suffix) # else # 477 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define INT8_C(v) v # define UINT8_C(v) v ## U # endif /* __int8_c_suffix */ # 480 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __int_least8_t */ # 481 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* C99 7.18.2.1 Limits of exact-width integer types. * C99 7.18.2.2 Limits of minimum-width integer types. * C99 7.18.2.3 Limits of fastest minimum-width integer types. * * The presence of limit macros are completely optional in C99. This * implementation defines limits for all of the types (exact- and * minimum-width) that it defines above, using the limits of the minimum-width * type for any types that do not have exact-width representations. * * As in the type definitions, this section takes an approach of * successive-shrinking to determine which limits to use for the standard (8, * 16, 32, 64) bit widths when they don't have exact representations. It is * therefore important that the definitions be kept in order of decending * widths. * * Note that C++ should not check __STDC_LIMIT_MACROS here, contrary to the * claims of the C standard (see C++ 18.3.1p2, [cstdint.syn]). */ #ifdef __INT64_TYPE__ # define INT64_MAX INT64_C( 9223372036854775807) # define INT64_MIN (-INT64_C( 9223372036854775807)-1) # define UINT64_MAX UINT64_C(18446744073709551615) #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 508 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT64_WIDTH 64 # define INT64_WIDTH UINT64_WIDTH # define __UINT_LEAST64_WIDTH UINT64_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT64_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT64_WIDTH # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT64_MAX #endif /* __STDC_VERSION__ */ # 519 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define __INT_LEAST64_MIN INT64_MIN # define __INT_LEAST64_MAX INT64_MAX # define __UINT_LEAST64_MAX UINT64_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT64_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT64_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT64_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT64_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT64_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT64_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT64_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT64_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT64_MAX #endif /* __INT64_TYPE__ */ # 542 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT_LEAST64_MIN # define INT_LEAST64_MIN __INT_LEAST64_MIN # define INT_LEAST64_MAX __INT_LEAST64_MAX # define UINT_LEAST64_MAX __UINT_LEAST64_MAX # define INT_FAST64_MIN __INT_LEAST64_MIN # define INT_FAST64_MAX __INT_LEAST64_MAX # define UINT_FAST64_MAX __UINT_LEAST64_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 552 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT_LEAST64_WIDTH __UINT_LEAST64_WIDTH # define INT_LEAST64_WIDTH UINT_LEAST64_WIDTH # define UINT_FAST64_WIDTH __UINT_LEAST64_WIDTH # define INT_FAST64_WIDTH UINT_FAST64_WIDTH #endif /* __STDC_VERSION__ */ # 557 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT_LEAST64_MIN */ # 558 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT56_TYPE__ # define INT56_MAX INT56_C(36028797018963967) # define INT56_MIN (-INT56_C(36028797018963967)-1) # define UINT56_MAX UINT56_C(72057594037927935) # define INT_LEAST56_MIN INT56_MIN # define INT_LEAST56_MAX INT56_MAX # define UINT_LEAST56_MAX UINT56_MAX # define INT_FAST56_MIN INT56_MIN # define INT_FAST56_MAX INT56_MAX # define UINT_FAST56_MAX UINT56_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT56_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT56_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT56_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT56_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT56_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT56_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT56_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT56_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT56_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 591 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT56_WIDTH 56 # define INT56_WIDTH UINT56_WIDTH # define UINT_LEAST56_WIDTH UINT56_WIDTH # define INT_LEAST56_WIDTH UINT_LEAST56_WIDTH # define UINT_FAST56_WIDTH UINT56_WIDTH # define INT_FAST56_WIDTH UINT_FAST56_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT56_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT56_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT56_WIDTH #endif /* __STDC_VERSION__ */ # 604 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT56_TYPE__ */ # 605 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT48_TYPE__ # define INT48_MAX INT48_C(140737488355327) # define INT48_MIN (-INT48_C(140737488355327)-1) # define UINT48_MAX UINT48_C(281474976710655) # define INT_LEAST48_MIN INT48_MIN # define INT_LEAST48_MAX INT48_MAX # define UINT_LEAST48_MAX UINT48_MAX # define INT_FAST48_MIN INT48_MIN # define INT_FAST48_MAX INT48_MAX # define UINT_FAST48_MAX UINT48_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT48_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT48_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT48_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT48_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT48_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT48_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT48_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT48_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT48_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 638 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #define UINT48_WIDTH 48 #define INT48_WIDTH UINT48_WIDTH #define UINT_LEAST48_WIDTH UINT48_WIDTH #define INT_LEAST48_WIDTH UINT_LEAST48_WIDTH #define UINT_FAST48_WIDTH UINT48_WIDTH #define INT_FAST48_WIDTH UINT_FAST48_WIDTH #undef __UINT_LEAST32_WIDTH #define __UINT_LEAST32_WIDTH UINT48_WIDTH # undef __UINT_LEAST16_WIDTH #define __UINT_LEAST16_WIDTH UINT48_WIDTH # undef __UINT_LEAST8_WIDTH #define __UINT_LEAST8_WIDTH UINT48_WIDTH #endif /* __STDC_VERSION__ */ # 651 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT48_TYPE__ */ # 652 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT40_TYPE__ # define INT40_MAX INT40_C(549755813887) # define INT40_MIN (-INT40_C(549755813887)-1) # define UINT40_MAX UINT40_C(1099511627775) # define INT_LEAST40_MIN INT40_MIN # define INT_LEAST40_MAX INT40_MAX # define UINT_LEAST40_MAX UINT40_MAX # define INT_FAST40_MIN INT40_MIN # define INT_FAST40_MAX INT40_MAX # define UINT_FAST40_MAX UINT40_MAX # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT40_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT40_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT40_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT40_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT40_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT40_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT40_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT40_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT40_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 685 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT40_WIDTH 40 # define INT40_WIDTH UINT40_WIDTH # define UINT_LEAST40_WIDTH UINT40_WIDTH # define INT_LEAST40_WIDTH UINT_LEAST40_WIDTH # define UINT_FAST40_WIDTH UINT40_WIDTH # define INT_FAST40_WIDTH UINT_FAST40_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT40_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT40_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT40_WIDTH #endif /* __STDC_VERSION__ */ # 698 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT40_TYPE__ */ # 699 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT32_TYPE__ # define INT32_MAX INT32_C(2147483647) # define INT32_MIN (-INT32_C(2147483647)-1) # define UINT32_MAX UINT32_C(4294967295) # undef __INT_LEAST32_MIN # define __INT_LEAST32_MIN INT32_MIN # undef __INT_LEAST32_MAX # define __INT_LEAST32_MAX INT32_MAX # undef __UINT_LEAST32_MAX # define __UINT_LEAST32_MAX UINT32_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT32_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT32_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT32_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT32_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT32_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT32_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 726 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT32_WIDTH 32 # define INT32_WIDTH UINT32_WIDTH # undef __UINT_LEAST32_WIDTH # define __UINT_LEAST32_WIDTH UINT32_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT32_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT32_WIDTH #endif /* __STDC_VERSION__ */ # 735 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT32_TYPE__ */ # 736 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT_LEAST32_MIN # define INT_LEAST32_MIN __INT_LEAST32_MIN # define INT_LEAST32_MAX __INT_LEAST32_MAX # define UINT_LEAST32_MAX __UINT_LEAST32_MAX # define INT_FAST32_MIN __INT_LEAST32_MIN # define INT_FAST32_MAX __INT_LEAST32_MAX # define UINT_FAST32_MAX __UINT_LEAST32_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 746 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT_LEAST32_WIDTH __UINT_LEAST32_WIDTH # define INT_LEAST32_WIDTH UINT_LEAST32_WIDTH # define UINT_FAST32_WIDTH __UINT_LEAST32_WIDTH # define INT_FAST32_WIDTH UINT_FAST32_WIDTH #endif /* __STDC_VERSION__ */ # 751 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT_LEAST32_MIN */ # 752 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT24_TYPE__ # define INT24_MAX INT24_C(8388607) # define INT24_MIN (-INT24_C(8388607)-1) # define UINT24_MAX UINT24_C(16777215) # define INT_LEAST24_MIN INT24_MIN # define INT_LEAST24_MAX INT24_MAX # define UINT_LEAST24_MAX UINT24_MAX # define INT_FAST24_MIN INT24_MIN # define INT_FAST24_MAX INT24_MAX # define UINT_FAST24_MAX UINT24_MAX # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT24_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT24_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT24_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT24_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT24_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT24_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 779 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT24_WIDTH 24 # define INT24_WIDTH UINT24_WIDTH # define UINT_LEAST24_WIDTH UINT24_WIDTH # define INT_LEAST24_WIDTH UINT_LEAST24_WIDTH # define UINT_FAST24_WIDTH UINT24_WIDTH # define INT_FAST24_WIDTH UINT_FAST24_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT24_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT24_WIDTH #endif /* __STDC_VERSION__ */ # 790 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT24_TYPE__ */ # 791 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT16_TYPE__ #define INT16_MAX INT16_C(32767) #define INT16_MIN (-INT16_C(32767)-1) #define UINT16_MAX UINT16_C(65535) # undef __INT_LEAST16_MIN # define __INT_LEAST16_MIN INT16_MIN # undef __INT_LEAST16_MAX # define __INT_LEAST16_MAX INT16_MAX # undef __UINT_LEAST16_MAX # define __UINT_LEAST16_MAX UINT16_MAX # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT16_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT16_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT16_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 812 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT16_WIDTH 16 # define INT16_WIDTH UINT16_WIDTH # undef __UINT_LEAST16_WIDTH # define __UINT_LEAST16_WIDTH UINT16_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT16_WIDTH #endif /* __STDC_VERSION__ */ # 819 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT16_TYPE__ */ # 820 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT_LEAST16_MIN # define INT_LEAST16_MIN __INT_LEAST16_MIN # define INT_LEAST16_MAX __INT_LEAST16_MAX # define UINT_LEAST16_MAX __UINT_LEAST16_MAX # define INT_FAST16_MIN __INT_LEAST16_MIN # define INT_FAST16_MAX __INT_LEAST16_MAX # define UINT_FAST16_MAX __UINT_LEAST16_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 830 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT_LEAST16_WIDTH __UINT_LEAST16_WIDTH # define INT_LEAST16_WIDTH UINT_LEAST16_WIDTH # define UINT_FAST16_WIDTH __UINT_LEAST16_WIDTH # define INT_FAST16_WIDTH UINT_FAST16_WIDTH #endif /* __STDC_VERSION__ */ # 835 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT_LEAST16_MIN */ # 836 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT8_TYPE__ # define INT8_MAX INT8_C(127) # define INT8_MIN (-INT8_C(127)-1) # define UINT8_MAX UINT8_C(255) # undef __INT_LEAST8_MIN # define __INT_LEAST8_MIN INT8_MIN # undef __INT_LEAST8_MAX # define __INT_LEAST8_MAX INT8_MAX # undef __UINT_LEAST8_MAX # define __UINT_LEAST8_MAX UINT8_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 851 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT8_WIDTH 8 # define INT8_WIDTH UINT8_WIDTH # undef __UINT_LEAST8_WIDTH # define __UINT_LEAST8_WIDTH UINT8_WIDTH #endif /* __STDC_VERSION__ */ # 856 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT8_TYPE__ */ # 857 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifdef __INT_LEAST8_MIN # define INT_LEAST8_MIN __INT_LEAST8_MIN # define INT_LEAST8_MAX __INT_LEAST8_MAX # define UINT_LEAST8_MAX __UINT_LEAST8_MAX # define INT_FAST8_MIN __INT_LEAST8_MIN # define INT_FAST8_MAX __INT_LEAST8_MAX # define UINT_FAST8_MAX __UINT_LEAST8_MAX #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 867 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define UINT_LEAST8_WIDTH __UINT_LEAST8_WIDTH # define INT_LEAST8_WIDTH UINT_LEAST8_WIDTH # define UINT_FAST8_WIDTH __UINT_LEAST8_WIDTH # define INT_FAST8_WIDTH UINT_FAST8_WIDTH #endif /* __STDC_VERSION__ */ # 872 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __INT_LEAST8_MIN */ # 873 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* Some utility macros */ #define __INTN_MIN(n) __stdint_join3( INT, n, _MIN) #define __INTN_MAX(n) __stdint_join3( INT, n, _MAX) #define __UINTN_MAX(n) __stdint_join3(UINT, n, _MAX) #define __INTN_C(n, v) __stdint_join3( INT, n, _C(v)) #define __UINTN_C(n, v) __stdint_join3(UINT, n, _C(v)) /* C99 7.18.2.4 Limits of integer types capable of holding object pointers. */ /* C99 7.18.3 Limits of other integer types. */ #define INTPTR_MIN (-__INTPTR_MAX__-1) #define INTPTR_MAX __INTPTR_MAX__ #define UINTPTR_MAX __UINTPTR_MAX__ #define PTRDIFF_MIN (-__PTRDIFF_MAX__-1) #define PTRDIFF_MAX __PTRDIFF_MAX__ #define SIZE_MAX __SIZE_MAX__ /* C23 7.22.2.4 Width of integer types capable of holding object pointers. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 893 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* NB: The C standard requires that these be the same value, but the compiler exposes separate internal width macros. */ #define INTPTR_WIDTH __INTPTR_WIDTH__ #define UINTPTR_WIDTH __UINTPTR_WIDTH__ #endif # 898 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* ISO9899:2011 7.20 (C11 Annex K): Define RSIZE_MAX if __STDC_WANT_LIB_EXT1__ * is enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 902 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #define RSIZE_MAX (SIZE_MAX >> 1) #endif # 904 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* C99 7.18.2.5 Limits of greatest-width integer types. */ #define INTMAX_MIN (-__INTMAX_MAX__-1) #define INTMAX_MAX __INTMAX_MAX__ #define UINTMAX_MAX __UINTMAX_MAX__ /* C23 7.22.2.5 Width of greatest-width integer types. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 912 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* NB: The C standard requires that these be the same value, but the compiler exposes separate internal width macros. */ #define INTMAX_WIDTH __INTMAX_WIDTH__ #define UINTMAX_WIDTH __UINTMAX_WIDTH__ #endif # 917 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* C99 7.18.3 Limits of other integer types. */ #define SIG_ATOMIC_MIN __INTN_MIN(__SIG_ATOMIC_WIDTH__) #define SIG_ATOMIC_MAX __INTN_MAX(__SIG_ATOMIC_WIDTH__) #ifdef __WINT_UNSIGNED__ # define WINT_MIN __UINTN_C(__WINT_WIDTH__, 0) # define WINT_MAX __UINTN_MAX(__WINT_WIDTH__) #else # 925 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define WINT_MIN __INTN_MIN(__WINT_WIDTH__) # define WINT_MAX __INTN_MAX(__WINT_WIDTH__) #endif # 928 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifndef WCHAR_MAX # define WCHAR_MAX __WCHAR_MAX__ #endif # 932 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #ifndef WCHAR_MIN #if 0 /* disabled by -frewrite-includes */ # if __WCHAR_MAX__ == __INTN_MAX(__WCHAR_WIDTH__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 934 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define WCHAR_MIN __INTN_MIN(__WCHAR_WIDTH__) # else # 936 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 # define WCHAR_MIN __UINTN_C(__WCHAR_WIDTH__, 0) # endif # 938 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif # 939 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 /* 7.18.4.2 Macros for greatest-width integer constants. */ #define INTMAX_C(v) __int_c(v, __INTMAX_C_SUFFIX__) #define UINTMAX_C(v) __int_c(v, __UINTMAX_C_SUFFIX__) /* C23 7.22.3.x Width of other integer types. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 946 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #define PTRDIFF_WIDTH __PTRDIFF_WIDTH__ #define SIG_ATOMIC_WIDTH __SIG_ATOMIC_WIDTH__ #define SIZE_WIDTH __SIZE_WIDTH__ #define WCHAR_WIDTH __WCHAR_WIDTH__ #define WINT_WIDTH __WINT_WIDTH__ #endif # 952 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __STDC_HOSTED__ */ # 954 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __MVS__ */ # 955 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* __CLANG_STDINT_H */ # 956 "/home/marcus/llvm20/lib/clang/20/include/stdint.h" 3 #endif /* stdint.h expanded by -frewrite-includes */ # 150 "../mesa/include/KHR/khrplatform.h" 2 typedef int32_t khronos_int32_t; typedef uint32_t khronos_uint32_t; typedef int64_t khronos_int64_t; typedef uint64_t khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 /* * To support platform where unsigned long cannot be used interchangeably with * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t. * Ideally, we could just use (u)intptr_t everywhere, but this could result in * ABI breakage if khronos_uintptr_t is changed from unsigned long to * unsigned long long or similar (this results in different C++ name mangling). * To avoid changes for existing platforms, we restrict usage of intptr_t to * platforms where the size of a pointer is larger than the size of long. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "../mesa/include/KHR/khrplatform.h" #if 0 /* disabled by -frewrite-includes */ #if __SIZEOF_POINTER__ > __SIZEOF_LONG__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 167 "../mesa/include/KHR/khrplatform.h" #define KHRONOS_USE_INTPTR_T #endif # 169 "../mesa/include/KHR/khrplatform.h" #endif # 170 "../mesa/include/KHR/khrplatform.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__VMS ) || defined(__sgi) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 172 "../mesa/include/KHR/khrplatform.h" /* * Using */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 176 "../mesa/include/KHR/khrplatform.h" # 177 "../mesa/include/KHR/khrplatform.h" typedef int32_t khronos_int32_t; typedef uint32_t khronos_uint32_t; typedef int64_t khronos_int64_t; typedef uint64_t khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 185 "../mesa/include/KHR/khrplatform.h" /* * Win32 */ typedef __int32 khronos_int32_t; typedef unsigned __int32 khronos_uint32_t; typedef __int64 khronos_int64_t; typedef unsigned __int64 khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__sun__) || defined(__digital__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 197 "../mesa/include/KHR/khrplatform.h" /* * Sun or Digital */ typedef int khronos_int32_t; typedef unsigned int khronos_uint32_t; #if 0 /* disabled by -frewrite-includes */ #if defined(__arch64__) || defined(_LP64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 204 "../mesa/include/KHR/khrplatform.h" typedef long int khronos_int64_t; typedef unsigned long int khronos_uint64_t; #else # 207 "../mesa/include/KHR/khrplatform.h" typedef long long int khronos_int64_t; typedef unsigned long long int khronos_uint64_t; #endif /* __arch64__ */ # 210 "../mesa/include/KHR/khrplatform.h" #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif 0 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 214 "../mesa/include/KHR/khrplatform.h" /* * Hypothetical platform with no float or int64 support */ typedef int khronos_int32_t; typedef unsigned int khronos_uint32_t; #define KHRONOS_SUPPORT_INT64 0 #define KHRONOS_SUPPORT_FLOAT 0 #else # 224 "../mesa/include/KHR/khrplatform.h" /* * Generic fallback */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 228 "../mesa/include/KHR/khrplatform.h" # 229 "../mesa/include/KHR/khrplatform.h" typedef int32_t khronos_int32_t; typedef uint32_t khronos_uint32_t; typedef int64_t khronos_int64_t; typedef uint64_t khronos_uint64_t; #define KHRONOS_SUPPORT_INT64 1 #define KHRONOS_SUPPORT_FLOAT 1 #endif # 237 "../mesa/include/KHR/khrplatform.h" /* * Types that are (so far) the same on all platforms */ typedef signed char khronos_int8_t; typedef unsigned char khronos_uint8_t; typedef signed short int khronos_int16_t; typedef unsigned short int khronos_uint16_t; /* * Types that differ between LLP64 and LP64 architectures - in LLP64, * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears * to be the only LLP64 architecture in current use. */ #ifdef KHRONOS_USE_INTPTR_T typedef intptr_t khronos_intptr_t; typedef uintptr_t khronos_uintptr_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 256 "../mesa/include/KHR/khrplatform.h" typedef signed long long int khronos_intptr_t; typedef unsigned long long int khronos_uintptr_t; #else # 259 "../mesa/include/KHR/khrplatform.h" typedef signed long int khronos_intptr_t; typedef unsigned long int khronos_uintptr_t; #endif # 262 "../mesa/include/KHR/khrplatform.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 264 "../mesa/include/KHR/khrplatform.h" typedef signed long long int khronos_ssize_t; typedef unsigned long long int khronos_usize_t; #else # 267 "../mesa/include/KHR/khrplatform.h" typedef signed long int khronos_ssize_t; typedef unsigned long int khronos_usize_t; #endif # 270 "../mesa/include/KHR/khrplatform.h" #if 0 /* disabled by -frewrite-includes */ #if KHRONOS_SUPPORT_FLOAT #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "../mesa/include/KHR/khrplatform.h" /* * Float type */ typedef float khronos_float_t; #endif # 277 "../mesa/include/KHR/khrplatform.h" #if 0 /* disabled by -frewrite-includes */ #if KHRONOS_SUPPORT_INT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 279 "../mesa/include/KHR/khrplatform.h" /* Time types * * These types can be used to represent a time interval in nanoseconds or * an absolute Unadjusted System Time. Unadjusted System Time is the number * of nanoseconds since some arbitrary system event (e.g. since the last * time the system booted). The Unadjusted System Time is an unsigned * 64 bit value that wraps back to 0 every 584 years. Time intervals * may be either signed or unsigned. */ typedef khronos_uint64_t khronos_utime_nanoseconds_t; typedef khronos_int64_t khronos_stime_nanoseconds_t; #endif # 291 "../mesa/include/KHR/khrplatform.h" /* * Dummy value used to pad enum types to 32 bits. */ #ifndef KHRONOS_MAX_ENUM #define KHRONOS_MAX_ENUM 0x7FFFFFFF #endif # 298 "../mesa/include/KHR/khrplatform.h" /* * Enumerated boolean type * * Values other than zero should be considered to be true. Therefore * comparisons should not be made against KHRONOS_TRUE. */ typedef enum { KHRONOS_FALSE = 0, KHRONOS_TRUE = 1, KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM } khronos_boolean_enum_t; #endif /* __khrplatform_h_ */ # 312 "../mesa/include/KHR/khrplatform.h" #endif /* khrplatform.h expanded by -frewrite-includes */ # 38 "../mesa/include/GL/glext.h" 2 /* Generated C header for: * API: gl * Profile: compatibility * Versions considered: .* * Versions emitted: 1\.[2-9]|[234]\.[0-9] * Default extensions included: gl * Additional extensions included: _nomatch_^ * Extensions removed: _nomatch_^ */ #ifndef GL_VERSION_1_2 #define GL_VERSION_1_2 1 #define GL_UNSIGNED_BYTE_3_3_2 0x8032 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_INT_8_8_8_8 0x8035 #define GL_UNSIGNED_INT_10_10_10_2 0x8036 #define GL_TEXTURE_BINDING_3D 0x806A #define GL_PACK_SKIP_IMAGES 0x806B #define GL_PACK_IMAGE_HEIGHT 0x806C #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_PROXY_TEXTURE_3D 0x8070 #define GL_TEXTURE_DEPTH 0x8071 #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_BGR 0x80E0 #define GL_BGRA 0x80E1 #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_CLAMP_TO_EDGE 0x812F #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 #define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 #define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_RESCALE_NORMAL 0x803A #define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 #define GL_SINGLE_COLOR 0x81F9 #define GL_SEPARATE_SPECULAR_COLOR 0x81FA #define GL_ALIASED_POINT_SIZE_RANGE 0x846D typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #endif # 102 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_1_2 */ # 103 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_1_3 #define GL_VERSION_1_3 1 #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_MULTISAMPLE 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_ONE 0x809F #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C #define GL_COMPRESSED_RGB 0x84ED #define GL_COMPRESSED_RGBA 0x84EE #define GL_TEXTURE_COMPRESSION_HINT 0x84EF #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 #define GL_TEXTURE_COMPRESSED 0x86A1 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_CLAMP_TO_BORDER 0x812D #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 #define GL_MAX_TEXTURE_UNITS 0x84E2 #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 #define GL_MULTISAMPLE_BIT 0x20000000 #define GL_NORMAL_MAP 0x8511 #define GL_REFLECTION_MAP 0x8512 #define GL_COMPRESSED_ALPHA 0x84E9 #define GL_COMPRESSED_LUMINANCE 0x84EA #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB #define GL_COMPRESSED_INTENSITY 0x84EC #define GL_COMBINE 0x8570 #define GL_COMBINE_RGB 0x8571 #define GL_COMBINE_ALPHA 0x8572 #define GL_SOURCE0_RGB 0x8580 #define GL_SOURCE1_RGB 0x8581 #define GL_SOURCE2_RGB 0x8582 #define GL_SOURCE0_ALPHA 0x8588 #define GL_SOURCE1_ALPHA 0x8589 #define GL_SOURCE2_ALPHA 0x858A #define GL_OPERAND0_RGB 0x8590 #define GL_OPERAND1_RGB 0x8591 #define GL_OPERAND2_RGB 0x8592 #define GL_OPERAND0_ALPHA 0x8598 #define GL_OPERAND1_ALPHA 0x8599 #define GL_OPERAND2_ALPHA 0x859A #define GL_RGB_SCALE 0x8573 #define GL_ADD_SIGNED 0x8574 #define GL_INTERPOLATE 0x8575 #define GL_SUBTRACT 0x84E7 #define GL_CONSTANT 0x8576 #define GL_PRIMARY_COLOR 0x8577 #define GL_PREVIOUS 0x8578 #define GL_DOT3_RGB 0x86AE #define GL_DOT3_RGBA 0x86AF typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img); typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glActiveTexture (GLenum texture); GLAPI void APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *img); GLAPI void APIENTRY glClientActiveTexture (GLenum texture); GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); #endif # 296 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_1_3 */ # 297 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_1_4 #define GL_VERSION_1_4 1 #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_DEPTH_COMPONENT24 0x81A6 #define GL_DEPTH_COMPONENT32 0x81A7 #define GL_MIRRORED_REPEAT 0x8370 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD #define GL_TEXTURE_LOD_BIAS 0x8501 #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 #define GL_TEXTURE_DEPTH_SIZE 0x884A #define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_POINT_SIZE_MIN 0x8126 #define GL_POINT_SIZE_MAX 0x8127 #define GL_POINT_DISTANCE_ATTENUATION 0x8129 #define GL_GENERATE_MIPMAP 0x8191 #define GL_GENERATE_MIPMAP_HINT 0x8192 #define GL_FOG_COORDINATE_SOURCE 0x8450 #define GL_FOG_COORDINATE 0x8451 #define GL_FRAGMENT_DEPTH 0x8452 #define GL_CURRENT_FOG_COORDINATE 0x8453 #define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 #define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 #define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 #define GL_FOG_COORDINATE_ARRAY 0x8457 #define GL_COLOR_SUM 0x8458 #define GL_CURRENT_SECONDARY_COLOR 0x8459 #define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A #define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B #define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C #define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D #define GL_SECONDARY_COLOR_ARRAY 0x845E #define GL_TEXTURE_FILTER_CONTROL 0x8500 #define GL_DEPTH_TEXTURE_MODE 0x884B #define GL_COMPARE_R_TO_TEXTURE 0x884E #define GL_BLEND_COLOR 0x8005 #define GL_BLEND_EQUATION 0x8009 #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_FUNC_ADD 0x8006 #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_FUNC_SUBTRACT 0x800A #define GL_MIN 0x8007 #define GL_MAX 0x8008 typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); GLAPI void APIENTRY glFogCoordf (GLfloat coord); GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); GLAPI void APIENTRY glFogCoordd (GLdouble coord); GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); GLAPI void APIENTRY glWindowPos2iv (const GLint *v); GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); GLAPI void APIENTRY glWindowPos3iv (const GLint *v); GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GLAPI void APIENTRY glBlendEquation (GLenum mode); #endif # 446 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_1_4 */ # 447 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_1_5 #define GL_VERSION_1_5 1 typedef khronos_ssize_t GLsizeiptr; typedef khronos_intptr_t GLintptr; #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_QUERY_COUNTER_BITS 0x8864 #define GL_CURRENT_QUERY 0x8865 #define GL_QUERY_RESULT 0x8866 #define GL_QUERY_RESULT_AVAILABLE 0x8867 #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F #define GL_READ_ONLY 0x88B8 #define GL_WRITE_ONLY 0x88B9 #define GL_READ_WRITE 0x88BA #define GL_BUFFER_ACCESS 0x88BB #define GL_BUFFER_MAPPED 0x88BC #define GL_BUFFER_MAP_POINTER 0x88BD #define GL_STREAM_DRAW 0x88E0 #define GL_STREAM_READ 0x88E1 #define GL_STREAM_COPY 0x88E2 #define GL_STATIC_DRAW 0x88E4 #define GL_STATIC_READ 0x88E5 #define GL_STATIC_COPY 0x88E6 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_DYNAMIC_READ 0x88E9 #define GL_DYNAMIC_COPY 0x88EA #define GL_SAMPLES_PASSED 0x8914 #define GL_SRC1_ALPHA 0x8589 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 #define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D #define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E #define GL_FOG_COORD_SRC 0x8450 #define GL_FOG_COORD 0x8451 #define GL_CURRENT_FOG_COORD 0x8453 #define GL_FOG_COORD_ARRAY_TYPE 0x8454 #define GL_FOG_COORD_ARRAY_STRIDE 0x8455 #define GL_FOG_COORD_ARRAY_POINTER 0x8456 #define GL_FOG_COORD_ARRAY 0x8457 #define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D #define GL_SRC0_RGB 0x8580 #define GL_SRC1_RGB 0x8581 #define GL_SRC2_RGB 0x8582 #define GL_SRC0_ALPHA 0x8588 #define GL_SRC2_ALPHA 0x858A typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, void *data); typedef void *(APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); GLAPI GLboolean APIENTRY glIsQuery (GLuint id); GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); GLAPI void APIENTRY glEndQuery (GLenum target); GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, void *data); GLAPI void *APIENTRY glMapBuffer (GLenum target, GLenum access); GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); #endif # 542 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_1_5 */ # 543 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_2_0 #define GL_VERSION_2_0 1 typedef char GLchar; #define GL_BLEND_EQUATION_RGB 0x8009 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_MAX_DRAW_BUFFERS 0x8824 #define GL_DRAW_BUFFER0 0x8825 #define GL_DRAW_BUFFER1 0x8826 #define GL_DRAW_BUFFER2 0x8827 #define GL_DRAW_BUFFER3 0x8828 #define GL_DRAW_BUFFER4 0x8829 #define GL_DRAW_BUFFER5 0x882A #define GL_DRAW_BUFFER6 0x882B #define GL_DRAW_BUFFER7 0x882C #define GL_DRAW_BUFFER8 0x882D #define GL_DRAW_BUFFER9 0x882E #define GL_DRAW_BUFFER10 0x882F #define GL_DRAW_BUFFER11 0x8830 #define GL_DRAW_BUFFER12 0x8831 #define GL_DRAW_BUFFER13 0x8832 #define GL_DRAW_BUFFER14 0x8833 #define GL_DRAW_BUFFER15 0x8834 #define GL_BLEND_EQUATION_ALPHA 0x883D #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A #define GL_MAX_VARYING_FLOATS 0x8B4B #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_SHADER_TYPE 0x8B4F #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_1D 0x8B5D #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_3D 0x8B5F #define GL_SAMPLER_CUBE 0x8B60 #define GL_SAMPLER_1D_SHADOW 0x8B61 #define GL_SAMPLER_2D_SHADOW 0x8B62 #define GL_DELETE_STATUS 0x8B80 #define GL_COMPILE_STATUS 0x8B81 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D #define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 #define GL_LOWER_LEFT 0x8CA1 #define GL_UPPER_LEFT 0x8CA2 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 #define GL_POINT_SPRITE 0x8861 #define GL_COORD_REPLACE 0x8862 #define GL_MAX_TEXTURE_COORDS 0x8871 typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); GLAPI void APIENTRY glCompileShader (GLuint shader); GLAPI GLuint APIENTRY glCreateProgram (void); GLAPI GLuint APIENTRY glCreateShader (GLenum type); GLAPI void APIENTRY glDeleteProgram (GLuint program); GLAPI void APIENTRY glDeleteShader (GLuint shader); GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); GLAPI GLboolean APIENTRY glIsProgram (GLuint program); GLAPI GLboolean APIENTRY glIsShader (GLuint shader); GLAPI void APIENTRY glLinkProgram (GLuint program); GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); GLAPI void APIENTRY glUseProgram (GLuint program); GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glValidateProgram (GLuint program); GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); #endif # 819 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_2_0 */ # 820 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_2_1 #define GL_VERSION_2_1 1 #define GL_PIXEL_PACK_BUFFER 0x88EB #define GL_PIXEL_UNPACK_BUFFER 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF #define GL_FLOAT_MAT2x3 0x8B65 #define GL_FLOAT_MAT2x4 0x8B66 #define GL_FLOAT_MAT3x2 0x8B67 #define GL_FLOAT_MAT3x4 0x8B68 #define GL_FLOAT_MAT4x2 0x8B69 #define GL_FLOAT_MAT4x3 0x8B6A #define GL_SRGB 0x8C40 #define GL_SRGB8 0x8C41 #define GL_SRGB_ALPHA 0x8C42 #define GL_SRGB8_ALPHA8 0x8C43 #define GL_COMPRESSED_SRGB 0x8C48 #define GL_COMPRESSED_SRGB_ALPHA 0x8C49 #define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F #define GL_SLUMINANCE_ALPHA 0x8C44 #define GL_SLUMINANCE8_ALPHA8 0x8C45 #define GL_SLUMINANCE 0x8C46 #define GL_SLUMINANCE8 0x8C47 #define GL_COMPRESSED_SLUMINANCE 0x8C4A #define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #endif # 860 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_2_1 */ # 861 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_3_0 #define GL_VERSION_3_0 1 typedef khronos_uint16_t GLhalf; #define GL_COMPARE_REF_TO_TEXTURE 0x884E #define GL_CLIP_DISTANCE0 0x3000 #define GL_CLIP_DISTANCE1 0x3001 #define GL_CLIP_DISTANCE2 0x3002 #define GL_CLIP_DISTANCE3 0x3003 #define GL_CLIP_DISTANCE4 0x3004 #define GL_CLIP_DISTANCE5 0x3005 #define GL_CLIP_DISTANCE6 0x3006 #define GL_CLIP_DISTANCE7 0x3007 #define GL_MAX_CLIP_DISTANCES 0x0D32 #define GL_MAJOR_VERSION 0x821B #define GL_MINOR_VERSION 0x821C #define GL_NUM_EXTENSIONS 0x821D #define GL_CONTEXT_FLAGS 0x821E #define GL_COMPRESSED_RED 0x8225 #define GL_COMPRESSED_RG 0x8226 #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 #define GL_RGBA32F 0x8814 #define GL_RGB32F 0x8815 #define GL_RGBA16F 0x881A #define GL_RGB16F 0x881B #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 #define GL_CLAMP_READ_COLOR 0x891C #define GL_FIXED_ONLY 0x891D #define GL_MAX_VARYING_COMPONENTS 0x8B4B #define GL_TEXTURE_1D_ARRAY 0x8C18 #define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 #define GL_TEXTURE_2D_ARRAY 0x8C1A #define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B #define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D #define GL_R11F_G11F_B10F 0x8C3A #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B #define GL_RGB9_E5 0x8C3D #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E #define GL_TEXTURE_SHARED_SIZE 0x8C3F #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 #define GL_PRIMITIVES_GENERATED 0x8C87 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 #define GL_RASTERIZER_DISCARD 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B #define GL_INTERLEAVED_ATTRIBS 0x8C8C #define GL_SEPARATE_ATTRIBS 0x8C8D #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F #define GL_RGBA32UI 0x8D70 #define GL_RGB32UI 0x8D71 #define GL_RGBA16UI 0x8D76 #define GL_RGB16UI 0x8D77 #define GL_RGBA8UI 0x8D7C #define GL_RGB8UI 0x8D7D #define GL_RGBA32I 0x8D82 #define GL_RGB32I 0x8D83 #define GL_RGBA16I 0x8D88 #define GL_RGB16I 0x8D89 #define GL_RGBA8I 0x8D8E #define GL_RGB8I 0x8D8F #define GL_RED_INTEGER 0x8D94 #define GL_GREEN_INTEGER 0x8D95 #define GL_BLUE_INTEGER 0x8D96 #define GL_RGB_INTEGER 0x8D98 #define GL_RGBA_INTEGER 0x8D99 #define GL_BGR_INTEGER 0x8D9A #define GL_BGRA_INTEGER 0x8D9B #define GL_SAMPLER_1D_ARRAY 0x8DC0 #define GL_SAMPLER_2D_ARRAY 0x8DC1 #define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5 #define GL_UNSIGNED_INT_VEC2 0x8DC6 #define GL_UNSIGNED_INT_VEC3 0x8DC7 #define GL_UNSIGNED_INT_VEC4 0x8DC8 #define GL_INT_SAMPLER_1D 0x8DC9 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB #define GL_INT_SAMPLER_CUBE 0x8DCC #define GL_INT_SAMPLER_1D_ARRAY 0x8DCE #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF #define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 #define GL_QUERY_WAIT 0x8E13 #define GL_QUERY_NO_WAIT 0x8E14 #define GL_QUERY_BY_REGION_WAIT 0x8E15 #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 #define GL_BUFFER_ACCESS_FLAGS 0x911F #define GL_BUFFER_MAP_LENGTH 0x9120 #define GL_BUFFER_MAP_OFFSET 0x9121 #define GL_DEPTH_COMPONENT32F 0x8CAC #define GL_DEPTH32F_STENCIL8 0x8CAD #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 #define GL_FRAMEBUFFER_DEFAULT 0x8218 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_DEPTH_STENCIL 0x84F9 #define GL_UNSIGNED_INT_24_8 0x84FA #define GL_DEPTH24_STENCIL8 0x88F0 #define GL_TEXTURE_STENCIL_SIZE 0x88F1 #define GL_TEXTURE_RED_TYPE 0x8C10 #define GL_TEXTURE_GREEN_TYPE 0x8C11 #define GL_TEXTURE_BLUE_TYPE 0x8C12 #define GL_TEXTURE_ALPHA_TYPE 0x8C13 #define GL_TEXTURE_DEPTH_TYPE 0x8C16 #define GL_UNSIGNED_NORMALIZED 0x8C17 #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_READ_FRAMEBUFFER 0x8CA8 #define GL_DRAW_FRAMEBUFFER 0x8CA9 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA #define GL_RENDERBUFFER_SAMPLES 0x8CAB #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_COLOR_ATTACHMENT1 0x8CE1 #define GL_COLOR_ATTACHMENT2 0x8CE2 #define GL_COLOR_ATTACHMENT3 0x8CE3 #define GL_COLOR_ATTACHMENT4 0x8CE4 #define GL_COLOR_ATTACHMENT5 0x8CE5 #define GL_COLOR_ATTACHMENT6 0x8CE6 #define GL_COLOR_ATTACHMENT7 0x8CE7 #define GL_COLOR_ATTACHMENT8 0x8CE8 #define GL_COLOR_ATTACHMENT9 0x8CE9 #define GL_COLOR_ATTACHMENT10 0x8CEA #define GL_COLOR_ATTACHMENT11 0x8CEB #define GL_COLOR_ATTACHMENT12 0x8CEC #define GL_COLOR_ATTACHMENT13 0x8CED #define GL_COLOR_ATTACHMENT14 0x8CEE #define GL_COLOR_ATTACHMENT15 0x8CEF #define GL_COLOR_ATTACHMENT16 0x8CF0 #define GL_COLOR_ATTACHMENT17 0x8CF1 #define GL_COLOR_ATTACHMENT18 0x8CF2 #define GL_COLOR_ATTACHMENT19 0x8CF3 #define GL_COLOR_ATTACHMENT20 0x8CF4 #define GL_COLOR_ATTACHMENT21 0x8CF5 #define GL_COLOR_ATTACHMENT22 0x8CF6 #define GL_COLOR_ATTACHMENT23 0x8CF7 #define GL_COLOR_ATTACHMENT24 0x8CF8 #define GL_COLOR_ATTACHMENT25 0x8CF9 #define GL_COLOR_ATTACHMENT26 0x8CFA #define GL_COLOR_ATTACHMENT27 0x8CFB #define GL_COLOR_ATTACHMENT28 0x8CFC #define GL_COLOR_ATTACHMENT29 0x8CFD #define GL_COLOR_ATTACHMENT30 0x8CFE #define GL_COLOR_ATTACHMENT31 0x8CFF #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_STENCIL_INDEX1 0x8D46 #define GL_STENCIL_INDEX4 0x8D47 #define GL_STENCIL_INDEX8 0x8D48 #define GL_STENCIL_INDEX16 0x8D49 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_MAX_SAMPLES 0x8D57 #define GL_INDEX 0x8222 #define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 #define GL_TEXTURE_INTENSITY_TYPE 0x8C15 #define GL_FRAMEBUFFER_SRGB 0x8DB9 #define GL_HALF_FLOAT 0x140B #define GL_MAP_READ_BIT 0x0001 #define GL_MAP_WRITE_BIT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 #define GL_COMPRESSED_RED_RGTC1 0x8DBB #define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC #define GL_COMPRESSED_RG_RGTC2 0x8DBD #define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE #define GL_RG 0x8227 #define GL_RG_INTEGER 0x8228 #define GL_R8 0x8229 #define GL_R16 0x822A #define GL_RG8 0x822B #define GL_RG16 0x822C #define GL_R16F 0x822D #define GL_R32F 0x822E #define GL_RG16F 0x822F #define GL_RG32F 0x8230 #define GL_R8I 0x8231 #define GL_R8UI 0x8232 #define GL_R16I 0x8233 #define GL_R16UI 0x8234 #define GL_R32I 0x8235 #define GL_R32UI 0x8236 #define GL_RG8I 0x8237 #define GL_RG8UI 0x8238 #define GL_RG16I 0x8239 #define GL_RG16UI 0x823A #define GL_RG32I 0x823B #define GL_RG32UI 0x823C #define GL_VERTEX_ARRAY_BINDING 0x85B5 #define GL_CLAMP_VERTEX_COLOR 0x891A #define GL_CLAMP_FRAGMENT_COLOR 0x891B #define GL_ALPHA_INTEGER 0x8D97 typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef const GLubyte *(APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void *(APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); GLAPI void APIENTRY glEndTransformFeedback (void); GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); GLAPI void APIENTRY glEndConditionalRender (void); GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index); GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); GLAPI void APIENTRY glGenerateMipmap (GLenum target); GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); GLAPI void *APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); GLAPI void APIENTRY glBindVertexArray (GLuint array); GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); #endif # 1272 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_3_0 */ # 1273 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_3_1 #define GL_VERSION_3_1 1 #define GL_SAMPLER_2D_RECT 0x8B63 #define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 #define GL_SAMPLER_BUFFER 0x8DC2 #define GL_INT_SAMPLER_2D_RECT 0x8DCD #define GL_INT_SAMPLER_BUFFER 0x8DD0 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 #define GL_TEXTURE_BUFFER 0x8C2A #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B #define GL_TEXTURE_BINDING_BUFFER 0x8C2C #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D #define GL_TEXTURE_RECTANGLE 0x84F5 #define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 #define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 #define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 #define GL_R8_SNORM 0x8F94 #define GL_RG8_SNORM 0x8F95 #define GL_RGB8_SNORM 0x8F96 #define GL_RGBA8_SNORM 0x8F97 #define GL_R16_SNORM 0x8F98 #define GL_RG16_SNORM 0x8F99 #define GL_RGB16_SNORM 0x8F9A #define GL_RGBA16_SNORM 0x8F9B #define GL_SIGNED_NORMALIZED 0x8F9C #define GL_PRIMITIVE_RESTART 0x8F9D #define GL_PRIMITIVE_RESTART_INDEX 0x8F9E #define GL_COPY_READ_BUFFER 0x8F36 #define GL_COPY_WRITE_BUFFER 0x8F37 #define GL_UNIFORM_BUFFER 0x8A11 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 #define GL_UNIFORM_BUFFER_START 0x8A29 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 #define GL_UNIFORM_TYPE 0x8A37 #define GL_UNIFORM_SIZE 0x8A38 #define GL_UNIFORM_NAME_LENGTH 0x8A39 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A #define GL_UNIFORM_OFFSET 0x8A3B #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E #define GL_UNIFORM_BLOCK_BINDING 0x8A3F #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 #define GL_INVALID_INDEX 0xFFFFFFFFu typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); #endif # 1363 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_3_1 */ # 1364 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_3_2 #define GL_VERSION_3_2 1 typedef struct __GLsync *GLsync; typedef khronos_uint64_t GLuint64; typedef khronos_int64_t GLint64; #define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 #define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 #define GL_LINES_ADJACENCY 0x000A #define GL_LINE_STRIP_ADJACENCY 0x000B #define GL_TRIANGLES_ADJACENCY 0x000C #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D #define GL_PROGRAM_POINT_SIZE 0x8642 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 #define GL_GEOMETRY_SHADER 0x8DD9 #define GL_GEOMETRY_VERTICES_OUT 0x8916 #define GL_GEOMETRY_INPUT_TYPE 0x8917 #define GL_GEOMETRY_OUTPUT_TYPE 0x8918 #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 #define GL_CONTEXT_PROFILE_MASK 0x9126 #define GL_DEPTH_CLAMP 0x864F #define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C #define GL_FIRST_VERTEX_CONVENTION 0x8E4D #define GL_LAST_VERTEX_CONVENTION 0x8E4E #define GL_PROVOKING_VERTEX 0x8E4F #define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 #define GL_OBJECT_TYPE 0x9112 #define GL_SYNC_CONDITION 0x9113 #define GL_SYNC_STATUS 0x9114 #define GL_SYNC_FLAGS 0x9115 #define GL_SYNC_FENCE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 #define GL_UNSIGNALED 0x9118 #define GL_SIGNALED 0x9119 #define GL_ALREADY_SIGNALED 0x911A #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 #define GL_SAMPLE_POSITION 0x8E50 #define GL_SAMPLE_MASK 0x8E51 #define GL_SAMPLE_MASK_VALUE 0x8E52 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 #define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 #define GL_TEXTURE_SAMPLES 0x9106 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F #define GL_MAX_INTEGER_SAMPLES 0x9110 typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); GLAPI void APIENTRY glProvokingVertex (GLenum mode); GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); GLAPI GLboolean APIENTRY glIsSync (GLsync sync); GLAPI void APIENTRY glDeleteSync (GLsync sync); GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); GLAPI void APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); #endif # 1474 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_3_2 */ # 1475 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_3_3 #define GL_VERSION_3_3 1 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE #define GL_SRC1_COLOR 0x88F9 #define GL_ONE_MINUS_SRC1_COLOR 0x88FA #define GL_ONE_MINUS_SRC1_ALPHA 0x88FB #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC #define GL_ANY_SAMPLES_PASSED 0x8C2F #define GL_SAMPLER_BINDING 0x8919 #define GL_RGB10_A2UI 0x906F #define GL_TEXTURE_SWIZZLE_R 0x8E42 #define GL_TEXTURE_SWIZZLE_G 0x8E43 #define GL_TEXTURE_SWIZZLE_B 0x8E44 #define GL_TEXTURE_SWIZZLE_A 0x8E45 #define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 #define GL_TIME_ELAPSED 0x88BF #define GL_TIMESTAMP 0x8E28 #define GL_INT_2_10_10_10_REV 0x8D9F typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); #endif # 1612 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_3_3 */ # 1613 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_0 #define GL_VERSION_4_0 1 #define GL_SAMPLE_SHADING 0x8C36 #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F #define GL_DRAW_INDIRECT_BUFFER 0x8F3F #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 #define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D #define GL_MAX_VERTEX_STREAMS 0x8E71 #define GL_DOUBLE_VEC2 0x8FFC #define GL_DOUBLE_VEC3 0x8FFD #define GL_DOUBLE_VEC4 0x8FFE #define GL_DOUBLE_MAT2 0x8F46 #define GL_DOUBLE_MAT3 0x8F47 #define GL_DOUBLE_MAT4 0x8F48 #define GL_DOUBLE_MAT2x3 0x8F49 #define GL_DOUBLE_MAT2x4 0x8F4A #define GL_DOUBLE_MAT3x2 0x8F4B #define GL_DOUBLE_MAT3x4 0x8F4C #define GL_DOUBLE_MAT4x2 0x8F4D #define GL_DOUBLE_MAT4x3 0x8F4E #define GL_ACTIVE_SUBROUTINES 0x8DE5 #define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 #define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 #define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 #define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 #define GL_MAX_SUBROUTINES 0x8DE7 #define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 #define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A #define GL_COMPATIBLE_SUBROUTINES 0x8E4B #define GL_PATCHES 0x000E #define GL_PATCH_VERTICES 0x8E72 #define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 #define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 #define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 #define GL_TESS_GEN_MODE 0x8E76 #define GL_TESS_GEN_SPACING 0x8E77 #define GL_TESS_GEN_VERTEX_ORDER 0x8E78 #define GL_TESS_GEN_POINT_MODE 0x8E79 #define GL_ISOLINES 0x8E7A #define GL_FRACTIONAL_ODD 0x8E7B #define GL_FRACTIONAL_EVEN 0x8E7C #define GL_MAX_PATCH_VERTICES 0x8E7D #define GL_MAX_TESS_GEN_LEVEL 0x8E7E #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 #define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 #define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 #define GL_TESS_EVALUATION_SHADER 0x8E87 #define GL_TESS_CONTROL_SHADER 0x8E88 #define GL_TRANSFORM_FEEDBACK 0x8E22 #define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 #define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMinSampleShading (GLfloat value); GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); GLAPI void APIENTRY glPauseTransformFeedback (void); GLAPI void APIENTRY glResumeTransformFeedback (void); GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); #endif # 1787 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_0 */ # 1788 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_1 #define GL_VERSION_4_1 1 #define GL_FIXED 0x140C #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 #define GL_SHADER_COMPILER 0x8DFA #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_RGB565 0x8D62 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 #define GL_PROGRAM_BINARY_LENGTH 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE #define GL_PROGRAM_BINARY_FORMATS 0x87FF #define GL_VERTEX_SHADER_BIT 0x00000001 #define GL_FRAGMENT_SHADER_BIT 0x00000002 #define GL_GEOMETRY_SHADER_BIT 0x00000004 #define GL_TESS_CONTROL_SHADER_BIT 0x00000008 #define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 #define GL_ALL_SHADER_BITS 0xFFFFFFFF #define GL_PROGRAM_SEPARABLE 0x8258 #define GL_ACTIVE_PROGRAM 0x8259 #define GL_PROGRAM_PIPELINE_BINDING 0x825A #define GL_MAX_VIEWPORTS 0x825B #define GL_VIEWPORT_SUBPIXEL_BITS 0x825C #define GL_VIEWPORT_BOUNDS_RANGE 0x825D #define GL_LAYER_PROVOKING_VERTEX 0x825E #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F #define GL_UNDEFINED_VERTEX 0x8260 typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLdouble n, GLdouble f); typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glReleaseShaderCompiler (void); GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); GLAPI void APIENTRY glDepthRangef (GLfloat n, GLfloat f); GLAPI void APIENTRY glClearDepthf (GLfloat d); GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLdouble n, GLdouble f); GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); #endif # 2004 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_1 */ # 2005 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_2 #define GL_VERSION_4_2 1 #define GL_COPY_READ_BUFFER_BINDING 0x8F36 #define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 #define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 #define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 #define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 #define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A #define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B #define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C #define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D #define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E #define GL_NUM_SAMPLE_COUNTS 0x9380 #define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC #define GL_ATOMIC_COUNTER_BUFFER 0x92C0 #define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 #define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 #define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 #define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 #define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 #define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB #define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF #define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 #define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 #define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 #define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 #define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 #define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC #define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 #define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 #define GL_UNIFORM_BARRIER_BIT 0x00000004 #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 #define GL_COMMAND_BARRIER_BIT 0x00000040 #define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 #define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 #define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 #define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 #define GL_ALL_BARRIER_BITS 0xFFFFFFFF #define GL_MAX_IMAGE_UNITS 0x8F38 #define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 #define GL_IMAGE_BINDING_NAME 0x8F3A #define GL_IMAGE_BINDING_LEVEL 0x8F3B #define GL_IMAGE_BINDING_LAYERED 0x8F3C #define GL_IMAGE_BINDING_LAYER 0x8F3D #define GL_IMAGE_BINDING_ACCESS 0x8F3E #define GL_IMAGE_1D 0x904C #define GL_IMAGE_2D 0x904D #define GL_IMAGE_3D 0x904E #define GL_IMAGE_2D_RECT 0x904F #define GL_IMAGE_CUBE 0x9050 #define GL_IMAGE_BUFFER 0x9051 #define GL_IMAGE_1D_ARRAY 0x9052 #define GL_IMAGE_2D_ARRAY 0x9053 #define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 #define GL_IMAGE_2D_MULTISAMPLE 0x9055 #define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 #define GL_INT_IMAGE_1D 0x9057 #define GL_INT_IMAGE_2D 0x9058 #define GL_INT_IMAGE_3D 0x9059 #define GL_INT_IMAGE_2D_RECT 0x905A #define GL_INT_IMAGE_CUBE 0x905B #define GL_INT_IMAGE_BUFFER 0x905C #define GL_INT_IMAGE_1D_ARRAY 0x905D #define GL_INT_IMAGE_2D_ARRAY 0x905E #define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F #define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 #define GL_UNSIGNED_INT_IMAGE_1D 0x9062 #define GL_UNSIGNED_INT_IMAGE_2D 0x9063 #define GL_UNSIGNED_INT_IMAGE_3D 0x9064 #define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 #define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C #define GL_MAX_IMAGE_SAMPLES 0x906D #define GL_IMAGE_BINDING_FORMAT 0x906E #define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 #define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF #define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei instancecount); typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei instancecount); GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); #endif # 2146 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_2 */ # 2147 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_3 #define GL_VERSION_4_3 1 typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); #define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 #define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E #define GL_COMPRESSED_RGB8_ETC2 0x9274 #define GL_COMPRESSED_SRGB8_ETC2 0x9275 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 #define GL_COMPRESSED_R11_EAC 0x9270 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 #define GL_COMPRESSED_RG11_EAC 0x9272 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A #define GL_MAX_ELEMENT_INDEX 0x8D6B #define GL_COMPUTE_SHADER 0x91B9 #define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB #define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC #define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD #define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 #define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 #define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 #define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 #define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 #define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB #define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE #define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF #define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 #define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED #define GL_DISPATCH_INDIRECT_BUFFER 0x90EE #define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF #define GL_COMPUTE_SHADER_BIT 0x00000020 #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 #define GL_DEBUG_CALLBACK_FUNCTION 0x8244 #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 #define GL_DEBUG_SOURCE_API 0x8246 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 #define GL_DEBUG_SOURCE_APPLICATION 0x824A #define GL_DEBUG_SOURCE_OTHER 0x824B #define GL_DEBUG_TYPE_ERROR 0x824C #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E #define GL_DEBUG_TYPE_PORTABILITY 0x824F #define GL_DEBUG_TYPE_PERFORMANCE 0x8250 #define GL_DEBUG_TYPE_OTHER 0x8251 #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 #define GL_DEBUG_LOGGED_MESSAGES 0x9145 #define GL_DEBUG_SEVERITY_HIGH 0x9146 #define GL_DEBUG_SEVERITY_MEDIUM 0x9147 #define GL_DEBUG_SEVERITY_LOW 0x9148 #define GL_DEBUG_TYPE_MARKER 0x8268 #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 #define GL_DEBUG_TYPE_POP_GROUP 0x826A #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D #define GL_BUFFER 0x82E0 #define GL_SHADER 0x82E1 #define GL_PROGRAM 0x82E2 #define GL_QUERY 0x82E3 #define GL_PROGRAM_PIPELINE 0x82E4 #define GL_SAMPLER 0x82E6 #define GL_MAX_LABEL_LENGTH 0x82E8 #define GL_DEBUG_OUTPUT 0x92E0 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 #define GL_MAX_UNIFORM_LOCATIONS 0x826E #define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 #define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 #define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 #define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 #define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 #define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 #define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 #define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 #define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 #define GL_INTERNALFORMAT_SUPPORTED 0x826F #define GL_INTERNALFORMAT_PREFERRED 0x8270 #define GL_INTERNALFORMAT_RED_SIZE 0x8271 #define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 #define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 #define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 #define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 #define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 #define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 #define GL_INTERNALFORMAT_RED_TYPE 0x8278 #define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 #define GL_INTERNALFORMAT_BLUE_TYPE 0x827A #define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B #define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C #define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D #define GL_MAX_WIDTH 0x827E #define GL_MAX_HEIGHT 0x827F #define GL_MAX_DEPTH 0x8280 #define GL_MAX_LAYERS 0x8281 #define GL_MAX_COMBINED_DIMENSIONS 0x8282 #define GL_COLOR_COMPONENTS 0x8283 #define GL_DEPTH_COMPONENTS 0x8284 #define GL_STENCIL_COMPONENTS 0x8285 #define GL_COLOR_RENDERABLE 0x8286 #define GL_DEPTH_RENDERABLE 0x8287 #define GL_STENCIL_RENDERABLE 0x8288 #define GL_FRAMEBUFFER_RENDERABLE 0x8289 #define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A #define GL_FRAMEBUFFER_BLEND 0x828B #define GL_READ_PIXELS 0x828C #define GL_READ_PIXELS_FORMAT 0x828D #define GL_READ_PIXELS_TYPE 0x828E #define GL_TEXTURE_IMAGE_FORMAT 0x828F #define GL_TEXTURE_IMAGE_TYPE 0x8290 #define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 #define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 #define GL_MIPMAP 0x8293 #define GL_MANUAL_GENERATE_MIPMAP 0x8294 #define GL_AUTO_GENERATE_MIPMAP 0x8295 #define GL_COLOR_ENCODING 0x8296 #define GL_SRGB_READ 0x8297 #define GL_SRGB_WRITE 0x8298 #define GL_FILTER 0x829A #define GL_VERTEX_TEXTURE 0x829B #define GL_TESS_CONTROL_TEXTURE 0x829C #define GL_TESS_EVALUATION_TEXTURE 0x829D #define GL_GEOMETRY_TEXTURE 0x829E #define GL_FRAGMENT_TEXTURE 0x829F #define GL_COMPUTE_TEXTURE 0x82A0 #define GL_TEXTURE_SHADOW 0x82A1 #define GL_TEXTURE_GATHER 0x82A2 #define GL_TEXTURE_GATHER_SHADOW 0x82A3 #define GL_SHADER_IMAGE_LOAD 0x82A4 #define GL_SHADER_IMAGE_STORE 0x82A5 #define GL_SHADER_IMAGE_ATOMIC 0x82A6 #define GL_IMAGE_TEXEL_SIZE 0x82A7 #define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 #define GL_IMAGE_PIXEL_FORMAT 0x82A9 #define GL_IMAGE_PIXEL_TYPE 0x82AA #define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC #define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD #define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE #define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF #define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 #define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 #define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 #define GL_CLEAR_BUFFER 0x82B4 #define GL_TEXTURE_VIEW 0x82B5 #define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 #define GL_FULL_SUPPORT 0x82B7 #define GL_CAVEAT_SUPPORT 0x82B8 #define GL_IMAGE_CLASS_4_X_32 0x82B9 #define GL_IMAGE_CLASS_2_X_32 0x82BA #define GL_IMAGE_CLASS_1_X_32 0x82BB #define GL_IMAGE_CLASS_4_X_16 0x82BC #define GL_IMAGE_CLASS_2_X_16 0x82BD #define GL_IMAGE_CLASS_1_X_16 0x82BE #define GL_IMAGE_CLASS_4_X_8 0x82BF #define GL_IMAGE_CLASS_2_X_8 0x82C0 #define GL_IMAGE_CLASS_1_X_8 0x82C1 #define GL_IMAGE_CLASS_11_11_10 0x82C2 #define GL_IMAGE_CLASS_10_10_10_2 0x82C3 #define GL_VIEW_CLASS_128_BITS 0x82C4 #define GL_VIEW_CLASS_96_BITS 0x82C5 #define GL_VIEW_CLASS_64_BITS 0x82C6 #define GL_VIEW_CLASS_48_BITS 0x82C7 #define GL_VIEW_CLASS_32_BITS 0x82C8 #define GL_VIEW_CLASS_24_BITS 0x82C9 #define GL_VIEW_CLASS_16_BITS 0x82CA #define GL_VIEW_CLASS_8_BITS 0x82CB #define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC #define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD #define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE #define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF #define GL_VIEW_CLASS_RGTC1_RED 0x82D0 #define GL_VIEW_CLASS_RGTC2_RG 0x82D1 #define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 #define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 #define GL_UNIFORM 0x92E1 #define GL_UNIFORM_BLOCK 0x92E2 #define GL_PROGRAM_INPUT 0x92E3 #define GL_PROGRAM_OUTPUT 0x92E4 #define GL_BUFFER_VARIABLE 0x92E5 #define GL_SHADER_STORAGE_BLOCK 0x92E6 #define GL_VERTEX_SUBROUTINE 0x92E8 #define GL_TESS_CONTROL_SUBROUTINE 0x92E9 #define GL_TESS_EVALUATION_SUBROUTINE 0x92EA #define GL_GEOMETRY_SUBROUTINE 0x92EB #define GL_FRAGMENT_SUBROUTINE 0x92EC #define GL_COMPUTE_SUBROUTINE 0x92ED #define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE #define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF #define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 #define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 #define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 #define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 #define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 #define GL_ACTIVE_RESOURCES 0x92F5 #define GL_MAX_NAME_LENGTH 0x92F6 #define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 #define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 #define GL_NAME_LENGTH 0x92F9 #define GL_TYPE 0x92FA #define GL_ARRAY_SIZE 0x92FB #define GL_OFFSET 0x92FC #define GL_BLOCK_INDEX 0x92FD #define GL_ARRAY_STRIDE 0x92FE #define GL_MATRIX_STRIDE 0x92FF #define GL_IS_ROW_MAJOR 0x9300 #define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 #define GL_BUFFER_BINDING 0x9302 #define GL_BUFFER_DATA_SIZE 0x9303 #define GL_NUM_ACTIVE_VARIABLES 0x9304 #define GL_ACTIVE_VARIABLES 0x9305 #define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 #define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 #define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A #define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B #define GL_TOP_LEVEL_ARRAY_SIZE 0x930C #define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D #define GL_LOCATION 0x930E #define GL_LOCATION_INDEX 0x930F #define GL_IS_PER_PATCH 0x92E7 #define GL_SHADER_STORAGE_BUFFER 0x90D2 #define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 #define GL_SHADER_STORAGE_BUFFER_START 0x90D4 #define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 #define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 #define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA #define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB #define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC #define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE #define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF #define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 #define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 #define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA #define GL_TEXTURE_BUFFER_OFFSET 0x919D #define GL_TEXTURE_BUFFER_SIZE 0x919E #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F #define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB #define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC #define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD #define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF #define GL_VERTEX_ATTRIB_BINDING 0x82D4 #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 #define GL_VERTEX_BINDING_DIVISOR 0x82D6 #define GL_VERTEX_BINDING_OFFSET 0x82D7 #define GL_VERTEX_BINDING_STRIDE 0x82D8 #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA #define GL_VERTEX_BINDING_BUFFER 0x8F4F #define GL_DISPLAY_LIST 0x82E7 typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC) (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC) (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC) (GLuint texture, GLint level); typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC) (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); typedef void (APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glClearBufferData (GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glClearBufferSubData (GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); GLAPI void APIENTRY glDispatchComputeIndirect (GLintptr indirect); GLAPI void APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); GLAPI void APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); GLAPI void APIENTRY glInvalidateTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); GLAPI void APIENTRY glInvalidateTexImage (GLuint texture, GLint level); GLAPI void APIENTRY glInvalidateBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr length); GLAPI void APIENTRY glInvalidateBufferData (GLuint buffer); GLAPI void APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); GLAPI void APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glMultiDrawArraysIndirect (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); GLAPI void APIENTRY glMultiDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); GLAPI void APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); GLAPI GLuint APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); GLAPI void APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); GLAPI void APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); GLAPI GLint APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); GLAPI GLint APIENTRY glGetProgramResourceLocationIndex (GLuint program, GLenum programInterface, const GLchar *name); GLAPI void APIENTRY glShaderStorageBlockBinding (GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); GLAPI void APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); GLAPI void APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); GLAPI void APIENTRY glTextureView (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); GLAPI void APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); GLAPI void APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); GLAPI void APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GLAPI void APIENTRY glVertexAttribLFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GLAPI void APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); GLAPI void APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); GLAPI void APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); GLAPI GLuint APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); GLAPI void APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); GLAPI void APIENTRY glPopDebugGroup (void); GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); GLAPI void APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); GLAPI void APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); GLAPI void APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); #endif # 2498 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_3 */ # 2499 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_4 #define GL_VERSION_4_4 1 #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 #define GL_TEXTURE_BUFFER_BINDING 0x8C2A #define GL_MAP_PERSISTENT_BIT 0x0040 #define GL_MAP_COHERENT_BIT 0x0080 #define GL_DYNAMIC_STORAGE_BIT 0x0100 #define GL_CLIENT_STORAGE_BIT 0x0200 #define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 #define GL_BUFFER_IMMUTABLE_STORAGE 0x821F #define GL_BUFFER_STORAGE_FLAGS 0x8220 #define GL_CLEAR_TEXTURE 0x9365 #define GL_LOCATION_COMPONENT 0x934A #define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B #define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C #define GL_QUERY_BUFFER 0x9192 #define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 #define GL_QUERY_BUFFER_BINDING 0x9193 #define GL_QUERY_RESULT_NO_WAIT 0x9194 #define GL_MIRROR_CLAMP_TO_EDGE 0x8743 typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC) (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); typedef void (APIENTRYP PFNGLBINDTEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC) (GLuint first, GLsizei count, const GLuint *samplers); typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC) (GLuint first, GLsizei count, const GLuint *textures); typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC) (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBufferStorage (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); GLAPI void APIENTRY glClearTexImage (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glClearTexSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glBindBuffersBase (GLenum target, GLuint first, GLsizei count, const GLuint *buffers); GLAPI void APIENTRY glBindBuffersRange (GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); GLAPI void APIENTRY glBindTextures (GLuint first, GLsizei count, const GLuint *textures); GLAPI void APIENTRY glBindSamplers (GLuint first, GLsizei count, const GLuint *samplers); GLAPI void APIENTRY glBindImageTextures (GLuint first, GLsizei count, const GLuint *textures); GLAPI void APIENTRY glBindVertexBuffers (GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); #endif # 2541 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_4 */ # 2542 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_5 #define GL_VERSION_4_5 1 #define GL_CONTEXT_LOST 0x0507 #define GL_NEGATIVE_ONE_TO_ONE 0x935E #define GL_ZERO_TO_ONE 0x935F #define GL_CLIP_ORIGIN 0x935C #define GL_CLIP_DEPTH_MODE 0x935D #define GL_QUERY_WAIT_INVERTED 0x8E17 #define GL_QUERY_NO_WAIT_INVERTED 0x8E18 #define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 #define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A #define GL_MAX_CULL_DISTANCES 0x82F9 #define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA #define GL_TEXTURE_TARGET 0x1006 #define GL_QUERY_TARGET 0x82EA #define GL_GUILTY_CONTEXT_RESET 0x8253 #define GL_INNOCENT_CONTEXT_RESET 0x8254 #define GL_UNKNOWN_CONTEXT_RESET 0x8255 #define GL_RESET_NOTIFICATION_STRATEGY 0x8256 #define GL_LOSE_CONTEXT_ON_RESET 0x8252 #define GL_NO_RESET_NOTIFICATION 0x8261 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 #define GL_COLOR_TABLE 0x80D0 #define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 #define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 #define GL_PROXY_COLOR_TABLE 0x80D3 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 #define GL_CONVOLUTION_1D 0x8010 #define GL_CONVOLUTION_2D 0x8011 #define GL_SEPARABLE_2D 0x8012 #define GL_HISTOGRAM 0x8024 #define GL_PROXY_HISTOGRAM 0x8025 #define GL_MINMAX 0x802E #define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB #define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC typedef void (APIENTRYP PFNGLCLIPCONTROLPROC) (GLenum origin, GLenum depth); typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) (GLuint xfb, GLuint index, GLuint buffer); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC) (GLuint xfb, GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint *param); typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC) (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC) (GLsizei n, GLuint *buffers); typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERPROC) (GLuint buffer, GLenum access); typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC) (GLuint buffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) (GLuint buffer, GLenum pname, GLint64 *params); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC) (GLuint buffer, GLenum pname, void **params); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) (GLuint framebuffer, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) (GLuint framebuffer, GLenum buf); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) (GLuint framebuffer, GLenum src); typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC) (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) (GLuint framebuffer, GLenum target); typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) (GLuint framebuffer, GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) (GLuint renderbuffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLCREATETEXTURESPROC) (GLenum target, GLsizei n, GLuint *textures); typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC) (GLuint texture, GLenum internalformat, GLuint buffer); typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC) (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC) (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC) (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC) (GLuint texture, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, const GLfloat *param); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC) (GLuint texture, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, const GLuint *params); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, const GLint *param); typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC) (GLuint texture); typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC) (GLuint unit, GLuint texture); typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) (GLuint texture, GLint level, GLsizei bufSize, void *pixels); typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC) (GLuint texture, GLint level, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC) (GLuint texture, GLint level, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC) (GLuint texture, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC) (GLuint texture, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC) (GLuint texture, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC) (GLuint texture, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC) (GLuint vaobj, GLuint index); typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC) (GLuint vaobj, GLuint buffer); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC) (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC) (GLuint vaobj, GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC) (GLsizei n, GLuint *samplers); typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); typedef void (APIENTRYP PFNGLCREATEQUERIESPROC) (GLenum target, GLsizei n, GLuint *ids); typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC) (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); typedef void (APIENTRYP PFNGLGETTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, GLsizei bufSize, void *pixels); typedef void (APIENTRYP PFNGLGETNTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); typedef void (APIENTRYP PFNGLGETNUNIFORMDVPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); typedef void (APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (APIENTRYP PFNGLGETNMAPDVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); typedef void (APIENTRYP PFNGLGETNMAPFVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); typedef void (APIENTRYP PFNGLGETNMAPIVPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); typedef void (APIENTRYP PFNGLGETNPIXELMAPFVPROC) (GLenum map, GLsizei bufSize, GLfloat *values); typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVPROC) (GLenum map, GLsizei bufSize, GLuint *values); typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVPROC) (GLenum map, GLsizei bufSize, GLushort *values); typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEPROC) (GLsizei bufSize, GLubyte *pattern); typedef void (APIENTRYP PFNGLGETNCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); typedef void (APIENTRYP PFNGLGETNHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); typedef void (APIENTRYP PFNGLGETNMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glClipControl (GLenum origin, GLenum depth); GLAPI void APIENTRY glCreateTransformFeedbacks (GLsizei n, GLuint *ids); GLAPI void APIENTRY glTransformFeedbackBufferBase (GLuint xfb, GLuint index, GLuint buffer); GLAPI void APIENTRY glTransformFeedbackBufferRange (GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glGetTransformFeedbackiv (GLuint xfb, GLenum pname, GLint *param); GLAPI void APIENTRY glGetTransformFeedbacki_v (GLuint xfb, GLenum pname, GLuint index, GLint *param); GLAPI void APIENTRY glGetTransformFeedbacki64_v (GLuint xfb, GLenum pname, GLuint index, GLint64 *param); GLAPI void APIENTRY glCreateBuffers (GLsizei n, GLuint *buffers); GLAPI void APIENTRY glNamedBufferStorage (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); GLAPI void APIENTRY glNamedBufferData (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); GLAPI void APIENTRY glNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); GLAPI void APIENTRY glCopyNamedBufferSubData (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GLAPI void APIENTRY glClearNamedBufferData (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glClearNamedBufferSubData (GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); GLAPI void *APIENTRY glMapNamedBuffer (GLuint buffer, GLenum access); GLAPI void *APIENTRY glMapNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); GLAPI GLboolean APIENTRY glUnmapNamedBuffer (GLuint buffer); GLAPI void APIENTRY glFlushMappedNamedBufferRange (GLuint buffer, GLintptr offset, GLsizeiptr length); GLAPI void APIENTRY glGetNamedBufferParameteriv (GLuint buffer, GLenum pname, GLint *params); GLAPI void APIENTRY glGetNamedBufferParameteri64v (GLuint buffer, GLenum pname, GLint64 *params); GLAPI void APIENTRY glGetNamedBufferPointerv (GLuint buffer, GLenum pname, void **params); GLAPI void APIENTRY glGetNamedBufferSubData (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); GLAPI void APIENTRY glCreateFramebuffers (GLsizei n, GLuint *framebuffers); GLAPI void APIENTRY glNamedFramebufferRenderbuffer (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GLAPI void APIENTRY glNamedFramebufferParameteri (GLuint framebuffer, GLenum pname, GLint param); GLAPI void APIENTRY glNamedFramebufferTexture (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); GLAPI void APIENTRY glNamedFramebufferTextureLayer (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); GLAPI void APIENTRY glNamedFramebufferDrawBuffer (GLuint framebuffer, GLenum buf); GLAPI void APIENTRY glNamedFramebufferDrawBuffers (GLuint framebuffer, GLsizei n, const GLenum *bufs); GLAPI void APIENTRY glNamedFramebufferReadBuffer (GLuint framebuffer, GLenum src); GLAPI void APIENTRY glInvalidateNamedFramebufferData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); GLAPI void APIENTRY glInvalidateNamedFramebufferSubData (GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glClearNamedFramebufferiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); GLAPI void APIENTRY glClearNamedFramebufferuiv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); GLAPI void APIENTRY glClearNamedFramebufferfv (GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); GLAPI void APIENTRY glClearNamedFramebufferfi (GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); GLAPI void APIENTRY glBlitNamedFramebuffer (GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GLAPI GLenum APIENTRY glCheckNamedFramebufferStatus (GLuint framebuffer, GLenum target); GLAPI void APIENTRY glGetNamedFramebufferParameteriv (GLuint framebuffer, GLenum pname, GLint *param); GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameteriv (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); GLAPI void APIENTRY glCreateRenderbuffers (GLsizei n, GLuint *renderbuffers); GLAPI void APIENTRY glNamedRenderbufferStorage (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glNamedRenderbufferStorageMultisample (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetNamedRenderbufferParameteriv (GLuint renderbuffer, GLenum pname, GLint *params); GLAPI void APIENTRY glCreateTextures (GLenum target, GLsizei n, GLuint *textures); GLAPI void APIENTRY glTextureBuffer (GLuint texture, GLenum internalformat, GLuint buffer); GLAPI void APIENTRY glTextureBufferRange (GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glTextureStorage1D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); GLAPI void APIENTRY glTextureStorage2D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glTextureStorage3D (GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GLAPI void APIENTRY glTextureStorage2DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); GLAPI void APIENTRY glTextureStorage3DMultisample (GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); GLAPI void APIENTRY glTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glCompressedTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCopyTextureSubImage1D (GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glCopyTextureSubImage2D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glCopyTextureSubImage3D (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glTextureParameterf (GLuint texture, GLenum pname, GLfloat param); GLAPI void APIENTRY glTextureParameterfv (GLuint texture, GLenum pname, const GLfloat *param); GLAPI void APIENTRY glTextureParameteri (GLuint texture, GLenum pname, GLint param); GLAPI void APIENTRY glTextureParameterIiv (GLuint texture, GLenum pname, const GLint *params); GLAPI void APIENTRY glTextureParameterIuiv (GLuint texture, GLenum pname, const GLuint *params); GLAPI void APIENTRY glTextureParameteriv (GLuint texture, GLenum pname, const GLint *param); GLAPI void APIENTRY glGenerateTextureMipmap (GLuint texture); GLAPI void APIENTRY glBindTextureUnit (GLuint unit, GLuint texture); GLAPI void APIENTRY glGetTextureImage (GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); GLAPI void APIENTRY glGetCompressedTextureImage (GLuint texture, GLint level, GLsizei bufSize, void *pixels); GLAPI void APIENTRY glGetTextureLevelParameterfv (GLuint texture, GLint level, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetTextureLevelParameteriv (GLuint texture, GLint level, GLenum pname, GLint *params); GLAPI void APIENTRY glGetTextureParameterfv (GLuint texture, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetTextureParameterIiv (GLuint texture, GLenum pname, GLint *params); GLAPI void APIENTRY glGetTextureParameterIuiv (GLuint texture, GLenum pname, GLuint *params); GLAPI void APIENTRY glGetTextureParameteriv (GLuint texture, GLenum pname, GLint *params); GLAPI void APIENTRY glCreateVertexArrays (GLsizei n, GLuint *arrays); GLAPI void APIENTRY glDisableVertexArrayAttrib (GLuint vaobj, GLuint index); GLAPI void APIENTRY glEnableVertexArrayAttrib (GLuint vaobj, GLuint index); GLAPI void APIENTRY glVertexArrayElementBuffer (GLuint vaobj, GLuint buffer); GLAPI void APIENTRY glVertexArrayVertexBuffer (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); GLAPI void APIENTRY glVertexArrayVertexBuffers (GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); GLAPI void APIENTRY glVertexArrayAttribBinding (GLuint vaobj, GLuint attribindex, GLuint bindingindex); GLAPI void APIENTRY glVertexArrayAttribFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); GLAPI void APIENTRY glVertexArrayAttribIFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GLAPI void APIENTRY glVertexArrayAttribLFormat (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GLAPI void APIENTRY glVertexArrayBindingDivisor (GLuint vaobj, GLuint bindingindex, GLuint divisor); GLAPI void APIENTRY glGetVertexArrayiv (GLuint vaobj, GLenum pname, GLint *param); GLAPI void APIENTRY glGetVertexArrayIndexediv (GLuint vaobj, GLuint index, GLenum pname, GLint *param); GLAPI void APIENTRY glGetVertexArrayIndexed64iv (GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); GLAPI void APIENTRY glCreateSamplers (GLsizei n, GLuint *samplers); GLAPI void APIENTRY glCreateProgramPipelines (GLsizei n, GLuint *pipelines); GLAPI void APIENTRY glCreateQueries (GLenum target, GLsizei n, GLuint *ids); GLAPI void APIENTRY glGetQueryBufferObjecti64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); GLAPI void APIENTRY glGetQueryBufferObjectiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); GLAPI void APIENTRY glGetQueryBufferObjectui64v (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); GLAPI void APIENTRY glGetQueryBufferObjectuiv (GLuint id, GLuint buffer, GLenum pname, GLintptr offset); GLAPI void APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); GLAPI void APIENTRY glGetTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); GLAPI void APIENTRY glGetCompressedTextureSubImage (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); GLAPI GLenum APIENTRY glGetGraphicsResetStatus (void); GLAPI void APIENTRY glGetnCompressedTexImage (GLenum target, GLint lod, GLsizei bufSize, void *pixels); GLAPI void APIENTRY glGetnTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); GLAPI void APIENTRY glGetnUniformdv (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); GLAPI void APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); GLAPI void APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); GLAPI void APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); GLAPI void APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GLAPI void APIENTRY glGetnMapdv (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); GLAPI void APIENTRY glGetnMapfv (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); GLAPI void APIENTRY glGetnMapiv (GLenum target, GLenum query, GLsizei bufSize, GLint *v); GLAPI void APIENTRY glGetnPixelMapfv (GLenum map, GLsizei bufSize, GLfloat *values); GLAPI void APIENTRY glGetnPixelMapuiv (GLenum map, GLsizei bufSize, GLuint *values); GLAPI void APIENTRY glGetnPixelMapusv (GLenum map, GLsizei bufSize, GLushort *values); GLAPI void APIENTRY glGetnPolygonStipple (GLsizei bufSize, GLubyte *pattern); GLAPI void APIENTRY glGetnColorTable (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); GLAPI void APIENTRY glGetnConvolutionFilter (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); GLAPI void APIENTRY glGetnSeparableFilter (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); GLAPI void APIENTRY glGetnHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); GLAPI void APIENTRY glGetnMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); GLAPI void APIENTRY glTextureBarrier (void); #endif # 2825 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_5 */ # 2826 "../mesa/include/GL/glext.h" #ifndef GL_VERSION_4_6 #define GL_VERSION_4_6 1 #define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 #define GL_SPIR_V_BINARY 0x9552 #define GL_PARAMETER_BUFFER 0x80EE #define GL_PARAMETER_BUFFER_BINDING 0x80EF #define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 #define GL_VERTICES_SUBMITTED 0x82EE #define GL_PRIMITIVES_SUBMITTED 0x82EF #define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 #define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 #define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 #define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 #define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 #define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 #define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 #define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 #define GL_POLYGON_OFFSET_CLAMP 0x8E1B #define GL_SPIR_V_EXTENSIONS 0x9553 #define GL_NUM_SPIR_V_EXTENSIONS 0x9554 #define GL_TEXTURE_MAX_ANISOTROPY 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF #define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC #define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); GLAPI void APIENTRY glMultiDrawArraysIndirectCount (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); GLAPI void APIENTRY glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); GLAPI void APIENTRY glPolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp); #endif # 2861 "../mesa/include/GL/glext.h" #endif /* GL_VERSION_4_6 */ # 2862 "../mesa/include/GL/glext.h" #ifndef GL_ARB_ES2_compatibility #define GL_ARB_ES2_compatibility 1 #endif /* GL_ARB_ES2_compatibility */ # 2866 "../mesa/include/GL/glext.h" #ifndef GL_ARB_ES3_1_compatibility #define GL_ARB_ES3_1_compatibility 1 #endif /* GL_ARB_ES3_1_compatibility */ # 2870 "../mesa/include/GL/glext.h" #ifndef GL_ARB_ES3_2_compatibility #define GL_ARB_ES3_2_compatibility 1 #define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE #define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 #define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 typedef void (APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXARBPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPrimitiveBoundingBoxARB (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); #endif # 2880 "../mesa/include/GL/glext.h" #endif /* GL_ARB_ES3_2_compatibility */ # 2881 "../mesa/include/GL/glext.h" #ifndef GL_ARB_ES3_compatibility #define GL_ARB_ES3_compatibility 1 #endif /* GL_ARB_ES3_compatibility */ # 2885 "../mesa/include/GL/glext.h" #ifndef GL_ARB_arrays_of_arrays #define GL_ARB_arrays_of_arrays 1 #endif /* GL_ARB_arrays_of_arrays */ # 2889 "../mesa/include/GL/glext.h" #ifndef GL_ARB_base_instance #define GL_ARB_base_instance 1 #endif /* GL_ARB_base_instance */ # 2893 "../mesa/include/GL/glext.h" #ifndef GL_ARB_bindless_texture #define GL_ARB_bindless_texture 1 typedef khronos_uint64_t GLuint64EXT; #define GL_UNSIGNED_INT64_ARB 0x140F typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLEARBPROC) (GLuint texture); typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEARBPROC) (GLuint texture, GLuint sampler); typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) (GLuint64 handle); typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLEARBPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle, GLenum access); typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) (GLuint64 handle); typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64ARBPROC) (GLint location, GLuint64 value); typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) (GLuint program, GLint location, GLuint64 value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTARBPROC) (GLuint64 handle); typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTARBPROC) (GLuint64 handle); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64ARBPROC) (GLuint index, GLuint64EXT x); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VARBPROC) (GLuint index, const GLuint64EXT *v); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VARBPROC) (GLuint index, GLenum pname, GLuint64EXT *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLuint64 APIENTRY glGetTextureHandleARB (GLuint texture); GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleARB (GLuint texture, GLuint sampler); GLAPI void APIENTRY glMakeTextureHandleResidentARB (GLuint64 handle); GLAPI void APIENTRY glMakeTextureHandleNonResidentARB (GLuint64 handle); GLAPI GLuint64 APIENTRY glGetImageHandleARB (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); GLAPI void APIENTRY glMakeImageHandleResidentARB (GLuint64 handle, GLenum access); GLAPI void APIENTRY glMakeImageHandleNonResidentARB (GLuint64 handle); GLAPI void APIENTRY glUniformHandleui64ARB (GLint location, GLuint64 value); GLAPI void APIENTRY glUniformHandleui64vARB (GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glProgramUniformHandleui64ARB (GLuint program, GLint location, GLuint64 value); GLAPI void APIENTRY glProgramUniformHandleui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *values); GLAPI GLboolean APIENTRY glIsTextureHandleResidentARB (GLuint64 handle); GLAPI GLboolean APIENTRY glIsImageHandleResidentARB (GLuint64 handle); GLAPI void APIENTRY glVertexAttribL1ui64ARB (GLuint index, GLuint64EXT x); GLAPI void APIENTRY glVertexAttribL1ui64vARB (GLuint index, const GLuint64EXT *v); GLAPI void APIENTRY glGetVertexAttribLui64vARB (GLuint index, GLenum pname, GLuint64EXT *params); #endif # 2932 "../mesa/include/GL/glext.h" #endif /* GL_ARB_bindless_texture */ # 2933 "../mesa/include/GL/glext.h" #ifndef GL_ARB_blend_func_extended #define GL_ARB_blend_func_extended 1 #endif /* GL_ARB_blend_func_extended */ # 2937 "../mesa/include/GL/glext.h" #ifndef GL_ARB_buffer_storage #define GL_ARB_buffer_storage 1 #endif /* GL_ARB_buffer_storage */ # 2941 "../mesa/include/GL/glext.h" #ifndef GL_ARB_cl_event #define GL_ARB_cl_event 1 struct _cl_context; struct _cl_event; #define GL_SYNC_CL_EVENT_ARB 0x8240 #define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context *context, struct _cl_event *event, GLbitfield flags); #endif # 2952 "../mesa/include/GL/glext.h" #endif /* GL_ARB_cl_event */ # 2953 "../mesa/include/GL/glext.h" #ifndef GL_ARB_clear_buffer_object #define GL_ARB_clear_buffer_object 1 #endif /* GL_ARB_clear_buffer_object */ # 2957 "../mesa/include/GL/glext.h" #ifndef GL_ARB_clear_texture #define GL_ARB_clear_texture 1 #endif /* GL_ARB_clear_texture */ # 2961 "../mesa/include/GL/glext.h" #ifndef GL_ARB_clip_control #define GL_ARB_clip_control 1 #endif /* GL_ARB_clip_control */ # 2965 "../mesa/include/GL/glext.h" #ifndef GL_ARB_color_buffer_float #define GL_ARB_color_buffer_float 1 #define GL_RGBA_FLOAT_MODE_ARB 0x8820 #define GL_CLAMP_VERTEX_COLOR_ARB 0x891A #define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B #define GL_CLAMP_READ_COLOR_ARB 0x891C #define GL_FIXED_ONLY_ARB 0x891D typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); #endif # 2977 "../mesa/include/GL/glext.h" #endif /* GL_ARB_color_buffer_float */ # 2978 "../mesa/include/GL/glext.h" #ifndef GL_ARB_compatibility #define GL_ARB_compatibility 1 #endif /* GL_ARB_compatibility */ # 2982 "../mesa/include/GL/glext.h" #ifndef GL_ARB_compressed_texture_pixel_storage #define GL_ARB_compressed_texture_pixel_storage 1 #endif /* GL_ARB_compressed_texture_pixel_storage */ # 2986 "../mesa/include/GL/glext.h" #ifndef GL_ARB_compute_shader #define GL_ARB_compute_shader 1 #endif /* GL_ARB_compute_shader */ # 2990 "../mesa/include/GL/glext.h" #ifndef GL_ARB_compute_variable_group_size #define GL_ARB_compute_variable_group_size 1 #define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 #define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB #define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 #define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDispatchComputeGroupSizeARB (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); #endif # 3001 "../mesa/include/GL/glext.h" #endif /* GL_ARB_compute_variable_group_size */ # 3002 "../mesa/include/GL/glext.h" #ifndef GL_ARB_conditional_render_inverted #define GL_ARB_conditional_render_inverted 1 #endif /* GL_ARB_conditional_render_inverted */ # 3006 "../mesa/include/GL/glext.h" #ifndef GL_ARB_conservative_depth #define GL_ARB_conservative_depth 1 #endif /* GL_ARB_conservative_depth */ # 3010 "../mesa/include/GL/glext.h" #ifndef GL_ARB_copy_buffer #define GL_ARB_copy_buffer 1 #endif /* GL_ARB_copy_buffer */ # 3014 "../mesa/include/GL/glext.h" #ifndef GL_ARB_copy_image #define GL_ARB_copy_image 1 #endif /* GL_ARB_copy_image */ # 3018 "../mesa/include/GL/glext.h" #ifndef GL_ARB_cull_distance #define GL_ARB_cull_distance 1 #endif /* GL_ARB_cull_distance */ # 3022 "../mesa/include/GL/glext.h" #ifndef GL_ARB_debug_output #define GL_ARB_debug_output 1 typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); #define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 #define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 #define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 #define GL_DEBUG_SOURCE_API_ARB 0x8246 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 #define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 #define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 #define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A #define GL_DEBUG_SOURCE_OTHER_ARB 0x824B #define GL_DEBUG_TYPE_ERROR_ARB 0x824C #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E #define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F #define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 #define GL_DEBUG_TYPE_OTHER_ARB 0x8251 #define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 #define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 #define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 #define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 #define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 #define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const void *userParam); typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam); GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); #endif # 3058 "../mesa/include/GL/glext.h" #endif /* GL_ARB_debug_output */ # 3059 "../mesa/include/GL/glext.h" #ifndef GL_ARB_depth_buffer_float #define GL_ARB_depth_buffer_float 1 #endif /* GL_ARB_depth_buffer_float */ # 3063 "../mesa/include/GL/glext.h" #ifndef GL_ARB_depth_clamp #define GL_ARB_depth_clamp 1 #endif /* GL_ARB_depth_clamp */ # 3067 "../mesa/include/GL/glext.h" #ifndef GL_ARB_depth_texture #define GL_ARB_depth_texture 1 #define GL_DEPTH_COMPONENT16_ARB 0x81A5 #define GL_DEPTH_COMPONENT24_ARB 0x81A6 #define GL_DEPTH_COMPONENT32_ARB 0x81A7 #define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A #define GL_DEPTH_TEXTURE_MODE_ARB 0x884B #endif /* GL_ARB_depth_texture */ # 3076 "../mesa/include/GL/glext.h" #ifndef GL_ARB_derivative_control #define GL_ARB_derivative_control 1 #endif /* GL_ARB_derivative_control */ # 3080 "../mesa/include/GL/glext.h" #ifndef GL_ARB_direct_state_access #define GL_ARB_direct_state_access 1 #endif /* GL_ARB_direct_state_access */ # 3084 "../mesa/include/GL/glext.h" #ifndef GL_ARB_draw_buffers #define GL_ARB_draw_buffers 1 #define GL_MAX_DRAW_BUFFERS_ARB 0x8824 #define GL_DRAW_BUFFER0_ARB 0x8825 #define GL_DRAW_BUFFER1_ARB 0x8826 #define GL_DRAW_BUFFER2_ARB 0x8827 #define GL_DRAW_BUFFER3_ARB 0x8828 #define GL_DRAW_BUFFER4_ARB 0x8829 #define GL_DRAW_BUFFER5_ARB 0x882A #define GL_DRAW_BUFFER6_ARB 0x882B #define GL_DRAW_BUFFER7_ARB 0x882C #define GL_DRAW_BUFFER8_ARB 0x882D #define GL_DRAW_BUFFER9_ARB 0x882E #define GL_DRAW_BUFFER10_ARB 0x882F #define GL_DRAW_BUFFER11_ARB 0x8830 #define GL_DRAW_BUFFER12_ARB 0x8831 #define GL_DRAW_BUFFER13_ARB 0x8832 #define GL_DRAW_BUFFER14_ARB 0x8833 #define GL_DRAW_BUFFER15_ARB 0x8834 typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); #endif # 3108 "../mesa/include/GL/glext.h" #endif /* GL_ARB_draw_buffers */ # 3109 "../mesa/include/GL/glext.h" #ifndef GL_ARB_draw_buffers_blend #define GL_ARB_draw_buffers_blend 1 typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #endif # 3122 "../mesa/include/GL/glext.h" #endif /* GL_ARB_draw_buffers_blend */ # 3123 "../mesa/include/GL/glext.h" #ifndef GL_ARB_draw_elements_base_vertex #define GL_ARB_draw_elements_base_vertex 1 #endif /* GL_ARB_draw_elements_base_vertex */ # 3127 "../mesa/include/GL/glext.h" #ifndef GL_ARB_draw_indirect #define GL_ARB_draw_indirect 1 #endif /* GL_ARB_draw_indirect */ # 3131 "../mesa/include/GL/glext.h" #ifndef GL_ARB_draw_instanced #define GL_ARB_draw_instanced 1 typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #endif # 3140 "../mesa/include/GL/glext.h" #endif /* GL_ARB_draw_instanced */ # 3141 "../mesa/include/GL/glext.h" #ifndef GL_ARB_enhanced_layouts #define GL_ARB_enhanced_layouts 1 #endif /* GL_ARB_enhanced_layouts */ # 3145 "../mesa/include/GL/glext.h" #ifndef GL_ARB_explicit_attrib_location #define GL_ARB_explicit_attrib_location 1 #endif /* GL_ARB_explicit_attrib_location */ # 3149 "../mesa/include/GL/glext.h" #ifndef GL_ARB_explicit_uniform_location #define GL_ARB_explicit_uniform_location 1 #endif /* GL_ARB_explicit_uniform_location */ # 3153 "../mesa/include/GL/glext.h" #ifndef GL_ARB_fragment_coord_conventions #define GL_ARB_fragment_coord_conventions 1 #endif /* GL_ARB_fragment_coord_conventions */ # 3157 "../mesa/include/GL/glext.h" #ifndef GL_ARB_fragment_layer_viewport #define GL_ARB_fragment_layer_viewport 1 #endif /* GL_ARB_fragment_layer_viewport */ # 3161 "../mesa/include/GL/glext.h" #ifndef GL_ARB_fragment_program #define GL_ARB_fragment_program 1 #define GL_FRAGMENT_PROGRAM_ARB 0x8804 #define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 #define GL_PROGRAM_LENGTH_ARB 0x8627 #define GL_PROGRAM_FORMAT_ARB 0x8876 #define GL_PROGRAM_BINDING_ARB 0x8677 #define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 #define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 #define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 #define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 #define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 #define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 #define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 #define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 #define GL_PROGRAM_PARAMETERS_ARB 0x88A8 #define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 #define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA #define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB #define GL_PROGRAM_ATTRIBS_ARB 0x88AC #define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD #define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE #define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF #define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 #define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 #define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 #define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 #define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 #define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 #define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 #define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 #define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A #define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B #define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C #define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D #define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E #define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F #define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 #define GL_PROGRAM_STRING_ARB 0x8628 #define GL_PROGRAM_ERROR_POSITION_ARB 0x864B #define GL_CURRENT_MATRIX_ARB 0x8641 #define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 #define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 #define GL_MAX_PROGRAM_MATRICES_ARB 0x862F #define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E #define GL_MAX_TEXTURE_COORDS_ARB 0x8871 #define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 #define GL_PROGRAM_ERROR_STRING_ARB 0x8874 #define GL_MATRIX0_ARB 0x88C0 #define GL_MATRIX1_ARB 0x88C1 #define GL_MATRIX2_ARB 0x88C2 #define GL_MATRIX3_ARB 0x88C3 #define GL_MATRIX4_ARB 0x88C4 #define GL_MATRIX5_ARB 0x88C5 #define GL_MATRIX6_ARB 0x88C6 #define GL_MATRIX7_ARB 0x88C7 #define GL_MATRIX8_ARB 0x88C8 #define GL_MATRIX9_ARB 0x88C9 #define GL_MATRIX10_ARB 0x88CA #define GL_MATRIX11_ARB 0x88CB #define GL_MATRIX12_ARB 0x88CC #define GL_MATRIX13_ARB 0x88CD #define GL_MATRIX14_ARB 0x88CE #define GL_MATRIX15_ARB 0x88CF #define GL_MATRIX16_ARB 0x88D0 #define GL_MATRIX17_ARB 0x88D1 #define GL_MATRIX18_ARB 0x88D2 #define GL_MATRIX19_ARB 0x88D3 #define GL_MATRIX20_ARB 0x88D4 #define GL_MATRIX21_ARB 0x88D5 #define GL_MATRIX22_ARB 0x88D6 #define GL_MATRIX23_ARB 0x88D7 #define GL_MATRIX24_ARB 0x88D8 #define GL_MATRIX25_ARB 0x88D9 #define GL_MATRIX26_ARB 0x88DA #define GL_MATRIX27_ARB 0x88DB #define GL_MATRIX28_ARB 0x88DC #define GL_MATRIX29_ARB 0x88DD #define GL_MATRIX30_ARB 0x88DE #define GL_MATRIX31_ARB 0x88DF typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string); typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const void *string); GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, void *string); GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); #endif # 3282 "../mesa/include/GL/glext.h" #endif /* GL_ARB_fragment_program */ # 3283 "../mesa/include/GL/glext.h" #ifndef GL_ARB_fragment_program_shadow #define GL_ARB_fragment_program_shadow 1 #endif /* GL_ARB_fragment_program_shadow */ # 3287 "../mesa/include/GL/glext.h" #ifndef GL_ARB_fragment_shader #define GL_ARB_fragment_shader 1 #define GL_FRAGMENT_SHADER_ARB 0x8B30 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B #endif /* GL_ARB_fragment_shader */ # 3294 "../mesa/include/GL/glext.h" #ifndef GL_ARB_fragment_shader_interlock #define GL_ARB_fragment_shader_interlock 1 #endif /* GL_ARB_fragment_shader_interlock */ # 3298 "../mesa/include/GL/glext.h" #ifndef GL_ARB_framebuffer_no_attachments #define GL_ARB_framebuffer_no_attachments 1 #endif /* GL_ARB_framebuffer_no_attachments */ # 3302 "../mesa/include/GL/glext.h" #ifndef GL_ARB_framebuffer_object #define GL_ARB_framebuffer_object 1 #endif /* GL_ARB_framebuffer_object */ # 3306 "../mesa/include/GL/glext.h" #ifndef GL_ARB_framebuffer_sRGB #define GL_ARB_framebuffer_sRGB 1 #endif /* GL_ARB_framebuffer_sRGB */ # 3310 "../mesa/include/GL/glext.h" #ifndef GL_ARB_geometry_shader4 #define GL_ARB_geometry_shader4 1 #define GL_LINES_ADJACENCY_ARB 0x000A #define GL_LINE_STRIP_ADJACENCY_ARB 0x000B #define GL_TRIANGLES_ADJACENCY_ARB 0x000C #define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D #define GL_PROGRAM_POINT_SIZE_ARB 0x8642 #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 #define GL_GEOMETRY_SHADER_ARB 0x8DD9 #define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA #define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB #define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC #define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD #define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); #endif # 3341 "../mesa/include/GL/glext.h" #endif /* GL_ARB_geometry_shader4 */ # 3342 "../mesa/include/GL/glext.h" #ifndef GL_ARB_get_program_binary #define GL_ARB_get_program_binary 1 #endif /* GL_ARB_get_program_binary */ # 3346 "../mesa/include/GL/glext.h" #ifndef GL_ARB_get_texture_sub_image #define GL_ARB_get_texture_sub_image 1 #endif /* GL_ARB_get_texture_sub_image */ # 3350 "../mesa/include/GL/glext.h" #ifndef GL_ARB_gl_spirv #define GL_ARB_gl_spirv 1 #define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 #define GL_SPIR_V_BINARY_ARB 0x9552 typedef void (APIENTRYP PFNGLSPECIALIZESHADERARBPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSpecializeShaderARB (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); #endif # 3359 "../mesa/include/GL/glext.h" #endif /* GL_ARB_gl_spirv */ # 3360 "../mesa/include/GL/glext.h" #ifndef GL_ARB_gpu_shader5 #define GL_ARB_gpu_shader5 1 #endif /* GL_ARB_gpu_shader5 */ # 3364 "../mesa/include/GL/glext.h" #ifndef GL_ARB_gpu_shader_fp64 #define GL_ARB_gpu_shader_fp64 1 #endif /* GL_ARB_gpu_shader_fp64 */ # 3368 "../mesa/include/GL/glext.h" #ifndef GL_ARB_gpu_shader_int64 #define GL_ARB_gpu_shader_int64 1 #define GL_INT64_ARB 0x140E #define GL_INT64_VEC2_ARB 0x8FE9 #define GL_INT64_VEC3_ARB 0x8FEA #define GL_INT64_VEC4_ARB 0x8FEB #define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5 #define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6 #define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7 typedef void (APIENTRYP PFNGLUNIFORM1I64ARBPROC) (GLint location, GLint64 x); typedef void (APIENTRYP PFNGLUNIFORM2I64ARBPROC) (GLint location, GLint64 x, GLint64 y); typedef void (APIENTRYP PFNGLUNIFORM3I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z); typedef void (APIENTRYP PFNGLUNIFORM4I64ARBPROC) (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); typedef void (APIENTRYP PFNGLUNIFORM1I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLUNIFORM2I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLUNIFORM3I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLUNIFORM4I64VARBPROC) (GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLUNIFORM1UI64ARBPROC) (GLint location, GLuint64 x); typedef void (APIENTRYP PFNGLUNIFORM2UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y); typedef void (APIENTRYP PFNGLUNIFORM3UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); typedef void (APIENTRYP PFNGLUNIFORM4UI64ARBPROC) (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); typedef void (APIENTRYP PFNGLUNIFORM1UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLUNIFORM2UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLUNIFORM3UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLUNIFORM4UI64VARBPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLGETUNIFORMI64VARBPROC) (GLuint program, GLint location, GLint64 *params); typedef void (APIENTRYP PFNGLGETUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLuint64 *params); typedef void (APIENTRYP PFNGLGETNUNIFORMI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); typedef void (APIENTRYP PFNGLGETNUNIFORMUI64VARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64ARBPROC) (GLuint program, GLint location, GLint64 x); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64ARBPROC) (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64ARBPROC) (GLuint program, GLint location, GLuint64 x); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64ARBPROC) (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VARBPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glUniform1i64ARB (GLint location, GLint64 x); GLAPI void APIENTRY glUniform2i64ARB (GLint location, GLint64 x, GLint64 y); GLAPI void APIENTRY glUniform3i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z); GLAPI void APIENTRY glUniform4i64ARB (GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); GLAPI void APIENTRY glUniform1i64vARB (GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glUniform2i64vARB (GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glUniform3i64vARB (GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glUniform4i64vARB (GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glUniform1ui64ARB (GLint location, GLuint64 x); GLAPI void APIENTRY glUniform2ui64ARB (GLint location, GLuint64 x, GLuint64 y); GLAPI void APIENTRY glUniform3ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z); GLAPI void APIENTRY glUniform4ui64ARB (GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); GLAPI void APIENTRY glUniform1ui64vARB (GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glUniform2ui64vARB (GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glUniform3ui64vARB (GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glUniform4ui64vARB (GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glGetUniformi64vARB (GLuint program, GLint location, GLint64 *params); GLAPI void APIENTRY glGetUniformui64vARB (GLuint program, GLint location, GLuint64 *params); GLAPI void APIENTRY glGetnUniformi64vARB (GLuint program, GLint location, GLsizei bufSize, GLint64 *params); GLAPI void APIENTRY glGetnUniformui64vARB (GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); GLAPI void APIENTRY glProgramUniform1i64ARB (GLuint program, GLint location, GLint64 x); GLAPI void APIENTRY glProgramUniform2i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y); GLAPI void APIENTRY glProgramUniform3i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); GLAPI void APIENTRY glProgramUniform4i64ARB (GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); GLAPI void APIENTRY glProgramUniform1i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glProgramUniform2i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glProgramUniform3i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glProgramUniform4i64vARB (GLuint program, GLint location, GLsizei count, const GLint64 *value); GLAPI void APIENTRY glProgramUniform1ui64ARB (GLuint program, GLint location, GLuint64 x); GLAPI void APIENTRY glProgramUniform2ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y); GLAPI void APIENTRY glProgramUniform3ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); GLAPI void APIENTRY glProgramUniform4ui64ARB (GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); GLAPI void APIENTRY glProgramUniform1ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glProgramUniform2ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glProgramUniform3ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glProgramUniform4ui64vARB (GLuint program, GLint location, GLsizei count, const GLuint64 *value); #endif # 3452 "../mesa/include/GL/glext.h" #endif /* GL_ARB_gpu_shader_int64 */ # 3453 "../mesa/include/GL/glext.h" #ifndef GL_ARB_half_float_pixel #define GL_ARB_half_float_pixel 1 typedef khronos_uint16_t GLhalfARB; #define GL_HALF_FLOAT_ARB 0x140B #endif /* GL_ARB_half_float_pixel */ # 3459 "../mesa/include/GL/glext.h" #ifndef GL_ARB_half_float_vertex #define GL_ARB_half_float_vertex 1 #endif /* GL_ARB_half_float_vertex */ # 3463 "../mesa/include/GL/glext.h" #ifndef GL_ARB_imaging #define GL_ARB_imaging 1 #define GL_CONVOLUTION_BORDER_MODE 0x8013 #define GL_CONVOLUTION_FILTER_SCALE 0x8014 #define GL_CONVOLUTION_FILTER_BIAS 0x8015 #define GL_REDUCE 0x8016 #define GL_CONVOLUTION_FORMAT 0x8017 #define GL_CONVOLUTION_WIDTH 0x8018 #define GL_CONVOLUTION_HEIGHT 0x8019 #define GL_MAX_CONVOLUTION_WIDTH 0x801A #define GL_MAX_CONVOLUTION_HEIGHT 0x801B #define GL_POST_CONVOLUTION_RED_SCALE 0x801C #define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D #define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E #define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F #define GL_POST_CONVOLUTION_RED_BIAS 0x8020 #define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 #define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 #define GL_HISTOGRAM_WIDTH 0x8026 #define GL_HISTOGRAM_FORMAT 0x8027 #define GL_HISTOGRAM_RED_SIZE 0x8028 #define GL_HISTOGRAM_GREEN_SIZE 0x8029 #define GL_HISTOGRAM_BLUE_SIZE 0x802A #define GL_HISTOGRAM_ALPHA_SIZE 0x802B #define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C #define GL_HISTOGRAM_SINK 0x802D #define GL_MINMAX_FORMAT 0x802F #define GL_MINMAX_SINK 0x8030 #define GL_TABLE_TOO_LARGE 0x8031 #define GL_COLOR_MATRIX 0x80B1 #define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 #define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 #define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 #define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 #define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 #define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 #define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA #define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB #define GL_COLOR_TABLE_SCALE 0x80D6 #define GL_COLOR_TABLE_BIAS 0x80D7 #define GL_COLOR_TABLE_FORMAT 0x80D8 #define GL_COLOR_TABLE_WIDTH 0x80D9 #define GL_COLOR_TABLE_RED_SIZE 0x80DA #define GL_COLOR_TABLE_GREEN_SIZE 0x80DB #define GL_COLOR_TABLE_BLUE_SIZE 0x80DC #define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD #define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF #define GL_CONSTANT_BORDER 0x8151 #define GL_REPLICATE_BORDER 0x8153 #define GL_CONVOLUTION_BORDER_COLOR 0x8154 typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, void *table); typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, void *image); typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, void *table); GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, void *image); GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); GLAPI void APIENTRY glResetHistogram (GLenum target); GLAPI void APIENTRY glResetMinmax (GLenum target); #endif # 3584 "../mesa/include/GL/glext.h" #endif /* GL_ARB_imaging */ # 3585 "../mesa/include/GL/glext.h" #ifndef GL_ARB_indirect_parameters #define GL_ARB_indirect_parameters 1 #define GL_PARAMETER_BUFFER_ARB 0x80EE #define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); #endif # 3596 "../mesa/include/GL/glext.h" #endif /* GL_ARB_indirect_parameters */ # 3597 "../mesa/include/GL/glext.h" #ifndef GL_ARB_instanced_arrays #define GL_ARB_instanced_arrays 1 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); #endif # 3605 "../mesa/include/GL/glext.h" #endif /* GL_ARB_instanced_arrays */ # 3606 "../mesa/include/GL/glext.h" #ifndef GL_ARB_internalformat_query #define GL_ARB_internalformat_query 1 #endif /* GL_ARB_internalformat_query */ # 3610 "../mesa/include/GL/glext.h" #ifndef GL_ARB_internalformat_query2 #define GL_ARB_internalformat_query2 1 #define GL_SRGB_DECODE_ARB 0x8299 #define GL_VIEW_CLASS_EAC_R11 0x9383 #define GL_VIEW_CLASS_EAC_RG11 0x9384 #define GL_VIEW_CLASS_ETC2_RGB 0x9385 #define GL_VIEW_CLASS_ETC2_RGBA 0x9386 #define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387 #define GL_VIEW_CLASS_ASTC_4x4_RGBA 0x9388 #define GL_VIEW_CLASS_ASTC_5x4_RGBA 0x9389 #define GL_VIEW_CLASS_ASTC_5x5_RGBA 0x938A #define GL_VIEW_CLASS_ASTC_6x5_RGBA 0x938B #define GL_VIEW_CLASS_ASTC_6x6_RGBA 0x938C #define GL_VIEW_CLASS_ASTC_8x5_RGBA 0x938D #define GL_VIEW_CLASS_ASTC_8x6_RGBA 0x938E #define GL_VIEW_CLASS_ASTC_8x8_RGBA 0x938F #define GL_VIEW_CLASS_ASTC_10x5_RGBA 0x9390 #define GL_VIEW_CLASS_ASTC_10x6_RGBA 0x9391 #define GL_VIEW_CLASS_ASTC_10x8_RGBA 0x9392 #define GL_VIEW_CLASS_ASTC_10x10_RGBA 0x9393 #define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394 #define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395 #endif /* GL_ARB_internalformat_query2 */ # 3634 "../mesa/include/GL/glext.h" #ifndef GL_ARB_invalidate_subdata #define GL_ARB_invalidate_subdata 1 #endif /* GL_ARB_invalidate_subdata */ # 3638 "../mesa/include/GL/glext.h" #ifndef GL_ARB_map_buffer_alignment #define GL_ARB_map_buffer_alignment 1 #endif /* GL_ARB_map_buffer_alignment */ # 3642 "../mesa/include/GL/glext.h" #ifndef GL_ARB_map_buffer_range #define GL_ARB_map_buffer_range 1 #endif /* GL_ARB_map_buffer_range */ # 3646 "../mesa/include/GL/glext.h" #ifndef GL_ARB_matrix_palette #define GL_ARB_matrix_palette 1 #define GL_MATRIX_PALETTE_ARB 0x8840 #define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 #define GL_MAX_PALETTE_MATRICES_ARB 0x8842 #define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 #define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 #define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 #define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 #define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 #define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 #define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); #endif # 3671 "../mesa/include/GL/glext.h" #endif /* GL_ARB_matrix_palette */ # 3672 "../mesa/include/GL/glext.h" #ifndef GL_ARB_multi_bind #define GL_ARB_multi_bind 1 #endif /* GL_ARB_multi_bind */ # 3676 "../mesa/include/GL/glext.h" #ifndef GL_ARB_multi_draw_indirect #define GL_ARB_multi_draw_indirect 1 #endif /* GL_ARB_multi_draw_indirect */ # 3680 "../mesa/include/GL/glext.h" #ifndef GL_ARB_multisample #define GL_ARB_multisample 1 #define GL_MULTISAMPLE_ARB 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E #define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F #define GL_SAMPLE_COVERAGE_ARB 0x80A0 #define GL_SAMPLE_BUFFERS_ARB 0x80A8 #define GL_SAMPLES_ARB 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA #define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB #define GL_MULTISAMPLE_BIT_ARB 0x20000000 typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLfloat value, GLboolean invert); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSampleCoverageARB (GLfloat value, GLboolean invert); #endif # 3696 "../mesa/include/GL/glext.h" #endif /* GL_ARB_multisample */ # 3697 "../mesa/include/GL/glext.h" #ifndef GL_ARB_multitexture #define GL_ARB_multitexture 1 #define GL_TEXTURE0_ARB 0x84C0 #define GL_TEXTURE1_ARB 0x84C1 #define GL_TEXTURE2_ARB 0x84C2 #define GL_TEXTURE3_ARB 0x84C3 #define GL_TEXTURE4_ARB 0x84C4 #define GL_TEXTURE5_ARB 0x84C5 #define GL_TEXTURE6_ARB 0x84C6 #define GL_TEXTURE7_ARB 0x84C7 #define GL_TEXTURE8_ARB 0x84C8 #define GL_TEXTURE9_ARB 0x84C9 #define GL_TEXTURE10_ARB 0x84CA #define GL_TEXTURE11_ARB 0x84CB #define GL_TEXTURE12_ARB 0x84CC #define GL_TEXTURE13_ARB 0x84CD #define GL_TEXTURE14_ARB 0x84CE #define GL_TEXTURE15_ARB 0x84CF #define GL_TEXTURE16_ARB 0x84D0 #define GL_TEXTURE17_ARB 0x84D1 #define GL_TEXTURE18_ARB 0x84D2 #define GL_TEXTURE19_ARB 0x84D3 #define GL_TEXTURE20_ARB 0x84D4 #define GL_TEXTURE21_ARB 0x84D5 #define GL_TEXTURE22_ARB 0x84D6 #define GL_TEXTURE23_ARB 0x84D7 #define GL_TEXTURE24_ARB 0x84D8 #define GL_TEXTURE25_ARB 0x84D9 #define GL_TEXTURE26_ARB 0x84DA #define GL_TEXTURE27_ARB 0x84DB #define GL_TEXTURE28_ARB 0x84DC #define GL_TEXTURE29_ARB 0x84DD #define GL_TEXTURE30_ARB 0x84DE #define GL_TEXTURE31_ARB 0x84DF #define GL_ACTIVE_TEXTURE_ARB 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glActiveTextureARB (GLenum texture); GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); #endif # 3805 "../mesa/include/GL/glext.h" #endif /* GL_ARB_multitexture */ # 3806 "../mesa/include/GL/glext.h" #ifndef GL_ARB_occlusion_query #define GL_ARB_occlusion_query 1 #define GL_QUERY_COUNTER_BITS_ARB 0x8864 #define GL_CURRENT_QUERY_ARB 0x8865 #define GL_QUERY_RESULT_ARB 0x8866 #define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 #define GL_SAMPLES_PASSED_ARB 0x8914 typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); GLAPI void APIENTRY glEndQueryARB (GLenum target); GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); #endif # 3832 "../mesa/include/GL/glext.h" #endif /* GL_ARB_occlusion_query */ # 3833 "../mesa/include/GL/glext.h" #ifndef GL_ARB_occlusion_query2 #define GL_ARB_occlusion_query2 1 #endif /* GL_ARB_occlusion_query2 */ # 3837 "../mesa/include/GL/glext.h" #ifndef GL_ARB_parallel_shader_compile #define GL_ARB_parallel_shader_compile 1 #define GL_MAX_SHADER_COMPILER_THREADS_ARB 0x91B0 #define GL_COMPLETION_STATUS_ARB 0x91B1 typedef void (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSARBPROC) (GLuint count); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMaxShaderCompilerThreadsARB (GLuint count); #endif # 3846 "../mesa/include/GL/glext.h" #endif /* GL_ARB_parallel_shader_compile */ # 3847 "../mesa/include/GL/glext.h" #ifndef GL_ARB_pipeline_statistics_query #define GL_ARB_pipeline_statistics_query 1 #define GL_VERTICES_SUBMITTED_ARB 0x82EE #define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF #define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 #define GL_TESS_CONTROL_SHADER_PATCHES_ARB 0x82F1 #define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB 0x82F2 #define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 0x82F3 #define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 0x82F4 #define GL_COMPUTE_SHADER_INVOCATIONS_ARB 0x82F5 #define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 #define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 #endif /* GL_ARB_pipeline_statistics_query */ # 3861 "../mesa/include/GL/glext.h" #ifndef GL_ARB_pixel_buffer_object #define GL_ARB_pixel_buffer_object 1 #define GL_PIXEL_PACK_BUFFER_ARB 0x88EB #define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF #endif /* GL_ARB_pixel_buffer_object */ # 3869 "../mesa/include/GL/glext.h" #ifndef GL_ARB_point_parameters #define GL_ARB_point_parameters 1 #define GL_POINT_SIZE_MIN_ARB 0x8126 #define GL_POINT_SIZE_MAX_ARB 0x8127 #define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 #define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); #endif # 3882 "../mesa/include/GL/glext.h" #endif /* GL_ARB_point_parameters */ # 3883 "../mesa/include/GL/glext.h" #ifndef GL_ARB_point_sprite #define GL_ARB_point_sprite 1 #define GL_POINT_SPRITE_ARB 0x8861 #define GL_COORD_REPLACE_ARB 0x8862 #endif /* GL_ARB_point_sprite */ # 3889 "../mesa/include/GL/glext.h" #ifndef GL_ARB_polygon_offset_clamp #define GL_ARB_polygon_offset_clamp 1 #endif /* GL_ARB_polygon_offset_clamp */ # 3893 "../mesa/include/GL/glext.h" #ifndef GL_ARB_post_depth_coverage #define GL_ARB_post_depth_coverage 1 #endif /* GL_ARB_post_depth_coverage */ # 3897 "../mesa/include/GL/glext.h" #ifndef GL_ARB_program_interface_query #define GL_ARB_program_interface_query 1 #endif /* GL_ARB_program_interface_query */ # 3901 "../mesa/include/GL/glext.h" #ifndef GL_ARB_provoking_vertex #define GL_ARB_provoking_vertex 1 #endif /* GL_ARB_provoking_vertex */ # 3905 "../mesa/include/GL/glext.h" #ifndef GL_ARB_query_buffer_object #define GL_ARB_query_buffer_object 1 #endif /* GL_ARB_query_buffer_object */ # 3909 "../mesa/include/GL/glext.h" #ifndef GL_ARB_robust_buffer_access_behavior #define GL_ARB_robust_buffer_access_behavior 1 #endif /* GL_ARB_robust_buffer_access_behavior */ # 3913 "../mesa/include/GL/glext.h" #ifndef GL_ARB_robustness #define GL_ARB_robustness 1 #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 #define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 #define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 #define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 #define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 #define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 #define GL_NO_RESET_NOTIFICATION_ARB 0x8261 typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void *img); typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *img); GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void *img); GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); #endif # 3965 "../mesa/include/GL/glext.h" #endif /* GL_ARB_robustness */ # 3966 "../mesa/include/GL/glext.h" #ifndef GL_ARB_robustness_isolation #define GL_ARB_robustness_isolation 1 #endif /* GL_ARB_robustness_isolation */ # 3970 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sample_locations #define GL_ARB_sample_locations 1 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340 #define GL_SAMPLE_LOCATION_ARB 0x8E50 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343 typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLEVALUATEDEPTHVALUESARBPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferSampleLocationsfvARB (GLenum target, GLuint start, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvARB (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glEvaluateDepthValuesARB (void); #endif # 3989 "../mesa/include/GL/glext.h" #endif /* GL_ARB_sample_locations */ # 3990 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sample_shading #define GL_ARB_sample_shading 1 #define GL_SAMPLE_SHADING_ARB 0x8C36 #define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLfloat value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value); #endif # 3999 "../mesa/include/GL/glext.h" #endif /* GL_ARB_sample_shading */ # 4000 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sampler_objects #define GL_ARB_sampler_objects 1 #endif /* GL_ARB_sampler_objects */ # 4004 "../mesa/include/GL/glext.h" #ifndef GL_ARB_seamless_cube_map #define GL_ARB_seamless_cube_map 1 #endif /* GL_ARB_seamless_cube_map */ # 4008 "../mesa/include/GL/glext.h" #ifndef GL_ARB_seamless_cubemap_per_texture #define GL_ARB_seamless_cubemap_per_texture 1 #endif /* GL_ARB_seamless_cubemap_per_texture */ # 4012 "../mesa/include/GL/glext.h" #ifndef GL_ARB_separate_shader_objects #define GL_ARB_separate_shader_objects 1 #endif /* GL_ARB_separate_shader_objects */ # 4016 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_atomic_counter_ops #define GL_ARB_shader_atomic_counter_ops 1 #endif /* GL_ARB_shader_atomic_counter_ops */ # 4020 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_atomic_counters #define GL_ARB_shader_atomic_counters 1 #endif /* GL_ARB_shader_atomic_counters */ # 4024 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_ballot #define GL_ARB_shader_ballot 1 #endif /* GL_ARB_shader_ballot */ # 4028 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_bit_encoding #define GL_ARB_shader_bit_encoding 1 #endif /* GL_ARB_shader_bit_encoding */ # 4032 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_clock #define GL_ARB_shader_clock 1 #endif /* GL_ARB_shader_clock */ # 4036 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_draw_parameters #define GL_ARB_shader_draw_parameters 1 #endif /* GL_ARB_shader_draw_parameters */ # 4040 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_group_vote #define GL_ARB_shader_group_vote 1 #endif /* GL_ARB_shader_group_vote */ # 4044 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_image_load_store #define GL_ARB_shader_image_load_store 1 #endif /* GL_ARB_shader_image_load_store */ # 4048 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_image_size #define GL_ARB_shader_image_size 1 #endif /* GL_ARB_shader_image_size */ # 4052 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_objects #define GL_ARB_shader_objects 1 #ifdef __APPLE__ #ifdef BUILDING_MESA /* Avoid uint <-> void* warnings */ typedef unsigned long GLhandleARB; #else # 4060 "../mesa/include/GL/glext.h" typedef void *GLhandleARB; #endif # 4062 "../mesa/include/GL/glext.h" #else # 4063 "../mesa/include/GL/glext.h" typedef unsigned int GLhandleARB; #endif # 4065 "../mesa/include/GL/glext.h" typedef char GLcharARB; #define GL_PROGRAM_OBJECT_ARB 0x8B40 #define GL_SHADER_OBJECT_ARB 0x8B48 #define GL_OBJECT_TYPE_ARB 0x8B4E #define GL_OBJECT_SUBTYPE_ARB 0x8B4F #define GL_FLOAT_VEC2_ARB 0x8B50 #define GL_FLOAT_VEC3_ARB 0x8B51 #define GL_FLOAT_VEC4_ARB 0x8B52 #define GL_INT_VEC2_ARB 0x8B53 #define GL_INT_VEC3_ARB 0x8B54 #define GL_INT_VEC4_ARB 0x8B55 #define GL_BOOL_ARB 0x8B56 #define GL_BOOL_VEC2_ARB 0x8B57 #define GL_BOOL_VEC3_ARB 0x8B58 #define GL_BOOL_VEC4_ARB 0x8B59 #define GL_FLOAT_MAT2_ARB 0x8B5A #define GL_FLOAT_MAT3_ARB 0x8B5B #define GL_FLOAT_MAT4_ARB 0x8B5C #define GL_SAMPLER_1D_ARB 0x8B5D #define GL_SAMPLER_2D_ARB 0x8B5E #define GL_SAMPLER_3D_ARB 0x8B5F #define GL_SAMPLER_CUBE_ARB 0x8B60 #define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 #define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 #define GL_SAMPLER_2D_RECT_ARB 0x8B63 #define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 #define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 #define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 #define GL_OBJECT_LINK_STATUS_ARB 0x8B82 #define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 #define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 #define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 #define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 #define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 #define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length); GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); #endif # 4180 "../mesa/include/GL/glext.h" #endif /* GL_ARB_shader_objects */ # 4181 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_precision #define GL_ARB_shader_precision 1 #endif /* GL_ARB_shader_precision */ # 4185 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_stencil_export #define GL_ARB_shader_stencil_export 1 #endif /* GL_ARB_shader_stencil_export */ # 4189 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_storage_buffer_object #define GL_ARB_shader_storage_buffer_object 1 #endif /* GL_ARB_shader_storage_buffer_object */ # 4193 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_subroutine #define GL_ARB_shader_subroutine 1 #endif /* GL_ARB_shader_subroutine */ # 4197 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_texture_image_samples #define GL_ARB_shader_texture_image_samples 1 #endif /* GL_ARB_shader_texture_image_samples */ # 4201 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_texture_lod #define GL_ARB_shader_texture_lod 1 #endif /* GL_ARB_shader_texture_lod */ # 4205 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shader_viewport_layer_array #define GL_ARB_shader_viewport_layer_array 1 #endif /* GL_ARB_shader_viewport_layer_array */ # 4209 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shading_language_100 #define GL_ARB_shading_language_100 1 #define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C #endif /* GL_ARB_shading_language_100 */ # 4214 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shading_language_420pack #define GL_ARB_shading_language_420pack 1 #endif /* GL_ARB_shading_language_420pack */ # 4218 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shading_language_include #define GL_ARB_shading_language_include 1 #define GL_SHADER_INCLUDE_ARB 0x8DAE #define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 #define GL_NAMED_STRING_TYPE_ARB 0x8DEA typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar *const*path, const GLint *length); GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); #endif # 4238 "../mesa/include/GL/glext.h" #endif /* GL_ARB_shading_language_include */ # 4239 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shading_language_packing #define GL_ARB_shading_language_packing 1 #endif /* GL_ARB_shading_language_packing */ # 4243 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shadow #define GL_ARB_shadow 1 #define GL_TEXTURE_COMPARE_MODE_ARB 0x884C #define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D #define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E #endif /* GL_ARB_shadow */ # 4250 "../mesa/include/GL/glext.h" #ifndef GL_ARB_shadow_ambient #define GL_ARB_shadow_ambient 1 #define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF #endif /* GL_ARB_shadow_ambient */ # 4255 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sparse_buffer #define GL_ARB_sparse_buffer 1 #define GL_SPARSE_STORAGE_BIT_ARB 0x0400 #define GL_SPARSE_BUFFER_PAGE_SIZE_ARB 0x82F8 typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBufferPageCommitmentARB (GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); GLAPI void APIENTRY glNamedBufferPageCommitmentEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); GLAPI void APIENTRY glNamedBufferPageCommitmentARB (GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); #endif # 4268 "../mesa/include/GL/glext.h" #endif /* GL_ARB_sparse_buffer */ # 4269 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sparse_texture #define GL_ARB_sparse_texture 1 #define GL_TEXTURE_SPARSE_ARB 0x91A6 #define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB 0x91A7 #define GL_NUM_SPARSE_LEVELS_ARB 0x91AA #define GL_NUM_VIRTUAL_PAGE_SIZES_ARB 0x91A8 #define GL_VIRTUAL_PAGE_SIZE_X_ARB 0x9195 #define GL_VIRTUAL_PAGE_SIZE_Y_ARB 0x9196 #define GL_VIRTUAL_PAGE_SIZE_Z_ARB 0x9197 #define GL_MAX_SPARSE_TEXTURE_SIZE_ARB 0x9198 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A #define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); #endif # 4287 "../mesa/include/GL/glext.h" #endif /* GL_ARB_sparse_texture */ # 4288 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sparse_texture2 #define GL_ARB_sparse_texture2 1 #endif /* GL_ARB_sparse_texture2 */ # 4292 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sparse_texture_clamp #define GL_ARB_sparse_texture_clamp 1 #endif /* GL_ARB_sparse_texture_clamp */ # 4296 "../mesa/include/GL/glext.h" #ifndef GL_ARB_spirv_extensions #define GL_ARB_spirv_extensions 1 #endif /* GL_ARB_spirv_extensions */ # 4300 "../mesa/include/GL/glext.h" #ifndef GL_ARB_stencil_texturing #define GL_ARB_stencil_texturing 1 #endif /* GL_ARB_stencil_texturing */ # 4304 "../mesa/include/GL/glext.h" #ifndef GL_ARB_sync #define GL_ARB_sync 1 #endif /* GL_ARB_sync */ # 4308 "../mesa/include/GL/glext.h" #ifndef GL_ARB_tessellation_shader #define GL_ARB_tessellation_shader 1 #endif /* GL_ARB_tessellation_shader */ # 4312 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_barrier #define GL_ARB_texture_barrier 1 #endif /* GL_ARB_texture_barrier */ # 4316 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_border_clamp #define GL_ARB_texture_border_clamp 1 #define GL_CLAMP_TO_BORDER_ARB 0x812D #endif /* GL_ARB_texture_border_clamp */ # 4321 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_buffer_object #define GL_ARB_texture_buffer_object 1 #define GL_TEXTURE_BUFFER_ARB 0x8C2A #define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B #define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D #define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); #endif # 4333 "../mesa/include/GL/glext.h" #endif /* GL_ARB_texture_buffer_object */ # 4334 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_buffer_object_rgb32 #define GL_ARB_texture_buffer_object_rgb32 1 #endif /* GL_ARB_texture_buffer_object_rgb32 */ # 4338 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_buffer_range #define GL_ARB_texture_buffer_range 1 #endif /* GL_ARB_texture_buffer_range */ # 4342 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_compression #define GL_ARB_texture_compression 1 #define GL_COMPRESSED_ALPHA_ARB 0x84E9 #define GL_COMPRESSED_LUMINANCE_ARB 0x84EA #define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB #define GL_COMPRESSED_INTENSITY_ARB 0x84EC #define GL_COMPRESSED_RGB_ARB 0x84ED #define GL_COMPRESSED_RGBA_ARB 0x84EE #define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 #define GL_TEXTURE_COMPRESSED_ARB 0x86A1 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void *img); #endif # 4372 "../mesa/include/GL/glext.h" #endif /* GL_ARB_texture_compression */ # 4373 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_compression_bptc #define GL_ARB_texture_compression_bptc 1 #define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F #endif /* GL_ARB_texture_compression_bptc */ # 4381 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_compression_rgtc #define GL_ARB_texture_compression_rgtc 1 #endif /* GL_ARB_texture_compression_rgtc */ # 4385 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_cube_map #define GL_ARB_texture_cube_map 1 #define GL_NORMAL_MAP_ARB 0x8511 #define GL_REFLECTION_MAP_ARB 0x8512 #define GL_TEXTURE_CUBE_MAP_ARB 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C #endif /* GL_ARB_texture_cube_map */ # 4401 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_cube_map_array #define GL_ARB_texture_cube_map_array 1 #define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A #define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B #define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F #endif /* GL_ARB_texture_cube_map_array */ # 4412 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_env_add #define GL_ARB_texture_env_add 1 #endif /* GL_ARB_texture_env_add */ # 4416 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_env_combine #define GL_ARB_texture_env_combine 1 #define GL_COMBINE_ARB 0x8570 #define GL_COMBINE_RGB_ARB 0x8571 #define GL_COMBINE_ALPHA_ARB 0x8572 #define GL_SOURCE0_RGB_ARB 0x8580 #define GL_SOURCE1_RGB_ARB 0x8581 #define GL_SOURCE2_RGB_ARB 0x8582 #define GL_SOURCE0_ALPHA_ARB 0x8588 #define GL_SOURCE1_ALPHA_ARB 0x8589 #define GL_SOURCE2_ALPHA_ARB 0x858A #define GL_OPERAND0_RGB_ARB 0x8590 #define GL_OPERAND1_RGB_ARB 0x8591 #define GL_OPERAND2_RGB_ARB 0x8592 #define GL_OPERAND0_ALPHA_ARB 0x8598 #define GL_OPERAND1_ALPHA_ARB 0x8599 #define GL_OPERAND2_ALPHA_ARB 0x859A #define GL_RGB_SCALE_ARB 0x8573 #define GL_ADD_SIGNED_ARB 0x8574 #define GL_INTERPOLATE_ARB 0x8575 #define GL_SUBTRACT_ARB 0x84E7 #define GL_CONSTANT_ARB 0x8576 #define GL_PRIMARY_COLOR_ARB 0x8577 #define GL_PREVIOUS_ARB 0x8578 #endif /* GL_ARB_texture_env_combine */ # 4442 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_env_crossbar #define GL_ARB_texture_env_crossbar 1 #endif /* GL_ARB_texture_env_crossbar */ # 4446 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_env_dot3 #define GL_ARB_texture_env_dot3 1 #define GL_DOT3_RGB_ARB 0x86AE #define GL_DOT3_RGBA_ARB 0x86AF #endif /* GL_ARB_texture_env_dot3 */ # 4452 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_filter_anisotropic #define GL_ARB_texture_filter_anisotropic 1 #endif /* GL_ARB_texture_filter_anisotropic */ # 4456 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_filter_minmax #define GL_ARB_texture_filter_minmax 1 #define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366 #define GL_WEIGHTED_AVERAGE_ARB 0x9367 #endif /* GL_ARB_texture_filter_minmax */ # 4462 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_float #define GL_ARB_texture_float 1 #define GL_TEXTURE_RED_TYPE_ARB 0x8C10 #define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 #define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 #define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 #define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 #define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 #define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 #define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 #define GL_RGBA32F_ARB 0x8814 #define GL_RGB32F_ARB 0x8815 #define GL_ALPHA32F_ARB 0x8816 #define GL_INTENSITY32F_ARB 0x8817 #define GL_LUMINANCE32F_ARB 0x8818 #define GL_LUMINANCE_ALPHA32F_ARB 0x8819 #define GL_RGBA16F_ARB 0x881A #define GL_RGB16F_ARB 0x881B #define GL_ALPHA16F_ARB 0x881C #define GL_INTENSITY16F_ARB 0x881D #define GL_LUMINANCE16F_ARB 0x881E #define GL_LUMINANCE_ALPHA16F_ARB 0x881F #endif /* GL_ARB_texture_float */ # 4486 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_gather #define GL_ARB_texture_gather 1 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F #define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F #endif /* GL_ARB_texture_gather */ # 4493 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_mirror_clamp_to_edge #define GL_ARB_texture_mirror_clamp_to_edge 1 #endif /* GL_ARB_texture_mirror_clamp_to_edge */ # 4497 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_mirrored_repeat #define GL_ARB_texture_mirrored_repeat 1 #define GL_MIRRORED_REPEAT_ARB 0x8370 #endif /* GL_ARB_texture_mirrored_repeat */ # 4502 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_multisample #define GL_ARB_texture_multisample 1 #endif /* GL_ARB_texture_multisample */ # 4506 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_non_power_of_two #define GL_ARB_texture_non_power_of_two 1 #endif /* GL_ARB_texture_non_power_of_two */ # 4510 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_query_levels #define GL_ARB_texture_query_levels 1 #endif /* GL_ARB_texture_query_levels */ # 4514 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_query_lod #define GL_ARB_texture_query_lod 1 #endif /* GL_ARB_texture_query_lod */ # 4518 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_rectangle #define GL_ARB_texture_rectangle 1 #define GL_TEXTURE_RECTANGLE_ARB 0x84F5 #define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 #define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 #endif /* GL_ARB_texture_rectangle */ # 4526 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_rg #define GL_ARB_texture_rg 1 #endif /* GL_ARB_texture_rg */ # 4530 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_rgb10_a2ui #define GL_ARB_texture_rgb10_a2ui 1 #endif /* GL_ARB_texture_rgb10_a2ui */ # 4534 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_stencil8 #define GL_ARB_texture_stencil8 1 #endif /* GL_ARB_texture_stencil8 */ # 4538 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_storage #define GL_ARB_texture_storage 1 #endif /* GL_ARB_texture_storage */ # 4542 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_storage_multisample #define GL_ARB_texture_storage_multisample 1 #endif /* GL_ARB_texture_storage_multisample */ # 4546 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_swizzle #define GL_ARB_texture_swizzle 1 #endif /* GL_ARB_texture_swizzle */ # 4550 "../mesa/include/GL/glext.h" #ifndef GL_ARB_texture_view #define GL_ARB_texture_view 1 #endif /* GL_ARB_texture_view */ # 4554 "../mesa/include/GL/glext.h" #ifndef GL_ARB_timer_query #define GL_ARB_timer_query 1 #endif /* GL_ARB_timer_query */ # 4558 "../mesa/include/GL/glext.h" #ifndef GL_ARB_transform_feedback2 #define GL_ARB_transform_feedback2 1 #endif /* GL_ARB_transform_feedback2 */ # 4562 "../mesa/include/GL/glext.h" #ifndef GL_ARB_transform_feedback3 #define GL_ARB_transform_feedback3 1 #endif /* GL_ARB_transform_feedback3 */ # 4566 "../mesa/include/GL/glext.h" #ifndef GL_ARB_transform_feedback_instanced #define GL_ARB_transform_feedback_instanced 1 #endif /* GL_ARB_transform_feedback_instanced */ # 4570 "../mesa/include/GL/glext.h" #ifndef GL_ARB_transform_feedback_overflow_query #define GL_ARB_transform_feedback_overflow_query 1 #define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB 0x82EC #define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB 0x82ED #endif /* GL_ARB_transform_feedback_overflow_query */ # 4576 "../mesa/include/GL/glext.h" #ifndef GL_ARB_transpose_matrix #define GL_ARB_transpose_matrix 1 #define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 #define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 #define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 #define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); #endif # 4593 "../mesa/include/GL/glext.h" #endif /* GL_ARB_transpose_matrix */ # 4594 "../mesa/include/GL/glext.h" #ifndef GL_ARB_uniform_buffer_object #define GL_ARB_uniform_buffer_object 1 #endif /* GL_ARB_uniform_buffer_object */ # 4598 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_array_bgra #define GL_ARB_vertex_array_bgra 1 #endif /* GL_ARB_vertex_array_bgra */ # 4602 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_array_object #define GL_ARB_vertex_array_object 1 #endif /* GL_ARB_vertex_array_object */ # 4606 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_attrib_64bit #define GL_ARB_vertex_attrib_64bit 1 #endif /* GL_ARB_vertex_attrib_64bit */ # 4610 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_attrib_binding #define GL_ARB_vertex_attrib_binding 1 #endif /* GL_ARB_vertex_attrib_binding */ # 4614 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_blend #define GL_ARB_vertex_blend 1 #define GL_MAX_VERTEX_UNITS_ARB 0x86A4 #define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 #define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 #define GL_VERTEX_BLEND_ARB 0x86A7 #define GL_CURRENT_WEIGHT_ARB 0x86A8 #define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 #define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA #define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB #define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC #define GL_WEIGHT_ARRAY_ARB 0x86AD #define GL_MODELVIEW0_ARB 0x1700 #define GL_MODELVIEW1_ARB 0x850A #define GL_MODELVIEW2_ARB 0x8722 #define GL_MODELVIEW3_ARB 0x8723 #define GL_MODELVIEW4_ARB 0x8724 #define GL_MODELVIEW5_ARB 0x8725 #define GL_MODELVIEW6_ARB 0x8726 #define GL_MODELVIEW7_ARB 0x8727 #define GL_MODELVIEW8_ARB 0x8728 #define GL_MODELVIEW9_ARB 0x8729 #define GL_MODELVIEW10_ARB 0x872A #define GL_MODELVIEW11_ARB 0x872B #define GL_MODELVIEW12_ARB 0x872C #define GL_MODELVIEW13_ARB 0x872D #define GL_MODELVIEW14_ARB 0x872E #define GL_MODELVIEW15_ARB 0x872F #define GL_MODELVIEW16_ARB 0x8730 #define GL_MODELVIEW17_ARB 0x8731 #define GL_MODELVIEW18_ARB 0x8732 #define GL_MODELVIEW19_ARB 0x8733 #define GL_MODELVIEW20_ARB 0x8734 #define GL_MODELVIEW21_ARB 0x8735 #define GL_MODELVIEW22_ARB 0x8736 #define GL_MODELVIEW23_ARB 0x8737 #define GL_MODELVIEW24_ARB 0x8738 #define GL_MODELVIEW25_ARB 0x8739 #define GL_MODELVIEW26_ARB 0x873A #define GL_MODELVIEW27_ARB 0x873B #define GL_MODELVIEW28_ARB 0x873C #define GL_MODELVIEW29_ARB 0x873D #define GL_MODELVIEW30_ARB 0x873E #define GL_MODELVIEW31_ARB 0x873F typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glVertexBlendARB (GLint count); #endif # 4681 "../mesa/include/GL/glext.h" #endif /* GL_ARB_vertex_blend */ # 4682 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_buffer_object #define GL_ARB_vertex_buffer_object 1 typedef khronos_ssize_t GLsizeiptrARB; typedef khronos_intptr_t GLintptrARB; #define GL_BUFFER_SIZE_ARB 0x8764 #define GL_BUFFER_USAGE_ARB 0x8765 #define GL_ARRAY_BUFFER_ARB 0x8892 #define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 #define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 #define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 #define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 #define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 #define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F #define GL_READ_ONLY_ARB 0x88B8 #define GL_WRITE_ONLY_ARB 0x88B9 #define GL_READ_WRITE_ARB 0x88BA #define GL_BUFFER_ACCESS_ARB 0x88BB #define GL_BUFFER_MAPPED_ARB 0x88BC #define GL_BUFFER_MAP_POINTER_ARB 0x88BD #define GL_STREAM_DRAW_ARB 0x88E0 #define GL_STREAM_READ_ARB 0x88E1 #define GL_STREAM_COPY_ARB 0x88E2 #define GL_STATIC_DRAW_ARB 0x88E4 #define GL_STATIC_READ_ARB 0x88E5 #define GL_STATIC_COPY_ARB 0x88E6 #define GL_DYNAMIC_DRAW_ARB 0x88E8 #define GL_DYNAMIC_READ_ARB 0x88E9 #define GL_DYNAMIC_COPY_ARB 0x88EA typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); typedef void *(APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage); GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data); GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data); GLAPI void *APIENTRY glMapBufferARB (GLenum target, GLenum access); GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, void **params); #endif # 4742 "../mesa/include/GL/glext.h" #endif /* GL_ARB_vertex_buffer_object */ # 4743 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_program #define GL_ARB_vertex_program 1 #define GL_COLOR_SUM_ARB 0x8458 #define GL_VERTEX_PROGRAM_ARB 0x8620 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 #define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 #define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 #define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 #define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 #define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A #define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 #define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 #define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 #define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, void **pointer); #endif # 4850 "../mesa/include/GL/glext.h" #endif /* GL_ARB_vertex_program */ # 4851 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_shader #define GL_ARB_vertex_shader 1 #define GL_VERTEX_SHADER_ARB 0x8B31 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A #define GL_MAX_VARYING_FLOATS_ARB 0x8B4B #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D #define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 #define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); #endif # 4869 "../mesa/include/GL/glext.h" #endif /* GL_ARB_vertex_shader */ # 4870 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_type_10f_11f_11f_rev #define GL_ARB_vertex_type_10f_11f_11f_rev 1 #endif /* GL_ARB_vertex_type_10f_11f_11f_rev */ # 4874 "../mesa/include/GL/glext.h" #ifndef GL_ARB_vertex_type_2_10_10_10_rev #define GL_ARB_vertex_type_2_10_10_10_rev 1 #endif /* GL_ARB_vertex_type_2_10_10_10_rev */ # 4878 "../mesa/include/GL/glext.h" #ifndef GL_ARB_viewport_array #define GL_ARB_viewport_array 1 typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYDVNVPROC) (GLuint first, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDDNVPROC) (GLuint index, GLdouble n, GLdouble f); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDepthRangeArraydvNV (GLuint first, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glDepthRangeIndexeddNV (GLuint index, GLdouble n, GLdouble f); #endif # 4887 "../mesa/include/GL/glext.h" #endif /* GL_ARB_viewport_array */ # 4888 "../mesa/include/GL/glext.h" #ifndef GL_ARB_window_pos #define GL_ARB_window_pos 1 typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); #endif # 4925 "../mesa/include/GL/glext.h" #endif /* GL_ARB_window_pos */ # 4926 "../mesa/include/GL/glext.h" #ifndef GL_KHR_blend_equation_advanced #define GL_KHR_blend_equation_advanced 1 #define GL_MULTIPLY_KHR 0x9294 #define GL_SCREEN_KHR 0x9295 #define GL_OVERLAY_KHR 0x9296 #define GL_DARKEN_KHR 0x9297 #define GL_LIGHTEN_KHR 0x9298 #define GL_COLORDODGE_KHR 0x9299 #define GL_COLORBURN_KHR 0x929A #define GL_HARDLIGHT_KHR 0x929B #define GL_SOFTLIGHT_KHR 0x929C #define GL_DIFFERENCE_KHR 0x929E #define GL_EXCLUSION_KHR 0x92A0 #define GL_HSL_HUE_KHR 0x92AD #define GL_HSL_SATURATION_KHR 0x92AE #define GL_HSL_COLOR_KHR 0x92AF #define GL_HSL_LUMINOSITY_KHR 0x92B0 typedef void (APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendBarrierKHR (void); #endif # 4948 "../mesa/include/GL/glext.h" #endif /* GL_KHR_blend_equation_advanced */ # 4949 "../mesa/include/GL/glext.h" #ifndef GL_KHR_blend_equation_advanced_coherent #define GL_KHR_blend_equation_advanced_coherent 1 #define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 #endif /* GL_KHR_blend_equation_advanced_coherent */ # 4954 "../mesa/include/GL/glext.h" #ifndef GL_KHR_context_flush_control #define GL_KHR_context_flush_control 1 #endif /* GL_KHR_context_flush_control */ # 4958 "../mesa/include/GL/glext.h" #ifndef GL_KHR_debug #define GL_KHR_debug 1 #endif /* GL_KHR_debug */ # 4962 "../mesa/include/GL/glext.h" #ifndef GL_KHR_no_error #define GL_KHR_no_error 1 #define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 #endif /* GL_KHR_no_error */ # 4967 "../mesa/include/GL/glext.h" #ifndef GL_KHR_parallel_shader_compile #define GL_KHR_parallel_shader_compile 1 #define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 #define GL_COMPLETION_STATUS_KHR 0x91B1 typedef void (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); #endif # 4976 "../mesa/include/GL/glext.h" #endif /* GL_KHR_parallel_shader_compile */ # 4977 "../mesa/include/GL/glext.h" #ifndef GL_KHR_robust_buffer_access_behavior #define GL_KHR_robust_buffer_access_behavior 1 #endif /* GL_KHR_robust_buffer_access_behavior */ # 4981 "../mesa/include/GL/glext.h" #ifndef GL_KHR_robustness #define GL_KHR_robustness 1 #define GL_CONTEXT_ROBUST_ACCESS 0x90F3 #endif /* GL_KHR_robustness */ # 4986 "../mesa/include/GL/glext.h" #ifndef GL_KHR_shader_subgroup #define GL_KHR_shader_subgroup 1 #define GL_SUBGROUP_SIZE_KHR 0x9532 #define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 #define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 #define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 #define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 #define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 #define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 #define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 #define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 #define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 #define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 #define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 #endif /* GL_KHR_shader_subgroup */ # 5002 "../mesa/include/GL/glext.h" #ifndef GL_KHR_texture_compression_astc_hdr #define GL_KHR_texture_compression_astc_hdr 1 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD #endif /* GL_KHR_texture_compression_astc_hdr */ # 5034 "../mesa/include/GL/glext.h" #ifndef GL_KHR_texture_compression_astc_ldr #define GL_KHR_texture_compression_astc_ldr 1 #endif /* GL_KHR_texture_compression_astc_ldr */ # 5038 "../mesa/include/GL/glext.h" #ifndef GL_KHR_texture_compression_astc_sliced_3d #define GL_KHR_texture_compression_astc_sliced_3d 1 #endif /* GL_KHR_texture_compression_astc_sliced_3d */ # 5042 "../mesa/include/GL/glext.h" #ifndef GL_OES_byte_coordinates #define GL_OES_byte_coordinates 1 typedef void (APIENTRYP PFNGLMULTITEXCOORD1BOESPROC) (GLenum texture, GLbyte s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1BVOESPROC) (GLenum texture, const GLbyte *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORD2BOESPROC) (GLenum texture, GLbyte s, GLbyte t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2BVOESPROC) (GLenum texture, const GLbyte *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORD3BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3BVOESPROC) (GLenum texture, const GLbyte *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORD4BOESPROC) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4BVOESPROC) (GLenum texture, const GLbyte *coords); typedef void (APIENTRYP PFNGLTEXCOORD1BOESPROC) (GLbyte s); typedef void (APIENTRYP PFNGLTEXCOORD1BVOESPROC) (const GLbyte *coords); typedef void (APIENTRYP PFNGLTEXCOORD2BOESPROC) (GLbyte s, GLbyte t); typedef void (APIENTRYP PFNGLTEXCOORD2BVOESPROC) (const GLbyte *coords); typedef void (APIENTRYP PFNGLTEXCOORD3BOESPROC) (GLbyte s, GLbyte t, GLbyte r); typedef void (APIENTRYP PFNGLTEXCOORD3BVOESPROC) (const GLbyte *coords); typedef void (APIENTRYP PFNGLTEXCOORD4BOESPROC) (GLbyte s, GLbyte t, GLbyte r, GLbyte q); typedef void (APIENTRYP PFNGLTEXCOORD4BVOESPROC) (const GLbyte *coords); typedef void (APIENTRYP PFNGLVERTEX2BOESPROC) (GLbyte x, GLbyte y); typedef void (APIENTRYP PFNGLVERTEX2BVOESPROC) (const GLbyte *coords); typedef void (APIENTRYP PFNGLVERTEX3BOESPROC) (GLbyte x, GLbyte y, GLbyte z); typedef void (APIENTRYP PFNGLVERTEX3BVOESPROC) (const GLbyte *coords); typedef void (APIENTRYP PFNGLVERTEX4BOESPROC) (GLbyte x, GLbyte y, GLbyte z, GLbyte w); typedef void (APIENTRYP PFNGLVERTEX4BVOESPROC) (const GLbyte *coords); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiTexCoord1bOES (GLenum texture, GLbyte s); GLAPI void APIENTRY glMultiTexCoord1bvOES (GLenum texture, const GLbyte *coords); GLAPI void APIENTRY glMultiTexCoord2bOES (GLenum texture, GLbyte s, GLbyte t); GLAPI void APIENTRY glMultiTexCoord2bvOES (GLenum texture, const GLbyte *coords); GLAPI void APIENTRY glMultiTexCoord3bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r); GLAPI void APIENTRY glMultiTexCoord3bvOES (GLenum texture, const GLbyte *coords); GLAPI void APIENTRY glMultiTexCoord4bOES (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); GLAPI void APIENTRY glMultiTexCoord4bvOES (GLenum texture, const GLbyte *coords); GLAPI void APIENTRY glTexCoord1bOES (GLbyte s); GLAPI void APIENTRY glTexCoord1bvOES (const GLbyte *coords); GLAPI void APIENTRY glTexCoord2bOES (GLbyte s, GLbyte t); GLAPI void APIENTRY glTexCoord2bvOES (const GLbyte *coords); GLAPI void APIENTRY glTexCoord3bOES (GLbyte s, GLbyte t, GLbyte r); GLAPI void APIENTRY glTexCoord3bvOES (const GLbyte *coords); GLAPI void APIENTRY glTexCoord4bOES (GLbyte s, GLbyte t, GLbyte r, GLbyte q); GLAPI void APIENTRY glTexCoord4bvOES (const GLbyte *coords); GLAPI void APIENTRY glVertex2bOES (GLbyte x, GLbyte y); GLAPI void APIENTRY glVertex2bvOES (const GLbyte *coords); GLAPI void APIENTRY glVertex3bOES (GLbyte x, GLbyte y, GLbyte z); GLAPI void APIENTRY glVertex3bvOES (const GLbyte *coords); GLAPI void APIENTRY glVertex4bOES (GLbyte x, GLbyte y, GLbyte z, GLbyte w); GLAPI void APIENTRY glVertex4bvOES (const GLbyte *coords); #endif # 5091 "../mesa/include/GL/glext.h" #endif /* GL_OES_byte_coordinates */ # 5092 "../mesa/include/GL/glext.h" #ifndef GL_OES_compressed_paletted_texture #define GL_OES_compressed_paletted_texture 1 #define GL_PALETTE4_RGB8_OES 0x8B90 #define GL_PALETTE4_RGBA8_OES 0x8B91 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92 #define GL_PALETTE4_RGBA4_OES 0x8B93 #define GL_PALETTE4_RGB5_A1_OES 0x8B94 #define GL_PALETTE8_RGB8_OES 0x8B95 #define GL_PALETTE8_RGBA8_OES 0x8B96 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97 #define GL_PALETTE8_RGBA4_OES 0x8B98 #define GL_PALETTE8_RGB5_A1_OES 0x8B99 #endif /* GL_OES_compressed_paletted_texture */ # 5106 "../mesa/include/GL/glext.h" #ifndef GL_OES_fixed_point #define GL_OES_fixed_point 1 typedef khronos_int32_t GLfixed; #define GL_FIXED_OES 0x140C typedef void (APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); typedef void (APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); typedef void (APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); typedef void (APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); typedef void (APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); typedef void (APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); typedef void (APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); typedef void (APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); typedef void (APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); typedef void (APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); typedef void (APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); typedef void (APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); typedef void (APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); typedef void (APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); typedef void (APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); typedef void (APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); typedef void (APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); typedef void (APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); typedef void (APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); typedef void (APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); typedef void (APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (APIENTRYP PFNGLACCUMXOESPROC) (GLenum op, GLfixed value); typedef void (APIENTRYP PFNGLBITMAPXOESPROC) (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); typedef void (APIENTRYP PFNGLBLENDCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (APIENTRYP PFNGLCLEARACCUMXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (APIENTRYP PFNGLCOLOR3XOESPROC) (GLfixed red, GLfixed green, GLfixed blue); typedef void (APIENTRYP PFNGLCOLOR3XVOESPROC) (const GLfixed *components); typedef void (APIENTRYP PFNGLCOLOR4XVOESPROC) (const GLfixed *components); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (APIENTRYP PFNGLEVALCOORD1XOESPROC) (GLfixed u); typedef void (APIENTRYP PFNGLEVALCOORD1XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLEVALCOORD2XOESPROC) (GLfixed u, GLfixed v); typedef void (APIENTRYP PFNGLEVALCOORD2XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLFEEDBACKBUFFERXOESPROC) (GLsizei n, GLenum type, const GLfixed *buffer); typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLGETLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLGETMAPXVOESPROC) (GLenum target, GLenum query, GLfixed *v); typedef void (APIENTRYP PFNGLGETMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLGETPIXELMAPXVPROC) (GLenum map, GLint size, GLfixed *values); typedef void (APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERXVOESPROC) (GLenum target, GLint level, GLenum pname, GLfixed *params); typedef void (APIENTRYP PFNGLINDEXXOESPROC) (GLfixed component); typedef void (APIENTRYP PFNGLINDEXXVOESPROC) (const GLfixed *component); typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); typedef void (APIENTRYP PFNGLMAP1XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); typedef void (APIENTRYP PFNGLMAP2XOESPROC) (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); typedef void (APIENTRYP PFNGLMAPGRID1XOESPROC) (GLint n, GLfixed u1, GLfixed u2); typedef void (APIENTRYP PFNGLMAPGRID2XOESPROC) (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXXOESPROC) (const GLfixed *m); typedef void (APIENTRYP PFNGLMULTITEXCOORD1XOESPROC) (GLenum texture, GLfixed s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1XVOESPROC) (GLenum texture, const GLfixed *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORD2XOESPROC) (GLenum texture, GLfixed s, GLfixed t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2XVOESPROC) (GLenum texture, const GLfixed *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORD3XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3XVOESPROC) (GLenum texture, const GLfixed *coords); typedef void (APIENTRYP PFNGLMULTITEXCOORD4XVOESPROC) (GLenum texture, const GLfixed *coords); typedef void (APIENTRYP PFNGLNORMAL3XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLPASSTHROUGHXOESPROC) (GLfixed token); typedef void (APIENTRYP PFNGLPIXELMAPXPROC) (GLenum map, GLint size, const GLfixed *values); typedef void (APIENTRYP PFNGLPIXELSTOREXPROC) (GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLPIXELTRANSFERXOESPROC) (GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLPIXELZOOMXOESPROC) (GLfixed xfactor, GLfixed yfactor); typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESXOESPROC) (GLsizei n, const GLuint *textures, const GLfixed *priorities); typedef void (APIENTRYP PFNGLRASTERPOS2XOESPROC) (GLfixed x, GLfixed y); typedef void (APIENTRYP PFNGLRASTERPOS2XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLRASTERPOS3XOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (APIENTRYP PFNGLRASTERPOS3XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLRASTERPOS4XOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed w); typedef void (APIENTRYP PFNGLRASTERPOS4XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLRECTXOESPROC) (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); typedef void (APIENTRYP PFNGLRECTXVOESPROC) (const GLfixed *v1, const GLfixed *v2); typedef void (APIENTRYP PFNGLTEXCOORD1XOESPROC) (GLfixed s); typedef void (APIENTRYP PFNGLTEXCOORD1XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLTEXCOORD2XOESPROC) (GLfixed s, GLfixed t); typedef void (APIENTRYP PFNGLTEXCOORD2XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLTEXCOORD3XOESPROC) (GLfixed s, GLfixed t, GLfixed r); typedef void (APIENTRYP PFNGLTEXCOORD3XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLTEXCOORD4XOESPROC) (GLfixed s, GLfixed t, GLfixed r, GLfixed q); typedef void (APIENTRYP PFNGLTEXCOORD4XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); typedef void (APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); typedef void (APIENTRYP PFNGLVERTEX2XOESPROC) (GLfixed x); typedef void (APIENTRYP PFNGLVERTEX2XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLVERTEX3XOESPROC) (GLfixed x, GLfixed y); typedef void (APIENTRYP PFNGLVERTEX3XVOESPROC) (const GLfixed *coords); typedef void (APIENTRYP PFNGLVERTEX4XOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (APIENTRYP PFNGLVERTEX4XVOESPROC) (const GLfixed *coords); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); GLAPI void APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GLAPI void APIENTRY glClearDepthxOES (GLfixed depth); GLAPI void APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); GLAPI void APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GLAPI void APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); GLAPI void APIENTRY glFogxOES (GLenum pname, GLfixed param); GLAPI void APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); GLAPI void APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); GLAPI void APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); GLAPI void APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); GLAPI void APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); GLAPI void APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); GLAPI void APIENTRY glLightModelxOES (GLenum pname, GLfixed param); GLAPI void APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); GLAPI void APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); GLAPI void APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); GLAPI void APIENTRY glLineWidthxOES (GLfixed width); GLAPI void APIENTRY glLoadMatrixxOES (const GLfixed *m); GLAPI void APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); GLAPI void APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); GLAPI void APIENTRY glMultMatrixxOES (const GLfixed *m); GLAPI void APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); GLAPI void APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); GLAPI void APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); GLAPI void APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); GLAPI void APIENTRY glPointSizexOES (GLfixed size); GLAPI void APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); GLAPI void APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); GLAPI void APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); GLAPI void APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); GLAPI void APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); GLAPI void APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); GLAPI void APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); GLAPI void APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); GLAPI void APIENTRY glAccumxOES (GLenum op, GLfixed value); GLAPI void APIENTRY glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte *bitmap); GLAPI void APIENTRY glBlendColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GLAPI void APIENTRY glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GLAPI void APIENTRY glColor3xOES (GLfixed red, GLfixed green, GLfixed blue); GLAPI void APIENTRY glColor3xvOES (const GLfixed *components); GLAPI void APIENTRY glColor4xvOES (const GLfixed *components); GLAPI void APIENTRY glConvolutionParameterxOES (GLenum target, GLenum pname, GLfixed param); GLAPI void APIENTRY glConvolutionParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); GLAPI void APIENTRY glEvalCoord1xOES (GLfixed u); GLAPI void APIENTRY glEvalCoord1xvOES (const GLfixed *coords); GLAPI void APIENTRY glEvalCoord2xOES (GLfixed u, GLfixed v); GLAPI void APIENTRY glEvalCoord2xvOES (const GLfixed *coords); GLAPI void APIENTRY glFeedbackBufferxOES (GLsizei n, GLenum type, const GLfixed *buffer); GLAPI void APIENTRY glGetConvolutionParameterxvOES (GLenum target, GLenum pname, GLfixed *params); GLAPI void APIENTRY glGetHistogramParameterxvOES (GLenum target, GLenum pname, GLfixed *params); GLAPI void APIENTRY glGetLightxOES (GLenum light, GLenum pname, GLfixed *params); GLAPI void APIENTRY glGetMapxvOES (GLenum target, GLenum query, GLfixed *v); GLAPI void APIENTRY glGetMaterialxOES (GLenum face, GLenum pname, GLfixed param); GLAPI void APIENTRY glGetPixelMapxv (GLenum map, GLint size, GLfixed *values); GLAPI void APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); GLAPI void APIENTRY glGetTexLevelParameterxvOES (GLenum target, GLint level, GLenum pname, GLfixed *params); GLAPI void APIENTRY glIndexxOES (GLfixed component); GLAPI void APIENTRY glIndexxvOES (const GLfixed *component); GLAPI void APIENTRY glLoadTransposeMatrixxOES (const GLfixed *m); GLAPI void APIENTRY glMap1xOES (GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); GLAPI void APIENTRY glMap2xOES (GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); GLAPI void APIENTRY glMapGrid1xOES (GLint n, GLfixed u1, GLfixed u2); GLAPI void APIENTRY glMapGrid2xOES (GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2); GLAPI void APIENTRY glMultTransposeMatrixxOES (const GLfixed *m); GLAPI void APIENTRY glMultiTexCoord1xOES (GLenum texture, GLfixed s); GLAPI void APIENTRY glMultiTexCoord1xvOES (GLenum texture, const GLfixed *coords); GLAPI void APIENTRY glMultiTexCoord2xOES (GLenum texture, GLfixed s, GLfixed t); GLAPI void APIENTRY glMultiTexCoord2xvOES (GLenum texture, const GLfixed *coords); GLAPI void APIENTRY glMultiTexCoord3xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r); GLAPI void APIENTRY glMultiTexCoord3xvOES (GLenum texture, const GLfixed *coords); GLAPI void APIENTRY glMultiTexCoord4xvOES (GLenum texture, const GLfixed *coords); GLAPI void APIENTRY glNormal3xvOES (const GLfixed *coords); GLAPI void APIENTRY glPassThroughxOES (GLfixed token); GLAPI void APIENTRY glPixelMapx (GLenum map, GLint size, const GLfixed *values); GLAPI void APIENTRY glPixelStorex (GLenum pname, GLfixed param); GLAPI void APIENTRY glPixelTransferxOES (GLenum pname, GLfixed param); GLAPI void APIENTRY glPixelZoomxOES (GLfixed xfactor, GLfixed yfactor); GLAPI void APIENTRY glPrioritizeTexturesxOES (GLsizei n, const GLuint *textures, const GLfixed *priorities); GLAPI void APIENTRY glRasterPos2xOES (GLfixed x, GLfixed y); GLAPI void APIENTRY glRasterPos2xvOES (const GLfixed *coords); GLAPI void APIENTRY glRasterPos3xOES (GLfixed x, GLfixed y, GLfixed z); GLAPI void APIENTRY glRasterPos3xvOES (const GLfixed *coords); GLAPI void APIENTRY glRasterPos4xOES (GLfixed x, GLfixed y, GLfixed z, GLfixed w); GLAPI void APIENTRY glRasterPos4xvOES (const GLfixed *coords); GLAPI void APIENTRY glRectxOES (GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); GLAPI void APIENTRY glRectxvOES (const GLfixed *v1, const GLfixed *v2); GLAPI void APIENTRY glTexCoord1xOES (GLfixed s); GLAPI void APIENTRY glTexCoord1xvOES (const GLfixed *coords); GLAPI void APIENTRY glTexCoord2xOES (GLfixed s, GLfixed t); GLAPI void APIENTRY glTexCoord2xvOES (const GLfixed *coords); GLAPI void APIENTRY glTexCoord3xOES (GLfixed s, GLfixed t, GLfixed r); GLAPI void APIENTRY glTexCoord3xvOES (const GLfixed *coords); GLAPI void APIENTRY glTexCoord4xOES (GLfixed s, GLfixed t, GLfixed r, GLfixed q); GLAPI void APIENTRY glTexCoord4xvOES (const GLfixed *coords); GLAPI void APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); GLAPI void APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); GLAPI void APIENTRY glVertex2xOES (GLfixed x); GLAPI void APIENTRY glVertex2xvOES (const GLfixed *coords); GLAPI void APIENTRY glVertex3xOES (GLfixed x, GLfixed y); GLAPI void APIENTRY glVertex3xvOES (const GLfixed *coords); GLAPI void APIENTRY glVertex4xOES (GLfixed x, GLfixed y, GLfixed z); GLAPI void APIENTRY glVertex4xvOES (const GLfixed *coords); #endif # 5319 "../mesa/include/GL/glext.h" #endif /* GL_OES_fixed_point */ # 5320 "../mesa/include/GL/glext.h" #ifndef GL_OES_query_matrix #define GL_OES_query_matrix 1 typedef GLbitfield (APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLbitfield APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); #endif # 5327 "../mesa/include/GL/glext.h" #endif /* GL_OES_query_matrix */ # 5328 "../mesa/include/GL/glext.h" #ifndef GL_OES_read_format #define GL_OES_read_format 1 #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B #endif /* GL_OES_read_format */ # 5334 "../mesa/include/GL/glext.h" #ifndef GL_OES_single_precision #define GL_OES_single_precision 1 typedef void (APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); typedef void (APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); typedef void (APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); typedef void (APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); typedef void (APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); typedef void (APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glClearDepthfOES (GLclampf depth); GLAPI void APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); GLAPI void APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); GLAPI void APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); GLAPI void APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); GLAPI void APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); #endif # 5351 "../mesa/include/GL/glext.h" #endif /* GL_OES_single_precision */ # 5352 "../mesa/include/GL/glext.h" #ifndef GL_3DFX_multisample #define GL_3DFX_multisample 1 #define GL_MULTISAMPLE_3DFX 0x86B2 #define GL_SAMPLE_BUFFERS_3DFX 0x86B3 #define GL_SAMPLES_3DFX 0x86B4 #define GL_MULTISAMPLE_BIT_3DFX 0x20000000 #endif /* GL_3DFX_multisample */ # 5360 "../mesa/include/GL/glext.h" #ifndef GL_3DFX_tbuffer #define GL_3DFX_tbuffer 1 typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); #endif # 5367 "../mesa/include/GL/glext.h" #endif /* GL_3DFX_tbuffer */ # 5368 "../mesa/include/GL/glext.h" #ifndef GL_3DFX_texture_compression_FXT1 #define GL_3DFX_texture_compression_FXT1 1 #define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 #define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 #endif /* GL_3DFX_texture_compression_FXT1 */ # 5374 "../mesa/include/GL/glext.h" #ifndef GL_AMD_blend_minmax_factor #define GL_AMD_blend_minmax_factor 1 #define GL_FACTOR_MIN_AMD 0x901C #define GL_FACTOR_MAX_AMD 0x901D #endif /* GL_AMD_blend_minmax_factor */ # 5380 "../mesa/include/GL/glext.h" #ifndef GL_AMD_conservative_depth #define GL_AMD_conservative_depth 1 #endif /* GL_AMD_conservative_depth */ # 5384 "../mesa/include/GL/glext.h" #ifndef GL_AMD_debug_output #define GL_AMD_debug_output 1 typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); #define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 #define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 #define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 #define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 #define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 #define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 #define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 #define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A #define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B #define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C #define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D #define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E #define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F #define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void *userParam); typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufSize, GLenum *categories, GLenum *severities, GLuint *ids, GLsizei *lengths, GLchar *message); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, void *userParam); GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufSize, GLenum *categories, GLenum *severities, GLuint *ids, GLsizei *lengths, GLchar *message); #endif # 5412 "../mesa/include/GL/glext.h" #endif /* GL_AMD_debug_output */ # 5413 "../mesa/include/GL/glext.h" #ifndef GL_AMD_depth_clamp_separate #define GL_AMD_depth_clamp_separate 1 #define GL_DEPTH_CLAMP_NEAR_AMD 0x901E #define GL_DEPTH_CLAMP_FAR_AMD 0x901F #endif /* GL_AMD_depth_clamp_separate */ # 5419 "../mesa/include/GL/glext.h" #ifndef GL_AMD_draw_buffers_blend #define GL_AMD_draw_buffers_blend 1 typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); #endif # 5432 "../mesa/include/GL/glext.h" #endif /* GL_AMD_draw_buffers_blend */ # 5433 "../mesa/include/GL/glext.h" #ifndef GL_AMD_framebuffer_multisample_advanced #define GL_AMD_framebuffer_multisample_advanced 1 #define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 #define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 #define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 #define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 #define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 #define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); #endif # 5448 "../mesa/include/GL/glext.h" #endif /* GL_AMD_framebuffer_multisample_advanced */ # 5449 "../mesa/include/GL/glext.h" #ifndef GL_AMD_framebuffer_sample_positions #define GL_AMD_framebuffer_sample_positions 1 #define GL_SUBSAMPLE_DISTANCE_AMD 0x883F #define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD 0x91AE #define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD 0x91AF #define GL_ALL_PIXELS_AMD 0xFFFFFFFF typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC) (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC) (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC) (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferSamplePositionsfvAMD (GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat *values); GLAPI void APIENTRY glNamedFramebufferSamplePositionsfvAMD (GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat *values); GLAPI void APIENTRY glGetFramebufferParameterfvAMD (GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); GLAPI void APIENTRY glGetNamedFramebufferParameterfvAMD (GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat *values); #endif # 5466 "../mesa/include/GL/glext.h" #endif /* GL_AMD_framebuffer_sample_positions */ # 5467 "../mesa/include/GL/glext.h" #ifndef GL_AMD_gcn_shader #define GL_AMD_gcn_shader 1 #endif /* GL_AMD_gcn_shader */ # 5471 "../mesa/include/GL/glext.h" #ifndef GL_AMD_gpu_shader_half_float #define GL_AMD_gpu_shader_half_float 1 #define GL_FLOAT16_NV 0x8FF8 #define GL_FLOAT16_VEC2_NV 0x8FF9 #define GL_FLOAT16_VEC3_NV 0x8FFA #define GL_FLOAT16_VEC4_NV 0x8FFB #define GL_FLOAT16_MAT2_AMD 0x91C5 #define GL_FLOAT16_MAT3_AMD 0x91C6 #define GL_FLOAT16_MAT4_AMD 0x91C7 #define GL_FLOAT16_MAT2x3_AMD 0x91C8 #define GL_FLOAT16_MAT2x4_AMD 0x91C9 #define GL_FLOAT16_MAT3x2_AMD 0x91CA #define GL_FLOAT16_MAT3x4_AMD 0x91CB #define GL_FLOAT16_MAT4x2_AMD 0x91CC #define GL_FLOAT16_MAT4x3_AMD 0x91CD #endif /* GL_AMD_gpu_shader_half_float */ # 5488 "../mesa/include/GL/glext.h" #ifndef GL_AMD_gpu_shader_int16 #define GL_AMD_gpu_shader_int16 1 #endif /* GL_AMD_gpu_shader_int16 */ # 5492 "../mesa/include/GL/glext.h" #ifndef GL_AMD_gpu_shader_int64 #define GL_AMD_gpu_shader_int64 1 typedef khronos_int64_t GLint64EXT; #define GL_INT64_NV 0x140E #define GL_UNSIGNED_INT64_NV 0x140F #define GL_INT8_NV 0x8FE0 #define GL_INT8_VEC2_NV 0x8FE1 #define GL_INT8_VEC3_NV 0x8FE2 #define GL_INT8_VEC4_NV 0x8FE3 #define GL_INT16_NV 0x8FE4 #define GL_INT16_VEC2_NV 0x8FE5 #define GL_INT16_VEC3_NV 0x8FE6 #define GL_INT16_VEC4_NV 0x8FE7 #define GL_INT64_VEC2_NV 0x8FE9 #define GL_INT64_VEC3_NV 0x8FEA #define GL_INT64_VEC4_NV 0x8FEB #define GL_UNSIGNED_INT8_NV 0x8FEC #define GL_UNSIGNED_INT8_VEC2_NV 0x8FED #define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE #define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF #define GL_UNSIGNED_INT16_NV 0x8FF0 #define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 #define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 #define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 #define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 #define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 #define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); #endif # 5590 "../mesa/include/GL/glext.h" #endif /* GL_AMD_gpu_shader_int64 */ # 5591 "../mesa/include/GL/glext.h" #ifndef GL_AMD_interleaved_elements #define GL_AMD_interleaved_elements 1 #define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91A4 #define GL_VERTEX_ID_SWIZZLE_AMD 0x91A5 typedef void (APIENTRYP PFNGLVERTEXATTRIBPARAMETERIAMDPROC) (GLuint index, GLenum pname, GLint param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexAttribParameteriAMD (GLuint index, GLenum pname, GLint param); #endif # 5600 "../mesa/include/GL/glext.h" #endif /* GL_AMD_interleaved_elements */ # 5601 "../mesa/include/GL/glext.h" #ifndef GL_AMD_multi_draw_indirect #define GL_AMD_multi_draw_indirect 1 typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const void *indirect, GLsizei primcount, GLsizei stride); GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const void *indirect, GLsizei primcount, GLsizei stride); #endif # 5610 "../mesa/include/GL/glext.h" #endif /* GL_AMD_multi_draw_indirect */ # 5611 "../mesa/include/GL/glext.h" #ifndef GL_AMD_name_gen_delete #define GL_AMD_name_gen_delete 1 #define GL_DATA_BUFFER_AMD 0x9151 #define GL_PERFORMANCE_MONITOR_AMD 0x9152 #define GL_QUERY_OBJECT_AMD 0x9153 #define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 #define GL_SAMPLER_OBJECT_AMD 0x9155 typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); #endif # 5627 "../mesa/include/GL/glext.h" #endif /* GL_AMD_name_gen_delete */ # 5628 "../mesa/include/GL/glext.h" #ifndef GL_AMD_occlusion_query_event #define GL_AMD_occlusion_query_event 1 #define GL_OCCLUSION_QUERY_EVENT_MASK_AMD 0x874F #define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD 0x00000001 #define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD 0x00000002 #define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD 0x00000004 #define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD 0x00000008 #define GL_QUERY_ALL_EVENT_BITS_AMD 0xFFFFFFFF typedef void (APIENTRYP PFNGLQUERYOBJECTPARAMETERUIAMDPROC) (GLenum target, GLuint id, GLenum pname, GLuint param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glQueryObjectParameteruiAMD (GLenum target, GLuint id, GLenum pname, GLuint param); #endif # 5641 "../mesa/include/GL/glext.h" #endif /* GL_AMD_occlusion_query_event */ # 5642 "../mesa/include/GL/glext.h" #ifndef GL_AMD_performance_monitor #define GL_AMD_performance_monitor 1 #define GL_COUNTER_TYPE_AMD 0x8BC0 #define GL_COUNTER_RANGE_AMD 0x8BC1 #define GL_UNSIGNED_INT64_AMD 0x8BC2 #define GL_PERCENTAGE_AMD 0x8BC3 #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 #define GL_PERFMON_RESULT_AMD 0x8BC6 typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); #endif # 5676 "../mesa/include/GL/glext.h" #endif /* GL_AMD_performance_monitor */ # 5677 "../mesa/include/GL/glext.h" #ifndef GL_AMD_pinned_memory #define GL_AMD_pinned_memory 1 #define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 #endif /* GL_AMD_pinned_memory */ # 5682 "../mesa/include/GL/glext.h" #ifndef GL_AMD_query_buffer_object #define GL_AMD_query_buffer_object 1 #define GL_QUERY_BUFFER_AMD 0x9192 #define GL_QUERY_BUFFER_BINDING_AMD 0x9193 #define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 #endif /* GL_AMD_query_buffer_object */ # 5689 "../mesa/include/GL/glext.h" #ifndef GL_AMD_sample_positions #define GL_AMD_sample_positions 1 typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); #endif # 5696 "../mesa/include/GL/glext.h" #endif /* GL_AMD_sample_positions */ # 5697 "../mesa/include/GL/glext.h" #ifndef GL_AMD_seamless_cubemap_per_texture #define GL_AMD_seamless_cubemap_per_texture 1 #endif /* GL_AMD_seamless_cubemap_per_texture */ # 5701 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_atomic_counter_ops #define GL_AMD_shader_atomic_counter_ops 1 #endif /* GL_AMD_shader_atomic_counter_ops */ # 5705 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_ballot #define GL_AMD_shader_ballot 1 #endif /* GL_AMD_shader_ballot */ # 5709 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_explicit_vertex_parameter #define GL_AMD_shader_explicit_vertex_parameter 1 #endif /* GL_AMD_shader_explicit_vertex_parameter */ # 5713 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_gpu_shader_half_float_fetch #define GL_AMD_shader_gpu_shader_half_float_fetch 1 #endif /* GL_AMD_shader_gpu_shader_half_float_fetch */ # 5717 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_image_load_store_lod #define GL_AMD_shader_image_load_store_lod 1 #endif /* GL_AMD_shader_image_load_store_lod */ # 5721 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_stencil_export #define GL_AMD_shader_stencil_export 1 #endif /* GL_AMD_shader_stencil_export */ # 5725 "../mesa/include/GL/glext.h" #ifndef GL_AMD_shader_trinary_minmax #define GL_AMD_shader_trinary_minmax 1 #endif /* GL_AMD_shader_trinary_minmax */ # 5729 "../mesa/include/GL/glext.h" #ifndef GL_AMD_sparse_texture #define GL_AMD_sparse_texture 1 #define GL_VIRTUAL_PAGE_SIZE_X_AMD 0x9195 #define GL_VIRTUAL_PAGE_SIZE_Y_AMD 0x9196 #define GL_VIRTUAL_PAGE_SIZE_Z_AMD 0x9197 #define GL_MAX_SPARSE_TEXTURE_SIZE_AMD 0x9198 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD 0x9199 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919A #define GL_MIN_SPARSE_LEVEL_AMD 0x919B #define GL_MIN_LOD_WARNING_AMD 0x919C #define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD 0x00000001 typedef void (APIENTRYP PFNGLTEXSTORAGESPARSEAMDPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); typedef void (APIENTRYP PFNGLTEXTURESTORAGESPARSEAMDPROC) (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexStorageSparseAMD (GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); GLAPI void APIENTRY glTextureStorageSparseAMD (GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags); #endif # 5747 "../mesa/include/GL/glext.h" #endif /* GL_AMD_sparse_texture */ # 5748 "../mesa/include/GL/glext.h" #ifndef GL_AMD_stencil_operation_extended #define GL_AMD_stencil_operation_extended 1 #define GL_SET_AMD 0x874A #define GL_REPLACE_VALUE_AMD 0x874B #define GL_STENCIL_OP_VALUE_AMD 0x874C #define GL_STENCIL_BACK_OP_VALUE_AMD 0x874D typedef void (APIENTRYP PFNGLSTENCILOPVALUEAMDPROC) (GLenum face, GLuint value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glStencilOpValueAMD (GLenum face, GLuint value); #endif # 5759 "../mesa/include/GL/glext.h" #endif /* GL_AMD_stencil_operation_extended */ # 5760 "../mesa/include/GL/glext.h" #ifndef GL_AMD_texture_gather_bias_lod #define GL_AMD_texture_gather_bias_lod 1 #endif /* GL_AMD_texture_gather_bias_lod */ # 5764 "../mesa/include/GL/glext.h" #ifndef GL_AMD_texture_texture4 #define GL_AMD_texture_texture4 1 #endif /* GL_AMD_texture_texture4 */ # 5768 "../mesa/include/GL/glext.h" #ifndef GL_AMD_transform_feedback3_lines_triangles #define GL_AMD_transform_feedback3_lines_triangles 1 #endif /* GL_AMD_transform_feedback3_lines_triangles */ # 5772 "../mesa/include/GL/glext.h" #ifndef GL_AMD_transform_feedback4 #define GL_AMD_transform_feedback4 1 #define GL_STREAM_RASTERIZATION_AMD 0x91A0 #endif /* GL_AMD_transform_feedback4 */ # 5777 "../mesa/include/GL/glext.h" #ifndef GL_AMD_vertex_shader_layer #define GL_AMD_vertex_shader_layer 1 #endif /* GL_AMD_vertex_shader_layer */ # 5781 "../mesa/include/GL/glext.h" #ifndef GL_AMD_vertex_shader_tessellator #define GL_AMD_vertex_shader_tessellator 1 #define GL_SAMPLER_BUFFER_AMD 0x9001 #define GL_INT_SAMPLER_BUFFER_AMD 0x9002 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 #define GL_TESSELLATION_MODE_AMD 0x9004 #define GL_TESSELLATION_FACTOR_AMD 0x9005 #define GL_DISCRETE_AMD 0x9006 #define GL_CONTINUOUS_AMD 0x9007 typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); #endif # 5797 "../mesa/include/GL/glext.h" #endif /* GL_AMD_vertex_shader_tessellator */ # 5798 "../mesa/include/GL/glext.h" #ifndef GL_AMD_vertex_shader_viewport_index #define GL_AMD_vertex_shader_viewport_index 1 #endif /* GL_AMD_vertex_shader_viewport_index */ # 5802 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_aux_depth_stencil #define GL_APPLE_aux_depth_stencil 1 #define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 #endif /* GL_APPLE_aux_depth_stencil */ # 5807 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_client_storage #define GL_APPLE_client_storage 1 #define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 #endif /* GL_APPLE_client_storage */ # 5812 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_element_array #define GL_APPLE_element_array 1 #define GL_ELEMENT_ARRAY_APPLE 0x8A0C #define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D #define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const void *pointer); typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const void *pointer); GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); #endif # 5830 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_element_array */ # 5831 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_fence #define GL_APPLE_fence 1 #define GL_DRAW_PIXELS_APPLE 0x8A0A #define GL_FENCE_APPLE 0x8A0B typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); #endif # 5854 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_fence */ # 5855 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_float_pixels #define GL_APPLE_float_pixels 1 #define GL_HALF_APPLE 0x140B #define GL_RGBA_FLOAT32_APPLE 0x8814 #define GL_RGB_FLOAT32_APPLE 0x8815 #define GL_ALPHA_FLOAT32_APPLE 0x8816 #define GL_INTENSITY_FLOAT32_APPLE 0x8817 #define GL_LUMINANCE_FLOAT32_APPLE 0x8818 #define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 #define GL_RGBA_FLOAT16_APPLE 0x881A #define GL_RGB_FLOAT16_APPLE 0x881B #define GL_ALPHA_FLOAT16_APPLE 0x881C #define GL_INTENSITY_FLOAT16_APPLE 0x881D #define GL_LUMINANCE_FLOAT16_APPLE 0x881E #define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F #define GL_COLOR_FLOAT_APPLE 0x8A0F #endif /* GL_APPLE_float_pixels */ # 5873 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_flush_buffer_range #define GL_APPLE_flush_buffer_range 1 #define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 #define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); #endif # 5884 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_flush_buffer_range */ # 5885 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_object_purgeable #define GL_APPLE_object_purgeable 1 #define GL_BUFFER_OBJECT_APPLE 0x85B3 #define GL_RELEASED_APPLE 0x8A19 #define GL_VOLATILE_APPLE 0x8A1A #define GL_RETAINED_APPLE 0x8A1B #define GL_UNDEFINED_APPLE 0x8A1C #define GL_PURGEABLE_APPLE 0x8A1D typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); #endif # 5902 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_object_purgeable */ # 5903 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_rgb_422 #define GL_APPLE_rgb_422 1 #define GL_RGB_422_APPLE 0x8A1F #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB #define GL_RGB_RAW_422_APPLE 0x8A51 #endif /* GL_APPLE_rgb_422 */ # 5911 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_row_bytes #define GL_APPLE_row_bytes 1 #define GL_PACK_ROW_BYTES_APPLE 0x8A15 #define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 #endif /* GL_APPLE_row_bytes */ # 5917 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_specular_vector #define GL_APPLE_specular_vector 1 #define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 #endif /* GL_APPLE_specular_vector */ # 5922 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_texture_range #define GL_APPLE_texture_range 1 #define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 #define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 #define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC #define GL_STORAGE_PRIVATE_APPLE 0x85BD #define GL_STORAGE_CACHED_APPLE 0x85BE #define GL_STORAGE_SHARED_APPLE 0x85BF typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const void *pointer); typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, void **params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const void *pointer); GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, void **params); #endif # 5937 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_texture_range */ # 5938 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_transform_hint #define GL_APPLE_transform_hint 1 #define GL_TRANSFORM_HINT_APPLE 0x85B1 #endif /* GL_APPLE_transform_hint */ # 5943 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_vertex_array_object #define GL_APPLE_vertex_array_object 1 #define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); #endif # 5957 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_vertex_array_object */ # 5958 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_vertex_array_range #define GL_APPLE_vertex_array_range 1 #define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D #define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E #define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F #define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 #define GL_STORAGE_CLIENT_APPLE 0x85B4 typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void *pointer); typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, void *pointer); GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, void *pointer); GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); #endif # 5974 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_vertex_array_range */ # 5975 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_vertex_program_evaluators #define GL_APPLE_vertex_program_evaluators 1 #define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 #define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 #define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 #define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 #define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 #define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 #define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 #define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 #define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 #define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); #endif # 6004 "../mesa/include/GL/glext.h" #endif /* GL_APPLE_vertex_program_evaluators */ # 6005 "../mesa/include/GL/glext.h" #ifndef GL_APPLE_ycbcr_422 #define GL_APPLE_ycbcr_422 1 #define GL_YCBCR_422_APPLE 0x85B9 #endif /* GL_APPLE_ycbcr_422 */ # 6010 "../mesa/include/GL/glext.h" #ifndef GL_ATI_draw_buffers #define GL_ATI_draw_buffers 1 #define GL_MAX_DRAW_BUFFERS_ATI 0x8824 #define GL_DRAW_BUFFER0_ATI 0x8825 #define GL_DRAW_BUFFER1_ATI 0x8826 #define GL_DRAW_BUFFER2_ATI 0x8827 #define GL_DRAW_BUFFER3_ATI 0x8828 #define GL_DRAW_BUFFER4_ATI 0x8829 #define GL_DRAW_BUFFER5_ATI 0x882A #define GL_DRAW_BUFFER6_ATI 0x882B #define GL_DRAW_BUFFER7_ATI 0x882C #define GL_DRAW_BUFFER8_ATI 0x882D #define GL_DRAW_BUFFER9_ATI 0x882E #define GL_DRAW_BUFFER10_ATI 0x882F #define GL_DRAW_BUFFER11_ATI 0x8830 #define GL_DRAW_BUFFER12_ATI 0x8831 #define GL_DRAW_BUFFER13_ATI 0x8832 #define GL_DRAW_BUFFER14_ATI 0x8833 #define GL_DRAW_BUFFER15_ATI 0x8834 typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); #endif # 6034 "../mesa/include/GL/glext.h" #endif /* GL_ATI_draw_buffers */ # 6035 "../mesa/include/GL/glext.h" #ifndef GL_ATI_element_array #define GL_ATI_element_array 1 #define GL_ELEMENT_ARRAY_ATI 0x8768 #define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 #define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const void *pointer); typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glElementPointerATI (GLenum type, const void *pointer); GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); #endif # 6049 "../mesa/include/GL/glext.h" #endif /* GL_ATI_element_array */ # 6050 "../mesa/include/GL/glext.h" #ifndef GL_ATI_envmap_bumpmap #define GL_ATI_envmap_bumpmap 1 #define GL_BUMP_ROT_MATRIX_ATI 0x8775 #define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 #define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 #define GL_BUMP_TEX_UNITS_ATI 0x8778 #define GL_DUDV_ATI 0x8779 #define GL_DU8DV8_ATI 0x877A #define GL_BUMP_ENVMAP_ATI 0x877B #define GL_BUMP_TARGET_ATI 0x877C typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); #endif # 6071 "../mesa/include/GL/glext.h" #endif /* GL_ATI_envmap_bumpmap */ # 6072 "../mesa/include/GL/glext.h" #ifndef GL_ATI_fragment_shader #define GL_ATI_fragment_shader 1 #define GL_FRAGMENT_SHADER_ATI 0x8920 #define GL_REG_0_ATI 0x8921 #define GL_REG_1_ATI 0x8922 #define GL_REG_2_ATI 0x8923 #define GL_REG_3_ATI 0x8924 #define GL_REG_4_ATI 0x8925 #define GL_REG_5_ATI 0x8926 #define GL_REG_6_ATI 0x8927 #define GL_REG_7_ATI 0x8928 #define GL_REG_8_ATI 0x8929 #define GL_REG_9_ATI 0x892A #define GL_REG_10_ATI 0x892B #define GL_REG_11_ATI 0x892C #define GL_REG_12_ATI 0x892D #define GL_REG_13_ATI 0x892E #define GL_REG_14_ATI 0x892F #define GL_REG_15_ATI 0x8930 #define GL_REG_16_ATI 0x8931 #define GL_REG_17_ATI 0x8932 #define GL_REG_18_ATI 0x8933 #define GL_REG_19_ATI 0x8934 #define GL_REG_20_ATI 0x8935 #define GL_REG_21_ATI 0x8936 #define GL_REG_22_ATI 0x8937 #define GL_REG_23_ATI 0x8938 #define GL_REG_24_ATI 0x8939 #define GL_REG_25_ATI 0x893A #define GL_REG_26_ATI 0x893B #define GL_REG_27_ATI 0x893C #define GL_REG_28_ATI 0x893D #define GL_REG_29_ATI 0x893E #define GL_REG_30_ATI 0x893F #define GL_REG_31_ATI 0x8940 #define GL_CON_0_ATI 0x8941 #define GL_CON_1_ATI 0x8942 #define GL_CON_2_ATI 0x8943 #define GL_CON_3_ATI 0x8944 #define GL_CON_4_ATI 0x8945 #define GL_CON_5_ATI 0x8946 #define GL_CON_6_ATI 0x8947 #define GL_CON_7_ATI 0x8948 #define GL_CON_8_ATI 0x8949 #define GL_CON_9_ATI 0x894A #define GL_CON_10_ATI 0x894B #define GL_CON_11_ATI 0x894C #define GL_CON_12_ATI 0x894D #define GL_CON_13_ATI 0x894E #define GL_CON_14_ATI 0x894F #define GL_CON_15_ATI 0x8950 #define GL_CON_16_ATI 0x8951 #define GL_CON_17_ATI 0x8952 #define GL_CON_18_ATI 0x8953 #define GL_CON_19_ATI 0x8954 #define GL_CON_20_ATI 0x8955 #define GL_CON_21_ATI 0x8956 #define GL_CON_22_ATI 0x8957 #define GL_CON_23_ATI 0x8958 #define GL_CON_24_ATI 0x8959 #define GL_CON_25_ATI 0x895A #define GL_CON_26_ATI 0x895B #define GL_CON_27_ATI 0x895C #define GL_CON_28_ATI 0x895D #define GL_CON_29_ATI 0x895E #define GL_CON_30_ATI 0x895F #define GL_CON_31_ATI 0x8960 #define GL_MOV_ATI 0x8961 #define GL_ADD_ATI 0x8963 #define GL_MUL_ATI 0x8964 #define GL_SUB_ATI 0x8965 #define GL_DOT3_ATI 0x8966 #define GL_DOT4_ATI 0x8967 #define GL_MAD_ATI 0x8968 #define GL_LERP_ATI 0x8969 #define GL_CND_ATI 0x896A #define GL_CND0_ATI 0x896B #define GL_DOT2_ADD_ATI 0x896C #define GL_SECONDARY_INTERPOLATOR_ATI 0x896D #define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E #define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F #define GL_NUM_PASSES_ATI 0x8970 #define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 #define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 #define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 #define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 #define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 #define GL_SWIZZLE_STR_ATI 0x8976 #define GL_SWIZZLE_STQ_ATI 0x8977 #define GL_SWIZZLE_STR_DR_ATI 0x8978 #define GL_SWIZZLE_STQ_DQ_ATI 0x8979 #define GL_SWIZZLE_STRQ_ATI 0x897A #define GL_SWIZZLE_STRQ_DQ_ATI 0x897B #define GL_RED_BIT_ATI 0x00000001 #define GL_GREEN_BIT_ATI 0x00000002 #define GL_BLUE_BIT_ATI 0x00000004 #define GL_2X_BIT_ATI 0x00000001 #define GL_4X_BIT_ATI 0x00000002 #define GL_8X_BIT_ATI 0x00000004 #define GL_HALF_BIT_ATI 0x00000008 #define GL_QUARTER_BIT_ATI 0x00000010 #define GL_EIGHTH_BIT_ATI 0x00000020 #define GL_SATURATE_BIT_ATI 0x00000040 #define GL_COMP_BIT_ATI 0x00000002 #define GL_NEGATE_BIT_ATI 0x00000004 #define GL_BIAS_BIT_ATI 0x00000008 typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); GLAPI void APIENTRY glBeginFragmentShaderATI (void); GLAPI void APIENTRY glEndFragmentShaderATI (void); GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); #endif # 6209 "../mesa/include/GL/glext.h" #endif /* GL_ATI_fragment_shader */ # 6210 "../mesa/include/GL/glext.h" #ifndef GL_ATI_map_object_buffer #define GL_ATI_map_object_buffer 1 typedef void *(APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void *APIENTRY glMapObjectBufferATI (GLuint buffer); GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); #endif # 6219 "../mesa/include/GL/glext.h" #endif /* GL_ATI_map_object_buffer */ # 6220 "../mesa/include/GL/glext.h" #ifndef GL_ATI_meminfo #define GL_ATI_meminfo 1 #define GL_VBO_FREE_MEMORY_ATI 0x87FB #define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC #define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD #endif /* GL_ATI_meminfo */ # 6227 "../mesa/include/GL/glext.h" #ifndef GL_ATI_pixel_format_float #define GL_ATI_pixel_format_float 1 #define GL_RGBA_FLOAT_MODE_ATI 0x8820 #define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 #endif /* GL_ATI_pixel_format_float */ # 6233 "../mesa/include/GL/glext.h" #ifndef GL_ATI_pn_triangles #define GL_ATI_pn_triangles 1 #define GL_PN_TRIANGLES_ATI 0x87F0 #define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 #define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 #define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 #define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 #define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 #define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 #define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 #define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); #endif # 6251 "../mesa/include/GL/glext.h" #endif /* GL_ATI_pn_triangles */ # 6252 "../mesa/include/GL/glext.h" #ifndef GL_ATI_separate_stencil #define GL_ATI_separate_stencil 1 #define GL_STENCIL_BACK_FUNC_ATI 0x8800 #define GL_STENCIL_BACK_FAIL_ATI 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); #endif # 6265 "../mesa/include/GL/glext.h" #endif /* GL_ATI_separate_stencil */ # 6266 "../mesa/include/GL/glext.h" #ifndef GL_ATI_text_fragment_shader #define GL_ATI_text_fragment_shader 1 #define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 #endif /* GL_ATI_text_fragment_shader */ # 6271 "../mesa/include/GL/glext.h" #ifndef GL_ATI_texture_env_combine3 #define GL_ATI_texture_env_combine3 1 #define GL_MODULATE_ADD_ATI 0x8744 #define GL_MODULATE_SIGNED_ADD_ATI 0x8745 #define GL_MODULATE_SUBTRACT_ATI 0x8746 #endif /* GL_ATI_texture_env_combine3 */ # 6278 "../mesa/include/GL/glext.h" #ifndef GL_ATI_texture_float #define GL_ATI_texture_float 1 #define GL_RGBA_FLOAT32_ATI 0x8814 #define GL_RGB_FLOAT32_ATI 0x8815 #define GL_ALPHA_FLOAT32_ATI 0x8816 #define GL_INTENSITY_FLOAT32_ATI 0x8817 #define GL_LUMINANCE_FLOAT32_ATI 0x8818 #define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 #define GL_RGBA_FLOAT16_ATI 0x881A #define GL_RGB_FLOAT16_ATI 0x881B #define GL_ALPHA_FLOAT16_ATI 0x881C #define GL_INTENSITY_FLOAT16_ATI 0x881D #define GL_LUMINANCE_FLOAT16_ATI 0x881E #define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F #endif /* GL_ATI_texture_float */ # 6294 "../mesa/include/GL/glext.h" #ifndef GL_ATI_texture_mirror_once #define GL_ATI_texture_mirror_once 1 #define GL_MIRROR_CLAMP_ATI 0x8742 #define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 #endif /* GL_ATI_texture_mirror_once */ # 6300 "../mesa/include/GL/glext.h" #ifndef GL_ATI_vertex_array_object #define GL_ATI_vertex_array_object 1 #define GL_STATIC_ATI 0x8760 #define GL_DYNAMIC_ATI 0x8761 #define GL_PRESERVE_ATI 0x8762 #define GL_DISCARD_ATI 0x8763 #define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 #define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 #define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 #define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const void *pointer, GLenum usage); typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const void *pointer, GLenum usage); GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const void *pointer, GLenum preserve); GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); #endif # 6337 "../mesa/include/GL/glext.h" #endif /* GL_ATI_vertex_array_object */ # 6338 "../mesa/include/GL/glext.h" #ifndef GL_ATI_vertex_attrib_array_object #define GL_ATI_vertex_attrib_array_object 1 typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); #endif # 6349 "../mesa/include/GL/glext.h" #endif /* GL_ATI_vertex_attrib_array_object */ # 6350 "../mesa/include/GL/glext.h" #ifndef GL_ATI_vertex_streams #define GL_ATI_vertex_streams 1 #define GL_MAX_VERTEX_STREAMS_ATI 0x876B #define GL_VERTEX_STREAM0_ATI 0x876C #define GL_VERTEX_STREAM1_ATI 0x876D #define GL_VERTEX_STREAM2_ATI 0x876E #define GL_VERTEX_STREAM3_ATI 0x876F #define GL_VERTEX_STREAM4_ATI 0x8770 #define GL_VERTEX_STREAM5_ATI 0x8771 #define GL_VERTEX_STREAM6_ATI 0x8772 #define GL_VERTEX_STREAM7_ATI 0x8773 #define GL_VERTEX_SOURCE_ATI 0x8774 typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); #endif # 6455 "../mesa/include/GL/glext.h" #endif /* GL_ATI_vertex_streams */ # 6456 "../mesa/include/GL/glext.h" #ifndef GL_EXT_422_pixels #define GL_EXT_422_pixels 1 #define GL_422_EXT 0x80CC #define GL_422_REV_EXT 0x80CD #define GL_422_AVERAGE_EXT 0x80CE #define GL_422_REV_AVERAGE_EXT 0x80CF #endif /* GL_EXT_422_pixels */ # 6464 "../mesa/include/GL/glext.h" #ifndef GL_EXT_EGL_image_storage #define GL_EXT_EGL_image_storage 1 typedef void *GLeglImageOES; typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); #endif # 6474 "../mesa/include/GL/glext.h" #endif /* GL_EXT_EGL_image_storage */ # 6475 "../mesa/include/GL/glext.h" #ifndef GL_EXT_EGL_sync #define GL_EXT_EGL_sync 1 #endif /* GL_EXT_EGL_sync */ # 6479 "../mesa/include/GL/glext.h" #ifndef GL_EXT_abgr #define GL_EXT_abgr 1 #define GL_ABGR_EXT 0x8000 #endif /* GL_EXT_abgr */ # 6484 "../mesa/include/GL/glext.h" #ifndef GL_EXT_bgra #define GL_EXT_bgra 1 #define GL_BGR_EXT 0x80E0 #define GL_BGRA_EXT 0x80E1 #endif /* GL_EXT_bgra */ # 6490 "../mesa/include/GL/glext.h" #ifndef GL_EXT_bindable_uniform #define GL_EXT_bindable_uniform 1 #define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 #define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 #define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 #define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED #define GL_UNIFORM_BUFFER_EXT 0x8DEE #define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); #endif # 6507 "../mesa/include/GL/glext.h" #endif /* GL_EXT_bindable_uniform */ # 6508 "../mesa/include/GL/glext.h" #ifndef GL_EXT_blend_color #define GL_EXT_blend_color 1 #define GL_CONSTANT_COLOR_EXT 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 #define GL_CONSTANT_ALPHA_EXT 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 #define GL_BLEND_COLOR_EXT 0x8005 typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendColorEXT (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); #endif # 6520 "../mesa/include/GL/glext.h" #endif /* GL_EXT_blend_color */ # 6521 "../mesa/include/GL/glext.h" #ifndef GL_EXT_blend_equation_separate #define GL_EXT_blend_equation_separate 1 #define GL_BLEND_EQUATION_RGB_EXT 0x8009 #define GL_BLEND_EQUATION_ALPHA_EXT 0x883D typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); #endif # 6530 "../mesa/include/GL/glext.h" #endif /* GL_EXT_blend_equation_separate */ # 6531 "../mesa/include/GL/glext.h" #ifndef GL_EXT_blend_func_separate #define GL_EXT_blend_func_separate 1 #define GL_BLEND_DST_RGB_EXT 0x80C8 #define GL_BLEND_SRC_RGB_EXT 0x80C9 #define GL_BLEND_DST_ALPHA_EXT 0x80CA #define GL_BLEND_SRC_ALPHA_EXT 0x80CB typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #endif # 6542 "../mesa/include/GL/glext.h" #endif /* GL_EXT_blend_func_separate */ # 6543 "../mesa/include/GL/glext.h" #ifndef GL_EXT_blend_logic_op #define GL_EXT_blend_logic_op 1 #endif /* GL_EXT_blend_logic_op */ # 6547 "../mesa/include/GL/glext.h" #ifndef GL_EXT_blend_minmax #define GL_EXT_blend_minmax 1 #define GL_MIN_EXT 0x8007 #define GL_MAX_EXT 0x8008 #define GL_FUNC_ADD_EXT 0x8006 #define GL_BLEND_EQUATION_EXT 0x8009 typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); #endif # 6558 "../mesa/include/GL/glext.h" #endif /* GL_EXT_blend_minmax */ # 6559 "../mesa/include/GL/glext.h" #ifndef GL_EXT_blend_subtract #define GL_EXT_blend_subtract 1 #define GL_FUNC_SUBTRACT_EXT 0x800A #define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B #endif /* GL_EXT_blend_subtract */ # 6565 "../mesa/include/GL/glext.h" #ifndef GL_EXT_clip_volume_hint #define GL_EXT_clip_volume_hint 1 #define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 #endif /* GL_EXT_clip_volume_hint */ # 6570 "../mesa/include/GL/glext.h" #ifndef GL_EXT_cmyka #define GL_EXT_cmyka 1 #define GL_CMYK_EXT 0x800C #define GL_CMYKA_EXT 0x800D #define GL_PACK_CMYK_HINT_EXT 0x800E #define GL_UNPACK_CMYK_HINT_EXT 0x800F #endif /* GL_EXT_cmyka */ # 6578 "../mesa/include/GL/glext.h" #ifndef GL_EXT_color_subtable #define GL_EXT_color_subtable 1 typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); #endif # 6587 "../mesa/include/GL/glext.h" #endif /* GL_EXT_color_subtable */ # 6588 "../mesa/include/GL/glext.h" #ifndef GL_EXT_compiled_vertex_array #define GL_EXT_compiled_vertex_array 1 #define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 #define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); GLAPI void APIENTRY glUnlockArraysEXT (void); #endif # 6599 "../mesa/include/GL/glext.h" #endif /* GL_EXT_compiled_vertex_array */ # 6600 "../mesa/include/GL/glext.h" #ifndef GL_EXT_convolution #define GL_EXT_convolution 1 #define GL_CONVOLUTION_1D_EXT 0x8010 #define GL_CONVOLUTION_2D_EXT 0x8011 #define GL_SEPARABLE_2D_EXT 0x8012 #define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 #define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 #define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 #define GL_REDUCE_EXT 0x8016 #define GL_CONVOLUTION_FORMAT_EXT 0x8017 #define GL_CONVOLUTION_WIDTH_EXT 0x8018 #define GL_CONVOLUTION_HEIGHT_EXT 0x8019 #define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A #define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B #define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C #define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D #define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E #define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F #define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 #define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 #define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 #define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *image); typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *image); GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *image); GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, void *image); GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, void *row, void *column, void *span); GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *row, const void *column); #endif # 6651 "../mesa/include/GL/glext.h" #endif /* GL_EXT_convolution */ # 6652 "../mesa/include/GL/glext.h" #ifndef GL_EXT_coordinate_frame #define GL_EXT_coordinate_frame 1 #define GL_TANGENT_ARRAY_EXT 0x8439 #define GL_BINORMAL_ARRAY_EXT 0x843A #define GL_CURRENT_TANGENT_EXT 0x843B #define GL_CURRENT_BINORMAL_EXT 0x843C #define GL_TANGENT_ARRAY_TYPE_EXT 0x843E #define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F #define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 #define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 #define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 #define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 #define GL_MAP1_TANGENT_EXT 0x8444 #define GL_MAP2_TANGENT_EXT 0x8445 #define GL_MAP1_BINORMAL_EXT 0x8446 #define GL_MAP2_BINORMAL_EXT 0x8447 typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const void *pointer); #endif # 6715 "../mesa/include/GL/glext.h" #endif /* GL_EXT_coordinate_frame */ # 6716 "../mesa/include/GL/glext.h" #ifndef GL_EXT_copy_texture #define GL_EXT_copy_texture 1 typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); #endif # 6731 "../mesa/include/GL/glext.h" #endif /* GL_EXT_copy_texture */ # 6732 "../mesa/include/GL/glext.h" #ifndef GL_EXT_cull_vertex #define GL_EXT_cull_vertex 1 #define GL_CULL_VERTEX_EXT 0x81AA #define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB #define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); #endif # 6744 "../mesa/include/GL/glext.h" #endif /* GL_EXT_cull_vertex */ # 6745 "../mesa/include/GL/glext.h" #ifndef GL_EXT_debug_label #define GL_EXT_debug_label 1 #define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F #define GL_PROGRAM_OBJECT_EXT 0x8B40 #define GL_SHADER_OBJECT_EXT 0x8B48 #define GL_BUFFER_OBJECT_EXT 0x9151 #define GL_QUERY_OBJECT_EXT 0x9153 #define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); #endif # 6760 "../mesa/include/GL/glext.h" #endif /* GL_EXT_debug_label */ # 6761 "../mesa/include/GL/glext.h" #ifndef GL_EXT_debug_marker #define GL_EXT_debug_marker 1 typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); GLAPI void APIENTRY glPopGroupMarkerEXT (void); #endif # 6772 "../mesa/include/GL/glext.h" #endif /* GL_EXT_debug_marker */ # 6773 "../mesa/include/GL/glext.h" #ifndef GL_EXT_depth_bounds_test #define GL_EXT_depth_bounds_test 1 #define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 #define GL_DEPTH_BOUNDS_EXT 0x8891 typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); #endif # 6782 "../mesa/include/GL/glext.h" #endif /* GL_EXT_depth_bounds_test */ # 6783 "../mesa/include/GL/glext.h" #ifndef GL_EXT_direct_state_access #define GL_EXT_direct_state_access 1 #define GL_PROGRAM_MATRIX_EXT 0x8E2D #define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E #define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, void **data); typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, void *img); typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, void *img); typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void **params); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); typedef void (APIENTRYP PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); typedef void (APIENTRYP PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat *params); typedef void (APIENTRYP PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble *params); typedef void (APIENTRYP PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, void **params); typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void *string); typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, void **param); typedef void (APIENTRYP PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint *param); typedef void (APIENTRYP PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, void **param); typedef void *(APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTPROC) (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC) (GLuint framebuffer, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEEXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC) (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); typedef void (APIENTRYP PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC) (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC) (GLuint vaobj, GLuint attribindex, GLuint bindingindex); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) (GLuint vaobj, GLuint bindingindex, GLuint divisor); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC) (GLuint vaobj, GLuint index, GLuint divisor); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels); GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, void **data); GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, void *img); GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits); GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, void *img); GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); GLAPI void *APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, void **params); GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); GLAPI void APIENTRY glEnableClientStateiEXT (GLenum array, GLuint index); GLAPI void APIENTRY glDisableClientStateiEXT (GLenum array, GLuint index); GLAPI void APIENTRY glGetFloati_vEXT (GLenum pname, GLuint index, GLfloat *params); GLAPI void APIENTRY glGetDoublei_vEXT (GLenum pname, GLuint index, GLdouble *params); GLAPI void APIENTRY glGetPointeri_vEXT (GLenum pname, GLuint index, void **params); GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const void *string); GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, void *string); GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); GLAPI void APIENTRY glVertexArrayVertexOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayEdgeFlagOffsetEXT (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayIndexOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayNormalOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayMultiTexCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayFogCoordOffsetEXT (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArraySecondaryColorOffsetEXT (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayVertexAttribOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glVertexArrayVertexAttribIOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glEnableVertexArrayEXT (GLuint vaobj, GLenum array); GLAPI void APIENTRY glDisableVertexArrayEXT (GLuint vaobj, GLenum array); GLAPI void APIENTRY glEnableVertexArrayAttribEXT (GLuint vaobj, GLuint index); GLAPI void APIENTRY glDisableVertexArrayAttribEXT (GLuint vaobj, GLuint index); GLAPI void APIENTRY glGetVertexArrayIntegervEXT (GLuint vaobj, GLenum pname, GLint *param); GLAPI void APIENTRY glGetVertexArrayPointervEXT (GLuint vaobj, GLenum pname, void **param); GLAPI void APIENTRY glGetVertexArrayIntegeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, GLint *param); GLAPI void APIENTRY glGetVertexArrayPointeri_vEXT (GLuint vaobj, GLuint index, GLenum pname, void **param); GLAPI void *APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); GLAPI void APIENTRY glNamedBufferStorageEXT (GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); GLAPI void APIENTRY glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glClearNamedBufferSubDataEXT (GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); GLAPI void APIENTRY glNamedFramebufferParameteriEXT (GLuint framebuffer, GLenum pname, GLint param); GLAPI void APIENTRY glGetNamedFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); GLAPI void APIENTRY glTextureBufferRangeEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GLAPI void APIENTRY glTextureStorage2DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); GLAPI void APIENTRY glTextureStorage3DMultisampleEXT (GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); GLAPI void APIENTRY glVertexArrayBindVertexBufferEXT (GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); GLAPI void APIENTRY glVertexArrayVertexAttribFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); GLAPI void APIENTRY glVertexArrayVertexAttribIFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GLAPI void APIENTRY glVertexArrayVertexAttribLFormatEXT (GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GLAPI void APIENTRY glVertexArrayVertexAttribBindingEXT (GLuint vaobj, GLuint attribindex, GLuint bindingindex); GLAPI void APIENTRY glVertexArrayVertexBindingDivisorEXT (GLuint vaobj, GLuint bindingindex, GLuint divisor); GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); GLAPI void APIENTRY glTexturePageCommitmentEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); GLAPI void APIENTRY glVertexArrayVertexAttribDivisorEXT (GLuint vaobj, GLuint index, GLuint divisor); #endif # 7301 "../mesa/include/GL/glext.h" #endif /* GL_EXT_direct_state_access */ # 7302 "../mesa/include/GL/glext.h" #ifndef GL_EXT_draw_buffers2 #define GL_EXT_draw_buffers2 1 typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); #endif # 7309 "../mesa/include/GL/glext.h" #endif /* GL_EXT_draw_buffers2 */ # 7310 "../mesa/include/GL/glext.h" #ifndef GL_EXT_draw_instanced #define GL_EXT_draw_instanced 1 typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #endif # 7319 "../mesa/include/GL/glext.h" #endif /* GL_EXT_draw_instanced */ # 7320 "../mesa/include/GL/glext.h" #ifndef GL_EXT_draw_range_elements #define GL_EXT_draw_range_elements 1 #define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 #define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); #endif # 7329 "../mesa/include/GL/glext.h" #endif /* GL_EXT_draw_range_elements */ # 7330 "../mesa/include/GL/glext.h" #ifndef GL_EXT_external_buffer #define GL_EXT_external_buffer 1 typedef void *GLeglClientBufferEXT; typedef void (APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); GLAPI void APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); #endif # 7340 "../mesa/include/GL/glext.h" #endif /* GL_EXT_external_buffer */ # 7341 "../mesa/include/GL/glext.h" #ifndef GL_EXT_fog_coord #define GL_EXT_fog_coord 1 #define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 #define GL_FOG_COORDINATE_EXT 0x8451 #define GL_FRAGMENT_DEPTH_EXT 0x8452 #define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 #define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 #define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 #define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 #define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const void *pointer); #endif # 7364 "../mesa/include/GL/glext.h" #endif /* GL_EXT_fog_coord */ # 7365 "../mesa/include/GL/glext.h" #ifndef GL_EXT_framebuffer_blit #define GL_EXT_framebuffer_blit 1 #define GL_READ_FRAMEBUFFER_EXT 0x8CA8 #define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #endif # 7376 "../mesa/include/GL/glext.h" #endif /* GL_EXT_framebuffer_blit */ # 7377 "../mesa/include/GL/glext.h" #ifndef GL_EXT_framebuffer_blit_layers #define GL_EXT_framebuffer_blit_layers 1 typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERLAYERSEXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERLAYEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlitFramebufferLayersEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GLAPI void APIENTRY glBlitFramebufferLayerEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter); #endif # 7386 "../mesa/include/GL/glext.h" #endif /* GL_EXT_framebuffer_blit_layers */ # 7387 "../mesa/include/GL/glext.h" #ifndef GL_EXT_framebuffer_multisample #define GL_EXT_framebuffer_multisample 1 #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 #define GL_MAX_SAMPLES_EXT 0x8D57 typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #endif # 7397 "../mesa/include/GL/glext.h" #endif /* GL_EXT_framebuffer_multisample */ # 7398 "../mesa/include/GL/glext.h" #ifndef GL_EXT_framebuffer_multisample_blit_scaled #define GL_EXT_framebuffer_multisample_blit_scaled 1 #define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA #define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB #endif /* GL_EXT_framebuffer_multisample_blit_scaled */ # 7404 "../mesa/include/GL/glext.h" #ifndef GL_EXT_framebuffer_object #define GL_EXT_framebuffer_object 1 #define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 #define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 #define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 #define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 #define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA #define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB #define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC #define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD #define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 #define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 #define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 #define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 #define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 #define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 #define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 #define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 #define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 #define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 #define GL_COLOR_ATTACHMENT10_EXT 0x8CEA #define GL_COLOR_ATTACHMENT11_EXT 0x8CEB #define GL_COLOR_ATTACHMENT12_EXT 0x8CEC #define GL_COLOR_ATTACHMENT13_EXT 0x8CED #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF #define GL_DEPTH_ATTACHMENT_EXT 0x8D00 #define GL_STENCIL_ATTACHMENT_EXT 0x8D20 #define GL_FRAMEBUFFER_EXT 0x8D40 #define GL_RENDERBUFFER_EXT 0x8D41 #define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 #define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 #define GL_STENCIL_INDEX1_EXT 0x8D46 #define GL_STENCIL_INDEX4_EXT 0x8D47 #define GL_STENCIL_INDEX8_EXT 0x8D48 #define GL_STENCIL_INDEX16_EXT 0x8D49 #define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); #endif # 7494 "../mesa/include/GL/glext.h" #endif /* GL_EXT_framebuffer_object */ # 7495 "../mesa/include/GL/glext.h" #ifndef GL_EXT_framebuffer_sRGB #define GL_EXT_framebuffer_sRGB 1 #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 #define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA #endif /* GL_EXT_framebuffer_sRGB */ # 7501 "../mesa/include/GL/glext.h" #ifndef GL_EXT_geometry_shader4 #define GL_EXT_geometry_shader4 1 #define GL_GEOMETRY_SHADER_EXT 0x8DD9 #define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA #define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB #define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 #define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD #define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE #define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 #define GL_LINES_ADJACENCY_EXT 0x000A #define GL_LINE_STRIP_ADJACENCY_EXT 0x000B #define GL_TRIANGLES_ADJACENCY_EXT 0x000C #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 #define GL_PROGRAM_POINT_SIZE_EXT 0x8642 typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); #endif # 7528 "../mesa/include/GL/glext.h" #endif /* GL_EXT_geometry_shader4 */ # 7529 "../mesa/include/GL/glext.h" #ifndef GL_EXT_gpu_program_parameters #define GL_EXT_gpu_program_parameters 1 typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); #endif # 7538 "../mesa/include/GL/glext.h" #endif /* GL_EXT_gpu_program_parameters */ # 7539 "../mesa/include/GL/glext.h" #ifndef GL_EXT_gpu_shader4 #define GL_EXT_gpu_shader4 1 #define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 #define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 #define GL_SAMPLER_BUFFER_EXT 0x8DC2 #define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 #define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 #define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 #define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 #define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 #define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 #define GL_INT_SAMPLER_1D_EXT 0x8DC9 #define GL_INT_SAMPLER_2D_EXT 0x8DCA #define GL_INT_SAMPLER_3D_EXT 0x8DCB #define GL_INT_SAMPLER_CUBE_EXT 0x8DCC #define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD #define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE #define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF #define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 #define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 #define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 #define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 #define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 #define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); #endif # 7640 "../mesa/include/GL/glext.h" #endif /* GL_EXT_gpu_shader4 */ # 7641 "../mesa/include/GL/glext.h" #ifndef GL_EXT_histogram #define GL_EXT_histogram 1 #define GL_HISTOGRAM_EXT 0x8024 #define GL_PROXY_HISTOGRAM_EXT 0x8025 #define GL_HISTOGRAM_WIDTH_EXT 0x8026 #define GL_HISTOGRAM_FORMAT_EXT 0x8027 #define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 #define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 #define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A #define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B #define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C #define GL_HISTOGRAM_SINK_EXT 0x802D #define GL_MINMAX_EXT 0x802E #define GL_MINMAX_FORMAT_EXT 0x802F #define GL_MINMAX_SINK_EXT 0x8030 #define GL_TABLE_TOO_LARGE_EXT 0x8031 typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, void *values); GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); GLAPI void APIENTRY glResetHistogramEXT (GLenum target); GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); #endif # 7680 "../mesa/include/GL/glext.h" #endif /* GL_EXT_histogram */ # 7681 "../mesa/include/GL/glext.h" #ifndef GL_EXT_index_array_formats #define GL_EXT_index_array_formats 1 #define GL_IUI_V2F_EXT 0x81AD #define GL_IUI_V3F_EXT 0x81AE #define GL_IUI_N3F_V2F_EXT 0x81AF #define GL_IUI_N3F_V3F_EXT 0x81B0 #define GL_T2F_IUI_V2F_EXT 0x81B1 #define GL_T2F_IUI_V3F_EXT 0x81B2 #define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 #define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 #endif /* GL_EXT_index_array_formats */ # 7693 "../mesa/include/GL/glext.h" #ifndef GL_EXT_index_func #define GL_EXT_index_func 1 #define GL_INDEX_TEST_EXT 0x81B5 #define GL_INDEX_TEST_FUNC_EXT 0x81B6 #define GL_INDEX_TEST_REF_EXT 0x81B7 typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); #endif # 7703 "../mesa/include/GL/glext.h" #endif /* GL_EXT_index_func */ # 7704 "../mesa/include/GL/glext.h" #ifndef GL_EXT_index_material #define GL_EXT_index_material 1 #define GL_INDEX_MATERIAL_EXT 0x81B8 #define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 #define GL_INDEX_MATERIAL_FACE_EXT 0x81BA typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); #endif # 7714 "../mesa/include/GL/glext.h" #endif /* GL_EXT_index_material */ # 7715 "../mesa/include/GL/glext.h" #ifndef GL_EXT_index_texture #define GL_EXT_index_texture 1 #endif /* GL_EXT_index_texture */ # 7719 "../mesa/include/GL/glext.h" #ifndef GL_EXT_light_texture #define GL_EXT_light_texture 1 #define GL_FRAGMENT_MATERIAL_EXT 0x8349 #define GL_FRAGMENT_NORMAL_EXT 0x834A #define GL_FRAGMENT_COLOR_EXT 0x834C #define GL_ATTENUATION_EXT 0x834D #define GL_SHADOW_ATTENUATION_EXT 0x834E #define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F #define GL_TEXTURE_LIGHT_EXT 0x8350 #define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 #define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); GLAPI void APIENTRY glTextureLightEXT (GLenum pname); GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); #endif # 7739 "../mesa/include/GL/glext.h" #endif /* GL_EXT_light_texture */ # 7740 "../mesa/include/GL/glext.h" #ifndef GL_EXT_memory_object #define GL_EXT_memory_object 1 #define GL_TEXTURE_TILING_EXT 0x9580 #define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 #define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B #define GL_NUM_TILING_TYPES_EXT 0x9582 #define GL_TILING_TYPES_EXT 0x9583 #define GL_OPTIMAL_TILING_EXT 0x9584 #define GL_LINEAR_TILING_EXT 0x9585 #define GL_NUM_DEVICE_UUIDS_EXT 0x9596 #define GL_DEVICE_UUID_EXT 0x9597 #define GL_DRIVER_UUID_EXT 0x9598 #define GL_UUID_SIZE_EXT 16 typedef void (APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); typedef void (APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); typedef void (APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); typedef GLboolean (APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); typedef void (APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); typedef void (APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXSTORAGEMEM1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXTURESTORAGEMEM1DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); GLAPI void APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); GLAPI void APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); GLAPI GLboolean APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); GLAPI void APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); GLAPI void APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); GLAPI void APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); GLAPI void APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTexStorageMem1DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTextureStorageMem1DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); #endif # 7794 "../mesa/include/GL/glext.h" #endif /* GL_EXT_memory_object */ # 7795 "../mesa/include/GL/glext.h" #ifndef GL_EXT_memory_object_fd #define GL_EXT_memory_object_fd 1 #define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 typedef void (APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); #endif # 7803 "../mesa/include/GL/glext.h" #endif /* GL_EXT_memory_object_fd */ # 7804 "../mesa/include/GL/glext.h" #ifndef GL_EXT_memory_object_win32 #define GL_EXT_memory_object_win32 1 #define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 #define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 #define GL_DEVICE_LUID_EXT 0x9599 #define GL_DEVICE_NODE_MASK_EXT 0x959A #define GL_LUID_SIZE_EXT 8 #define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 #define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A #define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B #define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C typedef void (APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); typedef void (APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); GLAPI void APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); #endif # 7822 "../mesa/include/GL/glext.h" #endif /* GL_EXT_memory_object_win32 */ # 7823 "../mesa/include/GL/glext.h" #ifndef GL_EXT_misc_attribute #define GL_EXT_misc_attribute 1 #endif /* GL_EXT_misc_attribute */ # 7827 "../mesa/include/GL/glext.h" #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); #endif # 7836 "../mesa/include/GL/glext.h" #endif /* GL_EXT_multi_draw_arrays */ # 7837 "../mesa/include/GL/glext.h" #ifndef GL_EXT_multisample #define GL_EXT_multisample 1 #define GL_MULTISAMPLE_EXT 0x809D #define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F #define GL_SAMPLE_MASK_EXT 0x80A0 #define GL_1PASS_EXT 0x80A1 #define GL_2PASS_0_EXT 0x80A2 #define GL_2PASS_1_EXT 0x80A3 #define GL_4PASS_0_EXT 0x80A4 #define GL_4PASS_1_EXT 0x80A5 #define GL_4PASS_2_EXT 0x80A6 #define GL_4PASS_3_EXT 0x80A7 #define GL_SAMPLE_BUFFERS_EXT 0x80A8 #define GL_SAMPLES_EXT 0x80A9 #define GL_SAMPLE_MASK_VALUE_EXT 0x80AA #define GL_SAMPLE_MASK_INVERT_EXT 0x80AB #define GL_SAMPLE_PATTERN_EXT 0x80AC #define GL_MULTISAMPLE_BIT_EXT 0x20000000 typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); #endif # 7863 "../mesa/include/GL/glext.h" #endif /* GL_EXT_multisample */ # 7864 "../mesa/include/GL/glext.h" #ifndef GL_EXT_multiview_tessellation_geometry_shader #define GL_EXT_multiview_tessellation_geometry_shader 1 #endif /* GL_EXT_multiview_tessellation_geometry_shader */ # 7868 "../mesa/include/GL/glext.h" #ifndef GL_EXT_multiview_texture_multisample #define GL_EXT_multiview_texture_multisample 1 #endif /* GL_EXT_multiview_texture_multisample */ # 7872 "../mesa/include/GL/glext.h" #ifndef GL_EXT_multiview_timer_query #define GL_EXT_multiview_timer_query 1 #endif /* GL_EXT_multiview_timer_query */ # 7876 "../mesa/include/GL/glext.h" #ifndef GL_EXT_packed_depth_stencil #define GL_EXT_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_EXT 0x84F9 #define GL_UNSIGNED_INT_24_8_EXT 0x84FA #define GL_DEPTH24_STENCIL8_EXT 0x88F0 #define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 #endif /* GL_EXT_packed_depth_stencil */ # 7884 "../mesa/include/GL/glext.h" #ifndef GL_EXT_packed_float #define GL_EXT_packed_float 1 #define GL_R11F_G11F_B10F_EXT 0x8C3A #define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B #define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C #endif /* GL_EXT_packed_float */ # 7891 "../mesa/include/GL/glext.h" #ifndef GL_EXT_packed_pixels #define GL_EXT_packed_pixels 1 #define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 #define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 #define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 #define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 #endif /* GL_EXT_packed_pixels */ # 7900 "../mesa/include/GL/glext.h" #ifndef GL_EXT_paletted_texture #define GL_EXT_paletted_texture 1 #define GL_COLOR_INDEX1_EXT 0x80E2 #define GL_COLOR_INDEX2_EXT 0x80E3 #define GL_COLOR_INDEX4_EXT 0x80E4 #define GL_COLOR_INDEX8_EXT 0x80E5 #define GL_COLOR_INDEX12_EXT 0x80E6 #define GL_COLOR_INDEX16_EXT 0x80E7 #define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, void *data); typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void *table); GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, void *data); GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); #endif # 7920 "../mesa/include/GL/glext.h" #endif /* GL_EXT_paletted_texture */ # 7921 "../mesa/include/GL/glext.h" #ifndef GL_EXT_pixel_buffer_object #define GL_EXT_pixel_buffer_object 1 #define GL_PIXEL_PACK_BUFFER_EXT 0x88EB #define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF #endif /* GL_EXT_pixel_buffer_object */ # 7929 "../mesa/include/GL/glext.h" #ifndef GL_EXT_pixel_transform #define GL_EXT_pixel_transform 1 #define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 #define GL_PIXEL_MAG_FILTER_EXT 0x8331 #define GL_PIXEL_MIN_FILTER_EXT 0x8332 #define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 #define GL_CUBIC_EXT 0x8334 #define GL_AVERAGE_EXT 0x8335 #define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 #define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 #define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glGetPixelTransformParameterivEXT (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetPixelTransformParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); #endif # 7955 "../mesa/include/GL/glext.h" #endif /* GL_EXT_pixel_transform */ # 7956 "../mesa/include/GL/glext.h" #ifndef GL_EXT_pixel_transform_color_table #define GL_EXT_pixel_transform_color_table 1 #endif /* GL_EXT_pixel_transform_color_table */ # 7960 "../mesa/include/GL/glext.h" #ifndef GL_EXT_point_parameters #define GL_EXT_point_parameters 1 #define GL_POINT_SIZE_MIN_EXT 0x8126 #define GL_POINT_SIZE_MAX_EXT 0x8127 #define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 #define GL_DISTANCE_ATTENUATION_EXT 0x8129 typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); #endif # 7973 "../mesa/include/GL/glext.h" #endif /* GL_EXT_point_parameters */ # 7974 "../mesa/include/GL/glext.h" #ifndef GL_EXT_polygon_offset #define GL_EXT_polygon_offset 1 #define GL_POLYGON_OFFSET_EXT 0x8037 #define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 #define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); #endif # 7984 "../mesa/include/GL/glext.h" #endif /* GL_EXT_polygon_offset */ # 7985 "../mesa/include/GL/glext.h" #ifndef GL_EXT_polygon_offset_clamp #define GL_EXT_polygon_offset_clamp 1 #define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); #endif # 7993 "../mesa/include/GL/glext.h" #endif /* GL_EXT_polygon_offset_clamp */ # 7994 "../mesa/include/GL/glext.h" #ifndef GL_EXT_post_depth_coverage #define GL_EXT_post_depth_coverage 1 #endif /* GL_EXT_post_depth_coverage */ # 7998 "../mesa/include/GL/glext.h" #ifndef GL_EXT_provoking_vertex #define GL_EXT_provoking_vertex 1 #define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C #define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E #define GL_PROVOKING_VERTEX_EXT 0x8E4F typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); #endif # 8009 "../mesa/include/GL/glext.h" #endif /* GL_EXT_provoking_vertex */ # 8010 "../mesa/include/GL/glext.h" #ifndef GL_EXT_raster_multisample #define GL_EXT_raster_multisample 1 #define GL_RASTER_MULTISAMPLE_EXT 0x9327 #define GL_RASTER_SAMPLES_EXT 0x9328 #define GL_MAX_RASTER_SAMPLES_EXT 0x9329 #define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A #define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B #define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C typedef void (APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); #endif # 8023 "../mesa/include/GL/glext.h" #endif /* GL_EXT_raster_multisample */ # 8024 "../mesa/include/GL/glext.h" #ifndef GL_EXT_rescale_normal #define GL_EXT_rescale_normal 1 #define GL_RESCALE_NORMAL_EXT 0x803A #endif /* GL_EXT_rescale_normal */ # 8029 "../mesa/include/GL/glext.h" #ifndef GL_EXT_secondary_color #define GL_EXT_secondary_color 1 #define GL_COLOR_SUM_EXT 0x8458 #define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 #define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A #define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B #define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C #define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D #define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); #endif # 8075 "../mesa/include/GL/glext.h" #endif /* GL_EXT_secondary_color */ # 8076 "../mesa/include/GL/glext.h" #ifndef GL_EXT_semaphore #define GL_EXT_semaphore 1 #define GL_LAYOUT_GENERAL_EXT 0x958D #define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E #define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F #define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 #define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 #define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 #define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 #define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 #define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 typedef void (APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); typedef void (APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); typedef GLboolean (APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); typedef void (APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); typedef void (APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); GLAPI void APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); GLAPI GLboolean APIENTRY glIsSemaphoreEXT (GLuint semaphore); GLAPI void APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); GLAPI void APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); GLAPI void APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); GLAPI void APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); #endif # 8104 "../mesa/include/GL/glext.h" #endif /* GL_EXT_semaphore */ # 8105 "../mesa/include/GL/glext.h" #ifndef GL_EXT_semaphore_fd #define GL_EXT_semaphore_fd 1 typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); #endif # 8112 "../mesa/include/GL/glext.h" #endif /* GL_EXT_semaphore_fd */ # 8113 "../mesa/include/GL/glext.h" #ifndef GL_EXT_semaphore_win32 #define GL_EXT_semaphore_win32 1 #define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 #define GL_D3D12_FENCE_VALUE_EXT 0x9595 typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); typedef void (APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); GLAPI void APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); #endif # 8124 "../mesa/include/GL/glext.h" #endif /* GL_EXT_semaphore_win32 */ # 8125 "../mesa/include/GL/glext.h" #ifndef GL_EXT_separate_shader_objects #define GL_EXT_separate_shader_objects 1 #define GL_ACTIVE_PROGRAM_EXT 0x8B8D typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); GLAPI void APIENTRY glActiveProgramEXT (GLuint program); GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); #endif # 8137 "../mesa/include/GL/glext.h" #endif /* GL_EXT_separate_shader_objects */ # 8138 "../mesa/include/GL/glext.h" #ifndef GL_EXT_separate_specular_color #define GL_EXT_separate_specular_color 1 #define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 #define GL_SINGLE_COLOR_EXT 0x81F9 #define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA #endif /* GL_EXT_separate_specular_color */ # 8145 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shader_framebuffer_fetch #define GL_EXT_shader_framebuffer_fetch 1 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 #endif /* GL_EXT_shader_framebuffer_fetch */ # 8150 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shader_framebuffer_fetch_non_coherent #define GL_EXT_shader_framebuffer_fetch_non_coherent 1 typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void); #endif # 8157 "../mesa/include/GL/glext.h" #endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ # 8158 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shader_image_load_formatted #define GL_EXT_shader_image_load_formatted 1 #endif /* GL_EXT_shader_image_load_formatted */ # 8162 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shader_image_load_store #define GL_EXT_shader_image_load_store 1 #define GL_MAX_IMAGE_UNITS_EXT 0x8F38 #define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 #define GL_IMAGE_BINDING_NAME_EXT 0x8F3A #define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B #define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C #define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D #define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E #define GL_IMAGE_1D_EXT 0x904C #define GL_IMAGE_2D_EXT 0x904D #define GL_IMAGE_3D_EXT 0x904E #define GL_IMAGE_2D_RECT_EXT 0x904F #define GL_IMAGE_CUBE_EXT 0x9050 #define GL_IMAGE_BUFFER_EXT 0x9051 #define GL_IMAGE_1D_ARRAY_EXT 0x9052 #define GL_IMAGE_2D_ARRAY_EXT 0x9053 #define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 #define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 #define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 #define GL_INT_IMAGE_1D_EXT 0x9057 #define GL_INT_IMAGE_2D_EXT 0x9058 #define GL_INT_IMAGE_3D_EXT 0x9059 #define GL_INT_IMAGE_2D_RECT_EXT 0x905A #define GL_INT_IMAGE_CUBE_EXT 0x905B #define GL_INT_IMAGE_BUFFER_EXT 0x905C #define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D #define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E #define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F #define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 #define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 #define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 #define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 #define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 #define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 #define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C #define GL_MAX_IMAGE_SAMPLES_EXT 0x906D #define GL_IMAGE_BINDING_FORMAT_EXT 0x906E #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 #define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 #define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 #define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 #define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 #define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 #define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 #define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 #define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 #define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 #define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); #endif # 8226 "../mesa/include/GL/glext.h" #endif /* GL_EXT_shader_image_load_store */ # 8227 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shader_integer_mix #define GL_EXT_shader_integer_mix 1 #endif /* GL_EXT_shader_integer_mix */ # 8231 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shader_samples_identical #define GL_EXT_shader_samples_identical 1 #endif /* GL_EXT_shader_samples_identical */ # 8235 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shadow_funcs #define GL_EXT_shadow_funcs 1 #endif /* GL_EXT_shadow_funcs */ # 8239 "../mesa/include/GL/glext.h" #ifndef GL_EXT_shared_texture_palette #define GL_EXT_shared_texture_palette 1 #define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB #endif /* GL_EXT_shared_texture_palette */ # 8244 "../mesa/include/GL/glext.h" #ifndef GL_EXT_sparse_texture2 #define GL_EXT_sparse_texture2 1 #endif /* GL_EXT_sparse_texture2 */ # 8248 "../mesa/include/GL/glext.h" #ifndef GL_EXT_stencil_clear_tag #define GL_EXT_stencil_clear_tag 1 #define GL_STENCIL_TAG_BITS_EXT 0x88F2 #define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); #endif # 8257 "../mesa/include/GL/glext.h" #endif /* GL_EXT_stencil_clear_tag */ # 8258 "../mesa/include/GL/glext.h" #ifndef GL_EXT_stencil_two_side #define GL_EXT_stencil_two_side 1 #define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 #define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); #endif # 8267 "../mesa/include/GL/glext.h" #endif /* GL_EXT_stencil_two_side */ # 8268 "../mesa/include/GL/glext.h" #ifndef GL_EXT_stencil_wrap #define GL_EXT_stencil_wrap 1 #define GL_INCR_WRAP_EXT 0x8507 #define GL_DECR_WRAP_EXT 0x8508 #endif /* GL_EXT_stencil_wrap */ # 8274 "../mesa/include/GL/glext.h" #ifndef GL_EXT_subtexture #define GL_EXT_subtexture 1 typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); #endif # 8283 "../mesa/include/GL/glext.h" #endif /* GL_EXT_subtexture */ # 8284 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture #define GL_EXT_texture 1 #define GL_ALPHA4_EXT 0x803B #define GL_ALPHA8_EXT 0x803C #define GL_ALPHA12_EXT 0x803D #define GL_ALPHA16_EXT 0x803E #define GL_LUMINANCE4_EXT 0x803F #define GL_LUMINANCE8_EXT 0x8040 #define GL_LUMINANCE12_EXT 0x8041 #define GL_LUMINANCE16_EXT 0x8042 #define GL_LUMINANCE4_ALPHA4_EXT 0x8043 #define GL_LUMINANCE6_ALPHA2_EXT 0x8044 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 #define GL_LUMINANCE12_ALPHA4_EXT 0x8046 #define GL_LUMINANCE12_ALPHA12_EXT 0x8047 #define GL_LUMINANCE16_ALPHA16_EXT 0x8048 #define GL_INTENSITY_EXT 0x8049 #define GL_INTENSITY4_EXT 0x804A #define GL_INTENSITY8_EXT 0x804B #define GL_INTENSITY12_EXT 0x804C #define GL_INTENSITY16_EXT 0x804D #define GL_RGB2_EXT 0x804E #define GL_RGB4_EXT 0x804F #define GL_RGB5_EXT 0x8050 #define GL_RGB8_EXT 0x8051 #define GL_RGB10_EXT 0x8052 #define GL_RGB12_EXT 0x8053 #define GL_RGB16_EXT 0x8054 #define GL_RGBA2_EXT 0x8055 #define GL_RGBA4_EXT 0x8056 #define GL_RGB5_A1_EXT 0x8057 #define GL_RGBA8_EXT 0x8058 #define GL_RGB10_A2_EXT 0x8059 #define GL_RGBA12_EXT 0x805A #define GL_RGBA16_EXT 0x805B #define GL_TEXTURE_RED_SIZE_EXT 0x805C #define GL_TEXTURE_GREEN_SIZE_EXT 0x805D #define GL_TEXTURE_BLUE_SIZE_EXT 0x805E #define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F #define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 #define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 #define GL_REPLACE_EXT 0x8062 #define GL_PROXY_TEXTURE_1D_EXT 0x8063 #define GL_PROXY_TEXTURE_2D_EXT 0x8064 #define GL_TEXTURE_TOO_LARGE_EXT 0x8065 #endif /* GL_EXT_texture */ # 8331 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture3D #define GL_EXT_texture3D 1 #define GL_PACK_SKIP_IMAGES_EXT 0x806B #define GL_PACK_IMAGE_HEIGHT_EXT 0x806C #define GL_UNPACK_SKIP_IMAGES_EXT 0x806D #define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E #define GL_TEXTURE_3D_EXT 0x806F #define GL_PROXY_TEXTURE_3D_EXT 0x8070 #define GL_TEXTURE_DEPTH_EXT 0x8071 #define GL_TEXTURE_WRAP_R_EXT 0x8072 #define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); #endif # 8349 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture3D */ # 8350 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_array #define GL_EXT_texture_array 1 #define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 #define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 #define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A #define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B #define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C #define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D #define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF #define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); #endif # 8365 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture_array */ # 8366 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_buffer_object #define GL_EXT_texture_buffer_object 1 #define GL_TEXTURE_BUFFER_EXT 0x8C2A #define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B #define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D #define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); #endif # 8378 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture_buffer_object */ # 8379 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_compression_latc #define GL_EXT_texture_compression_latc 1 #define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 #define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 #define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 #define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 #endif /* GL_EXT_texture_compression_latc */ # 8387 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_compression_rgtc #define GL_EXT_texture_compression_rgtc 1 #define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB #define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC #define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD #define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE #endif /* GL_EXT_texture_compression_rgtc */ # 8395 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_compression_s3tc #define GL_EXT_texture_compression_s3tc 1 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 #endif /* GL_EXT_texture_compression_s3tc */ # 8403 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_cube_map #define GL_EXT_texture_cube_map 1 #define GL_NORMAL_MAP_EXT 0x8511 #define GL_REFLECTION_MAP_EXT 0x8512 #define GL_TEXTURE_CUBE_MAP_EXT 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A #define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C #endif /* GL_EXT_texture_cube_map */ # 8419 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_env_add #define GL_EXT_texture_env_add 1 #endif /* GL_EXT_texture_env_add */ # 8423 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_env_combine #define GL_EXT_texture_env_combine 1 #define GL_COMBINE_EXT 0x8570 #define GL_COMBINE_RGB_EXT 0x8571 #define GL_COMBINE_ALPHA_EXT 0x8572 #define GL_RGB_SCALE_EXT 0x8573 #define GL_ADD_SIGNED_EXT 0x8574 #define GL_INTERPOLATE_EXT 0x8575 #define GL_CONSTANT_EXT 0x8576 #define GL_PRIMARY_COLOR_EXT 0x8577 #define GL_PREVIOUS_EXT 0x8578 #define GL_SOURCE0_RGB_EXT 0x8580 #define GL_SOURCE1_RGB_EXT 0x8581 #define GL_SOURCE2_RGB_EXT 0x8582 #define GL_SOURCE0_ALPHA_EXT 0x8588 #define GL_SOURCE1_ALPHA_EXT 0x8589 #define GL_SOURCE2_ALPHA_EXT 0x858A #define GL_OPERAND0_RGB_EXT 0x8590 #define GL_OPERAND1_RGB_EXT 0x8591 #define GL_OPERAND2_RGB_EXT 0x8592 #define GL_OPERAND0_ALPHA_EXT 0x8598 #define GL_OPERAND1_ALPHA_EXT 0x8599 #define GL_OPERAND2_ALPHA_EXT 0x859A #endif /* GL_EXT_texture_env_combine */ # 8448 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_env_dot3 #define GL_EXT_texture_env_dot3 1 #define GL_DOT3_RGB_EXT 0x8740 #define GL_DOT3_RGBA_EXT 0x8741 #endif /* GL_EXT_texture_env_dot3 */ # 8454 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF #endif /* GL_EXT_texture_filter_anisotropic */ # 8460 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_filter_minmax #define GL_EXT_texture_filter_minmax 1 #define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 #define GL_WEIGHTED_AVERAGE_EXT 0x9367 #endif /* GL_EXT_texture_filter_minmax */ # 8466 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_integer #define GL_EXT_texture_integer 1 #define GL_RGBA32UI_EXT 0x8D70 #define GL_RGB32UI_EXT 0x8D71 #define GL_ALPHA32UI_EXT 0x8D72 #define GL_INTENSITY32UI_EXT 0x8D73 #define GL_LUMINANCE32UI_EXT 0x8D74 #define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 #define GL_RGBA16UI_EXT 0x8D76 #define GL_RGB16UI_EXT 0x8D77 #define GL_ALPHA16UI_EXT 0x8D78 #define GL_INTENSITY16UI_EXT 0x8D79 #define GL_LUMINANCE16UI_EXT 0x8D7A #define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B #define GL_RGBA8UI_EXT 0x8D7C #define GL_RGB8UI_EXT 0x8D7D #define GL_ALPHA8UI_EXT 0x8D7E #define GL_INTENSITY8UI_EXT 0x8D7F #define GL_LUMINANCE8UI_EXT 0x8D80 #define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 #define GL_RGBA32I_EXT 0x8D82 #define GL_RGB32I_EXT 0x8D83 #define GL_ALPHA32I_EXT 0x8D84 #define GL_INTENSITY32I_EXT 0x8D85 #define GL_LUMINANCE32I_EXT 0x8D86 #define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 #define GL_RGBA16I_EXT 0x8D88 #define GL_RGB16I_EXT 0x8D89 #define GL_ALPHA16I_EXT 0x8D8A #define GL_INTENSITY16I_EXT 0x8D8B #define GL_LUMINANCE16I_EXT 0x8D8C #define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D #define GL_RGBA8I_EXT 0x8D8E #define GL_RGB8I_EXT 0x8D8F #define GL_ALPHA8I_EXT 0x8D90 #define GL_INTENSITY8I_EXT 0x8D91 #define GL_LUMINANCE8I_EXT 0x8D92 #define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 #define GL_RED_INTEGER_EXT 0x8D94 #define GL_GREEN_INTEGER_EXT 0x8D95 #define GL_BLUE_INTEGER_EXT 0x8D96 #define GL_ALPHA_INTEGER_EXT 0x8D97 #define GL_RGB_INTEGER_EXT 0x8D98 #define GL_RGBA_INTEGER_EXT 0x8D99 #define GL_BGR_INTEGER_EXT 0x8D9A #define GL_BGRA_INTEGER_EXT 0x8D9B #define GL_LUMINANCE_INTEGER_EXT 0x8D9C #define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D #define GL_RGBA_INTEGER_MODE_EXT 0x8D9E typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); #endif # 8530 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture_integer */ # 8531 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_lod_bias #define GL_EXT_texture_lod_bias 1 #define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD #define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 #define GL_TEXTURE_LOD_BIAS_EXT 0x8501 #endif /* GL_EXT_texture_lod_bias */ # 8538 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_mirror_clamp #define GL_EXT_texture_mirror_clamp 1 #define GL_MIRROR_CLAMP_EXT 0x8742 #define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 #define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 #endif /* GL_EXT_texture_mirror_clamp */ # 8545 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_object #define GL_EXT_texture_object 1 #define GL_TEXTURE_PRIORITY_EXT 0x8066 #define GL_TEXTURE_RESIDENT_EXT 0x8067 #define GL_TEXTURE_1D_BINDING_EXT 0x8068 #define GL_TEXTURE_2D_BINDING_EXT 0x8069 #define GL_TEXTURE_3D_BINDING_EXT 0x806A typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); #endif # 8567 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture_object */ # 8568 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_perturb_normal #define GL_EXT_texture_perturb_normal 1 #define GL_PERTURB_EXT 0x85AE #define GL_TEXTURE_NORMAL_EXT 0x85AF typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); #endif # 8577 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture_perturb_normal */ # 8578 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_sRGB #define GL_EXT_texture_sRGB 1 #define GL_SRGB_EXT 0x8C40 #define GL_SRGB8_EXT 0x8C41 #define GL_SRGB_ALPHA_EXT 0x8C42 #define GL_SRGB8_ALPHA8_EXT 0x8C43 #define GL_SLUMINANCE_ALPHA_EXT 0x8C44 #define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 #define GL_SLUMINANCE_EXT 0x8C46 #define GL_SLUMINANCE8_EXT 0x8C47 #define GL_COMPRESSED_SRGB_EXT 0x8C48 #define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 #define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A #define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F #endif /* GL_EXT_texture_sRGB */ # 8598 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_sRGB_R8 #define GL_EXT_texture_sRGB_R8 1 #define GL_SR8_EXT 0x8FBD #endif /* GL_EXT_texture_sRGB_R8 */ # 8603 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_sRGB_RG8 #define GL_EXT_texture_sRGB_RG8 1 #define GL_SRG8_EXT 0x8FBE #endif /* GL_EXT_texture_sRGB_RG8 */ # 8608 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_sRGB_decode #define GL_EXT_texture_sRGB_decode 1 #define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 #define GL_DECODE_EXT 0x8A49 #define GL_SKIP_DECODE_EXT 0x8A4A #endif /* GL_EXT_texture_sRGB_decode */ # 8615 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_shadow_lod #define GL_EXT_texture_shadow_lod 1 #endif /* GL_EXT_texture_shadow_lod */ # 8619 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_shared_exponent #define GL_EXT_texture_shared_exponent 1 #define GL_RGB9_E5_EXT 0x8C3D #define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E #define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F #endif /* GL_EXT_texture_shared_exponent */ # 8626 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_snorm #define GL_EXT_texture_snorm 1 #define GL_ALPHA_SNORM 0x9010 #define GL_LUMINANCE_SNORM 0x9011 #define GL_LUMINANCE_ALPHA_SNORM 0x9012 #define GL_INTENSITY_SNORM 0x9013 #define GL_ALPHA8_SNORM 0x9014 #define GL_LUMINANCE8_SNORM 0x9015 #define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 #define GL_INTENSITY8_SNORM 0x9017 #define GL_ALPHA16_SNORM 0x9018 #define GL_LUMINANCE16_SNORM 0x9019 #define GL_LUMINANCE16_ALPHA16_SNORM 0x901A #define GL_INTENSITY16_SNORM 0x901B #define GL_RED_SNORM 0x8F90 #define GL_RG_SNORM 0x8F91 #define GL_RGB_SNORM 0x8F92 #define GL_RGBA_SNORM 0x8F93 #endif /* GL_EXT_texture_snorm */ # 8646 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_storage #define GL_EXT_texture_storage 1 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F #define GL_RGBA32F_EXT 0x8814 #define GL_RGB32F_EXT 0x8815 #define GL_ALPHA32F_EXT 0x8816 #define GL_LUMINANCE32F_EXT 0x8818 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819 #define GL_RGBA16F_EXT 0x881A #define GL_RGB16F_EXT 0x881B #define GL_ALPHA16F_EXT 0x881C #define GL_LUMINANCE16F_EXT 0x881E #define GL_LUMINANCE_ALPHA16F_EXT 0x881F #define GL_BGRA8_EXT 0x93A1 #define GL_R8_EXT 0x8229 #define GL_RG8_EXT 0x822B #define GL_R32F_EXT 0x822E #define GL_RG32F_EXT 0x8230 #define GL_R16F_EXT 0x822D #define GL_RG16F_EXT 0x822F typedef void (APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GLAPI void APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GLAPI void APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif # 8675 "../mesa/include/GL/glext.h" #endif /* GL_EXT_texture_storage */ # 8676 "../mesa/include/GL/glext.h" #ifndef GL_EXT_texture_swizzle #define GL_EXT_texture_swizzle 1 #define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 #define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 #define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 #define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 #define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 #endif /* GL_EXT_texture_swizzle */ # 8685 "../mesa/include/GL/glext.h" #ifndef GL_EXT_timer_query #define GL_EXT_timer_query 1 #define GL_TIME_ELAPSED_EXT 0x88BF typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); #endif # 8695 "../mesa/include/GL/glext.h" #endif /* GL_EXT_timer_query */ # 8696 "../mesa/include/GL/glext.h" #ifndef GL_EXT_transform_feedback #define GL_EXT_transform_feedback 1 #define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F #define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C #define GL_SEPARATE_ATTRIBS_EXT 0x8C8D #define GL_PRIMITIVES_GENERATED_EXT 0x8C87 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 #define GL_RASTERIZER_DISCARD_EXT 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 #define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); GLAPI void APIENTRY glEndTransformFeedbackEXT (void); GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); #endif # 8730 "../mesa/include/GL/glext.h" #endif /* GL_EXT_transform_feedback */ # 8731 "../mesa/include/GL/glext.h" #ifndef GL_EXT_vertex_array #define GL_EXT_vertex_array 1 #define GL_VERTEX_ARRAY_EXT 0x8074 #define GL_NORMAL_ARRAY_EXT 0x8075 #define GL_COLOR_ARRAY_EXT 0x8076 #define GL_INDEX_ARRAY_EXT 0x8077 #define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 #define GL_EDGE_FLAG_ARRAY_EXT 0x8079 #define GL_VERTEX_ARRAY_SIZE_EXT 0x807A #define GL_VERTEX_ARRAY_TYPE_EXT 0x807B #define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C #define GL_VERTEX_ARRAY_COUNT_EXT 0x807D #define GL_NORMAL_ARRAY_TYPE_EXT 0x807E #define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F #define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 #define GL_COLOR_ARRAY_SIZE_EXT 0x8081 #define GL_COLOR_ARRAY_TYPE_EXT 0x8082 #define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 #define GL_COLOR_ARRAY_COUNT_EXT 0x8084 #define GL_INDEX_ARRAY_TYPE_EXT 0x8085 #define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 #define GL_INDEX_ARRAY_COUNT_EXT 0x8087 #define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 #define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 #define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A #define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B #define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C #define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D #define GL_VERTEX_ARRAY_POINTER_EXT 0x808E #define GL_NORMAL_ARRAY_POINTER_EXT 0x808F #define GL_COLOR_ARRAY_POINTER_EXT 0x8090 #define GL_INDEX_ARRAY_POINTER_EXT 0x8091 #define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 #define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, void **params); typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void *pointer); typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glArrayElementEXT (GLint i); GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); GLAPI void APIENTRY glGetPointervEXT (GLenum pname, void **params); GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const void *pointer); GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const void *pointer); #endif # 8786 "../mesa/include/GL/glext.h" #endif /* GL_EXT_vertex_array */ # 8787 "../mesa/include/GL/glext.h" #ifndef GL_EXT_vertex_array_bgra #define GL_EXT_vertex_array_bgra 1 #endif /* GL_EXT_vertex_array_bgra */ # 8791 "../mesa/include/GL/glext.h" #ifndef GL_EXT_vertex_attrib_64bit #define GL_EXT_vertex_attrib_64bit 1 #define GL_DOUBLE_VEC2_EXT 0x8FFC #define GL_DOUBLE_VEC3_EXT 0x8FFD #define GL_DOUBLE_VEC4_EXT 0x8FFE #define GL_DOUBLE_MAT2_EXT 0x8F46 #define GL_DOUBLE_MAT3_EXT 0x8F47 #define GL_DOUBLE_MAT4_EXT 0x8F48 #define GL_DOUBLE_MAT2x3_EXT 0x8F49 #define GL_DOUBLE_MAT2x4_EXT 0x8F4A #define GL_DOUBLE_MAT3x2_EXT 0x8F4B #define GL_DOUBLE_MAT3x4_EXT 0x8F4C #define GL_DOUBLE_MAT4x2_EXT 0x8F4D #define GL_DOUBLE_MAT4x3_EXT 0x8F4E typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); #endif # 8828 "../mesa/include/GL/glext.h" #endif /* GL_EXT_vertex_attrib_64bit */ # 8829 "../mesa/include/GL/glext.h" #ifndef GL_EXT_vertex_shader #define GL_EXT_vertex_shader 1 #define GL_VERTEX_SHADER_EXT 0x8780 #define GL_VERTEX_SHADER_BINDING_EXT 0x8781 #define GL_OP_INDEX_EXT 0x8782 #define GL_OP_NEGATE_EXT 0x8783 #define GL_OP_DOT3_EXT 0x8784 #define GL_OP_DOT4_EXT 0x8785 #define GL_OP_MUL_EXT 0x8786 #define GL_OP_ADD_EXT 0x8787 #define GL_OP_MADD_EXT 0x8788 #define GL_OP_FRAC_EXT 0x8789 #define GL_OP_MAX_EXT 0x878A #define GL_OP_MIN_EXT 0x878B #define GL_OP_SET_GE_EXT 0x878C #define GL_OP_SET_LT_EXT 0x878D #define GL_OP_CLAMP_EXT 0x878E #define GL_OP_FLOOR_EXT 0x878F #define GL_OP_ROUND_EXT 0x8790 #define GL_OP_EXP_BASE_2_EXT 0x8791 #define GL_OP_LOG_BASE_2_EXT 0x8792 #define GL_OP_POWER_EXT 0x8793 #define GL_OP_RECIP_EXT 0x8794 #define GL_OP_RECIP_SQRT_EXT 0x8795 #define GL_OP_SUB_EXT 0x8796 #define GL_OP_CROSS_PRODUCT_EXT 0x8797 #define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 #define GL_OP_MOV_EXT 0x8799 #define GL_OUTPUT_VERTEX_EXT 0x879A #define GL_OUTPUT_COLOR0_EXT 0x879B #define GL_OUTPUT_COLOR1_EXT 0x879C #define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D #define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E #define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F #define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 #define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 #define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 #define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 #define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 #define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 #define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 #define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 #define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 #define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 #define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA #define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB #define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC #define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD #define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE #define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF #define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 #define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 #define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 #define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 #define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 #define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 #define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 #define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 #define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 #define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 #define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA #define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB #define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC #define GL_OUTPUT_FOG_EXT 0x87BD #define GL_SCALAR_EXT 0x87BE #define GL_VECTOR_EXT 0x87BF #define GL_MATRIX_EXT 0x87C0 #define GL_VARIANT_EXT 0x87C1 #define GL_INVARIANT_EXT 0x87C2 #define GL_LOCAL_CONSTANT_EXT 0x87C3 #define GL_LOCAL_EXT 0x87C4 #define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 #define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 #define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 #define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 #define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 #define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA #define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB #define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC #define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD #define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE #define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF #define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 #define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 #define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 #define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 #define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 #define GL_X_EXT 0x87D5 #define GL_Y_EXT 0x87D6 #define GL_Z_EXT 0x87D7 #define GL_W_EXT 0x87D8 #define GL_NEGATIVE_X_EXT 0x87D9 #define GL_NEGATIVE_Y_EXT 0x87DA #define GL_NEGATIVE_Z_EXT 0x87DB #define GL_NEGATIVE_W_EXT 0x87DC #define GL_ZERO_EXT 0x87DD #define GL_ONE_EXT 0x87DE #define GL_NEGATIVE_ONE_EXT 0x87DF #define GL_NORMALIZED_RANGE_EXT 0x87E0 #define GL_FULL_RANGE_EXT 0x87E1 #define GL_CURRENT_VERTEX_EXT 0x87E2 #define GL_MVP_MATRIX_EXT 0x87E3 #define GL_VARIANT_VALUE_EXT 0x87E4 #define GL_VARIANT_DATATYPE_EXT 0x87E5 #define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 #define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 #define GL_VARIANT_ARRAY_EXT 0x87E8 #define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 #define GL_INVARIANT_VALUE_EXT 0x87EA #define GL_INVARIANT_DATATYPE_EXT 0x87EB #define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC #define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const void *addr); typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const void *addr); typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const void *addr); typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, void **data); typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginVertexShaderEXT (void); GLAPI void APIENTRY glEndVertexShaderEXT (void); GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const void *addr); GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const void *addr); GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const void *addr); GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, void **data); GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); #endif # 9028 "../mesa/include/GL/glext.h" #endif /* GL_EXT_vertex_shader */ # 9029 "../mesa/include/GL/glext.h" #ifndef GL_EXT_vertex_weighting #define GL_EXT_vertex_weighting 1 #define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3 #define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 #define GL_MODELVIEW0_MATRIX_EXT 0x0BA6 #define GL_MODELVIEW1_MATRIX_EXT 0x8506 #define GL_VERTEX_WEIGHTING_EXT 0x8509 #define GL_MODELVIEW0_EXT 0x1700 #define GL_MODELVIEW1_EXT 0x850A #define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B #define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C #define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D #define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E #define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F #define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); GLAPI void APIENTRY glVertexWeightPointerEXT (GLint size, GLenum type, GLsizei stride, const void *pointer); #endif # 9053 "../mesa/include/GL/glext.h" #endif /* GL_EXT_vertex_weighting */ # 9054 "../mesa/include/GL/glext.h" #ifndef GL_EXT_win32_keyed_mutex #define GL_EXT_win32_keyed_mutex 1 typedef GLboolean (APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); typedef GLboolean (APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLboolean APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); GLAPI GLboolean APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); #endif # 9063 "../mesa/include/GL/glext.h" #endif /* GL_EXT_win32_keyed_mutex */ # 9064 "../mesa/include/GL/glext.h" #ifndef GL_EXT_window_rectangles #define GL_EXT_window_rectangles 1 #define GL_INCLUSIVE_EXT 0x8F10 #define GL_EXCLUSIVE_EXT 0x8F11 #define GL_WINDOW_RECTANGLE_EXT 0x8F12 #define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 #define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 #define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 typedef void (APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); #endif # 9077 "../mesa/include/GL/glext.h" #endif /* GL_EXT_window_rectangles */ # 9078 "../mesa/include/GL/glext.h" #ifndef GL_EXT_x11_sync_object #define GL_EXT_x11_sync_object 1 #define GL_SYNC_X11_FENCE_EXT 0x90E1 typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); #endif # 9086 "../mesa/include/GL/glext.h" #endif /* GL_EXT_x11_sync_object */ # 9087 "../mesa/include/GL/glext.h" #ifndef GL_GREMEDY_frame_terminator #define GL_GREMEDY_frame_terminator 1 typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); #endif # 9094 "../mesa/include/GL/glext.h" #endif /* GL_GREMEDY_frame_terminator */ # 9095 "../mesa/include/GL/glext.h" #ifndef GL_GREMEDY_string_marker #define GL_GREMEDY_string_marker 1 typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const void *string); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const void *string); #endif # 9102 "../mesa/include/GL/glext.h" #endif /* GL_GREMEDY_string_marker */ # 9103 "../mesa/include/GL/glext.h" #ifndef GL_HP_convolution_border_modes #define GL_HP_convolution_border_modes 1 #define GL_IGNORE_BORDER_HP 0x8150 #define GL_CONSTANT_BORDER_HP 0x8151 #define GL_REPLICATE_BORDER_HP 0x8153 #define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 #endif /* GL_HP_convolution_border_modes */ # 9111 "../mesa/include/GL/glext.h" #ifndef GL_HP_image_transform #define GL_HP_image_transform 1 #define GL_IMAGE_SCALE_X_HP 0x8155 #define GL_IMAGE_SCALE_Y_HP 0x8156 #define GL_IMAGE_TRANSLATE_X_HP 0x8157 #define GL_IMAGE_TRANSLATE_Y_HP 0x8158 #define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 #define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A #define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B #define GL_IMAGE_MAG_FILTER_HP 0x815C #define GL_IMAGE_MIN_FILTER_HP 0x815D #define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E #define GL_CUBIC_HP 0x815F #define GL_AVERAGE_HP 0x8160 #define GL_IMAGE_TRANSFORM_2D_HP 0x8161 #define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 #define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); #endif # 9143 "../mesa/include/GL/glext.h" #endif /* GL_HP_image_transform */ # 9144 "../mesa/include/GL/glext.h" #ifndef GL_HP_occlusion_test #define GL_HP_occlusion_test 1 #define GL_OCCLUSION_TEST_HP 0x8165 #define GL_OCCLUSION_TEST_RESULT_HP 0x8166 #endif /* GL_HP_occlusion_test */ # 9150 "../mesa/include/GL/glext.h" #ifndef GL_HP_texture_lighting #define GL_HP_texture_lighting 1 #define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 #define GL_TEXTURE_POST_SPECULAR_HP 0x8168 #define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 #endif /* GL_HP_texture_lighting */ # 9157 "../mesa/include/GL/glext.h" #ifndef GL_IBM_cull_vertex #define GL_IBM_cull_vertex 1 #define GL_CULL_VERTEX_IBM 103050 #endif /* GL_IBM_cull_vertex */ # 9162 "../mesa/include/GL/glext.h" #ifndef GL_IBM_multimode_draw_arrays #define GL_IBM_multimode_draw_arrays 1 typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, GLint modestride); #endif # 9171 "../mesa/include/GL/glext.h" #endif /* GL_IBM_multimode_draw_arrays */ # 9172 "../mesa/include/GL/glext.h" #ifndef GL_IBM_rasterpos_clip #define GL_IBM_rasterpos_clip 1 #define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 #endif /* GL_IBM_rasterpos_clip */ # 9177 "../mesa/include/GL/glext.h" #ifndef GL_IBM_static_data #define GL_IBM_static_data 1 #define GL_ALL_STATIC_DATA_IBM 103060 #define GL_STATIC_VERTEX_ARRAY_IBM 103061 typedef void (APIENTRYP PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFlushStaticDataIBM (GLenum target); #endif # 9186 "../mesa/include/GL/glext.h" #endif /* GL_IBM_static_data */ # 9187 "../mesa/include/GL/glext.h" #ifndef GL_IBM_texture_mirrored_repeat #define GL_IBM_texture_mirrored_repeat 1 #define GL_MIRRORED_REPEAT_IBM 0x8370 #endif /* GL_IBM_texture_mirrored_repeat */ # 9192 "../mesa/include/GL/glext.h" #ifndef GL_IBM_vertex_array_lists #define GL_IBM_vertex_array_lists 1 #define GL_VERTEX_ARRAY_LIST_IBM 103070 #define GL_NORMAL_ARRAY_LIST_IBM 103071 #define GL_COLOR_ARRAY_LIST_IBM 103072 #define GL_INDEX_ARRAY_LIST_IBM 103073 #define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 #define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 #define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 #define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 #define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 #define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 #define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 #define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 #define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 #define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 #define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 #define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const void **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean **pointer, GLint ptrstride); GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const void **pointer, GLint ptrstride); GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const void **pointer, GLint ptrstride); #endif # 9229 "../mesa/include/GL/glext.h" #endif /* GL_IBM_vertex_array_lists */ # 9230 "../mesa/include/GL/glext.h" #ifndef GL_INGR_blend_func_separate #define GL_INGR_blend_func_separate 1 typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); #endif # 9237 "../mesa/include/GL/glext.h" #endif /* GL_INGR_blend_func_separate */ # 9238 "../mesa/include/GL/glext.h" #ifndef GL_INGR_color_clamp #define GL_INGR_color_clamp 1 #define GL_RED_MIN_CLAMP_INGR 0x8560 #define GL_GREEN_MIN_CLAMP_INGR 0x8561 #define GL_BLUE_MIN_CLAMP_INGR 0x8562 #define GL_ALPHA_MIN_CLAMP_INGR 0x8563 #define GL_RED_MAX_CLAMP_INGR 0x8564 #define GL_GREEN_MAX_CLAMP_INGR 0x8565 #define GL_BLUE_MAX_CLAMP_INGR 0x8566 #define GL_ALPHA_MAX_CLAMP_INGR 0x8567 #endif /* GL_INGR_color_clamp */ # 9250 "../mesa/include/GL/glext.h" #ifndef GL_INGR_interlace_read #define GL_INGR_interlace_read 1 #define GL_INTERLACE_READ_INGR 0x8568 #endif /* GL_INGR_interlace_read */ # 9255 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_blackhole_render #define GL_INTEL_blackhole_render 1 #define GL_BLACKHOLE_RENDER_INTEL 0x83FC #endif /* GL_INTEL_blackhole_render */ # 9260 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_conservative_rasterization #define GL_INTEL_conservative_rasterization 1 #define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE #endif /* GL_INTEL_conservative_rasterization */ # 9265 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_fragment_shader_ordering #define GL_INTEL_fragment_shader_ordering 1 #endif /* GL_INTEL_fragment_shader_ordering */ # 9269 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_framebuffer_CMAA #define GL_INTEL_framebuffer_CMAA 1 typedef void (APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); #endif # 9276 "../mesa/include/GL/glext.h" #endif /* GL_INTEL_framebuffer_CMAA */ # 9277 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_map_texture #define GL_INTEL_map_texture 1 #define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF #define GL_LAYOUT_DEFAULT_INTEL 0 #define GL_LAYOUT_LINEAR_INTEL 1 #define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 2 typedef void (APIENTRYP PFNGLSYNCTEXTUREINTELPROC) (GLuint texture); typedef void (APIENTRYP PFNGLUNMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level); typedef void *(APIENTRYP PFNGLMAPTEXTURE2DINTELPROC) (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSyncTextureINTEL (GLuint texture); GLAPI void APIENTRY glUnmapTexture2DINTEL (GLuint texture, GLint level); GLAPI void *APIENTRY glMapTexture2DINTEL (GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout); #endif # 9292 "../mesa/include/GL/glext.h" #endif /* GL_INTEL_map_texture */ # 9293 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_parallel_arrays #define GL_INTEL_parallel_arrays 1 #define GL_PARALLEL_ARRAYS_INTEL 0x83F4 #define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 #define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 #define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 #define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const void **pointer); typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const void **pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const void **pointer); GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const void **pointer); GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const void **pointer); GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const void **pointer); #endif # 9311 "../mesa/include/GL/glext.h" #endif /* GL_INTEL_parallel_arrays */ # 9312 "../mesa/include/GL/glext.h" #ifndef GL_INTEL_performance_query #define GL_INTEL_performance_query 1 #define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 #define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 #define GL_PERFQUERY_WAIT_INTEL 0x83FB #define GL_PERFQUERY_FLUSH_INTEL 0x83FA #define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 #define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 #define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 #define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 #define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 #define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 #define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 #define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 #define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 #define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA #define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB #define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC #define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD #define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE #define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF #define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 typedef void (APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); typedef void (APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); typedef void (APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); GLAPI void APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); GLAPI void APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); #endif # 9357 "../mesa/include/GL/glext.h" #endif /* GL_INTEL_performance_query */ # 9358 "../mesa/include/GL/glext.h" #ifndef GL_MESAX_texture_stack #define GL_MESAX_texture_stack 1 #define GL_TEXTURE_1D_STACK_MESAX 0x8759 #define GL_TEXTURE_2D_STACK_MESAX 0x875A #define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B #define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C #define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D #define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E #endif /* GL_MESAX_texture_stack */ # 9368 "../mesa/include/GL/glext.h" #ifndef GL_MESA_framebuffer_flip_x #define GL_MESA_framebuffer_flip_x 1 #define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC #endif /* GL_MESA_framebuffer_flip_x */ # 9373 "../mesa/include/GL/glext.h" #ifndef GL_MESA_framebuffer_flip_y #define GL_MESA_framebuffer_flip_y 1 #define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); GLAPI void APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); #endif # 9383 "../mesa/include/GL/glext.h" #endif /* GL_MESA_framebuffer_flip_y */ # 9384 "../mesa/include/GL/glext.h" #ifndef GL_MESA_framebuffer_swap_xy #define GL_MESA_framebuffer_swap_xy 1 #define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD #endif /* GL_MESA_framebuffer_swap_xy */ # 9389 "../mesa/include/GL/glext.h" #ifndef GL_MESA_pack_invert #define GL_MESA_pack_invert 1 #define GL_PACK_INVERT_MESA 0x8758 #endif /* GL_MESA_pack_invert */ # 9394 "../mesa/include/GL/glext.h" #ifndef GL_MESA_program_binary_formats #define GL_MESA_program_binary_formats 1 #define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F #endif /* GL_MESA_program_binary_formats */ # 9399 "../mesa/include/GL/glext.h" #ifndef GL_MESA_resize_buffers #define GL_MESA_resize_buffers 1 typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glResizeBuffersMESA (void); #endif # 9406 "../mesa/include/GL/glext.h" #endif /* GL_MESA_resize_buffers */ # 9407 "../mesa/include/GL/glext.h" #ifndef GL_MESA_shader_integer_functions #define GL_MESA_shader_integer_functions 1 #endif /* GL_MESA_shader_integer_functions */ # 9411 "../mesa/include/GL/glext.h" #ifndef GL_MESA_tile_raster_order #define GL_MESA_tile_raster_order 1 #define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8 #define GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9 #define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA #endif /* GL_MESA_tile_raster_order */ # 9418 "../mesa/include/GL/glext.h" #ifndef GL_MESA_window_pos #define GL_MESA_window_pos 1 typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); #endif # 9471 "../mesa/include/GL/glext.h" #endif /* GL_MESA_window_pos */ # 9472 "../mesa/include/GL/glext.h" #ifndef GL_MESA_ycbcr_texture #define GL_MESA_ycbcr_texture 1 #define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA #define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB #define GL_YCBCR_MESA 0x8757 #endif /* GL_MESA_ycbcr_texture */ # 9479 "../mesa/include/GL/glext.h" #ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers #define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 #endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ # 9483 "../mesa/include/GL/glext.h" #ifndef GL_NVX_conditional_render #define GL_NVX_conditional_render 1 typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVXPROC) (GLuint id); typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVXPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginConditionalRenderNVX (GLuint id); GLAPI void APIENTRY glEndConditionalRenderNVX (void); #endif # 9492 "../mesa/include/GL/glext.h" #endif /* GL_NVX_conditional_render */ # 9493 "../mesa/include/GL/glext.h" #ifndef GL_NVX_gpu_memory_info #define GL_NVX_gpu_memory_info 1 #define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 #define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 #define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 #define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A #define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B #endif /* GL_NVX_gpu_memory_info */ # 9502 "../mesa/include/GL/glext.h" #ifndef GL_NVX_gpu_multicast2 #define GL_NVX_gpu_multicast2 1 #define GL_UPLOAD_GPU_MASK_NVX 0x954A typedef void (APIENTRYP PFNGLUPLOADGPUMASKNVXPROC) (GLbitfield mask); typedef void (APIENTRYP PFNGLMULTICASTVIEWPORTARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC) (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); typedef void (APIENTRYP PFNGLMULTICASTSCISSORARRAYVNVXPROC) (GLuint gpu, GLuint first, GLsizei count, const GLint *v); typedef GLuint (APIENTRYP PFNGLASYNCCOPYBUFFERSUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); typedef GLuint (APIENTRYP PFNGLASYNCCOPYIMAGESUBDATANVXPROC) (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glUploadGpuMaskNVX (GLbitfield mask); GLAPI void APIENTRY glMulticastViewportArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glMulticastViewportPositionWScaleNVX (GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff); GLAPI void APIENTRY glMulticastScissorArrayvNVX (GLuint gpu, GLuint first, GLsizei count, const GLint *v); GLAPI GLuint APIENTRY glAsyncCopyBufferSubDataNVX (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); GLAPI GLuint APIENTRY glAsyncCopyImageSubDataNVX (GLsizei waitSemaphoreCount, const GLuint *waitSemaphoreArray, const GLuint64 *waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint *signalSemaphoreArray, const GLuint64 *signalValueArray); #endif # 9520 "../mesa/include/GL/glext.h" #endif /* GL_NVX_gpu_multicast2 */ # 9521 "../mesa/include/GL/glext.h" #ifndef GL_NVX_linked_gpu_multicast #define GL_NVX_linked_gpu_multicast 1 #define GL_LGPU_SEPARATE_STORAGE_BIT_NVX 0x0800 #define GL_MAX_LGPU_GPUS_NVX 0x92BA typedef void (APIENTRYP PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); typedef void (APIENTRYP PFNGLLGPUCOPYIMAGESUBDATANVXPROC) (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); typedef void (APIENTRYP PFNGLLGPUINTERLOCKNVXPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glLGPUNamedBufferSubDataNVX (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); GLAPI void APIENTRY glLGPUCopyImageSubDataNVX (GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); GLAPI void APIENTRY glLGPUInterlockNVX (void); #endif # 9534 "../mesa/include/GL/glext.h" #endif /* GL_NVX_linked_gpu_multicast */ # 9535 "../mesa/include/GL/glext.h" #ifndef GL_NVX_progress_fence #define GL_NVX_progress_fence 1 typedef GLuint (APIENTRYP PFNGLCREATEPROGRESSFENCENVXPROC) (void); typedef void (APIENTRYP PFNGLSIGNALSEMAPHOREUI64NVXPROC) (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); typedef void (APIENTRYP PFNGLWAITSEMAPHOREUI64NVXPROC) (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); typedef void (APIENTRYP PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC) (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLuint APIENTRY glCreateProgressFenceNVX (void); GLAPI void APIENTRY glSignalSemaphoreui64NVX (GLuint signalGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); GLAPI void APIENTRY glWaitSemaphoreui64NVX (GLuint waitGpu, GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); GLAPI void APIENTRY glClientWaitSemaphoreui64NVX (GLsizei fenceObjectCount, const GLuint *semaphoreArray, const GLuint64 *fenceValueArray); #endif # 9548 "../mesa/include/GL/glext.h" #endif /* GL_NVX_progress_fence */ # 9549 "../mesa/include/GL/glext.h" #ifndef GL_NV_alpha_to_coverage_dither_control #define GL_NV_alpha_to_coverage_dither_control 1 #define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV 0x934D #define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV 0x934E #define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV 0x934F #define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV 0x92BF typedef void (APIENTRYP PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glAlphaToCoverageDitherControlNV (GLenum mode); #endif # 9560 "../mesa/include/GL/glext.h" #endif /* GL_NV_alpha_to_coverage_dither_control */ # 9561 "../mesa/include/GL/glext.h" #ifndef GL_NV_bindless_multi_draw_indirect #define GL_NV_bindless_multi_draw_indirect 1 typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount); #endif # 9570 "../mesa/include/GL/glext.h" #endif /* GL_NV_bindless_multi_draw_indirect */ # 9571 "../mesa/include/GL/glext.h" #ifndef GL_NV_bindless_multi_draw_indirect_count #define GL_NV_bindless_multi_draw_indirect_count 1 typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMultiDrawArraysIndirectBindlessCountNV (GLenum mode, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); GLAPI void APIENTRY glMultiDrawElementsIndirectBindlessCountNV (GLenum mode, GLenum type, const void *indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount); #endif # 9580 "../mesa/include/GL/glext.h" #endif /* GL_NV_bindless_multi_draw_indirect_count */ # 9581 "../mesa/include/GL/glext.h" #ifndef GL_NV_bindless_texture #define GL_NV_bindless_texture 1 typedef GLuint64 (APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); typedef GLuint64 (APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); typedef void (APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); typedef GLuint64 (APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); typedef void (APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); typedef void (APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); typedef GLboolean (APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); typedef GLboolean (APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLuint64 APIENTRY glGetTextureHandleNV (GLuint texture); GLAPI GLuint64 APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); GLAPI void APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); GLAPI void APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); GLAPI GLuint64 APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); GLAPI void APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); GLAPI void APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); GLAPI void APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); GLAPI void APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); GLAPI void APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); GLAPI void APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); GLAPI GLboolean APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); GLAPI GLboolean APIENTRY glIsImageHandleResidentNV (GLuint64 handle); #endif # 9612 "../mesa/include/GL/glext.h" #endif /* GL_NV_bindless_texture */ # 9613 "../mesa/include/GL/glext.h" #ifndef GL_NV_blend_equation_advanced #define GL_NV_blend_equation_advanced 1 #define GL_BLEND_OVERLAP_NV 0x9281 #define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 #define GL_BLUE_NV 0x1905 #define GL_COLORBURN_NV 0x929A #define GL_COLORDODGE_NV 0x9299 #define GL_CONJOINT_NV 0x9284 #define GL_CONTRAST_NV 0x92A1 #define GL_DARKEN_NV 0x9297 #define GL_DIFFERENCE_NV 0x929E #define GL_DISJOINT_NV 0x9283 #define GL_DST_ATOP_NV 0x928F #define GL_DST_IN_NV 0x928B #define GL_DST_NV 0x9287 #define GL_DST_OUT_NV 0x928D #define GL_DST_OVER_NV 0x9289 #define GL_EXCLUSION_NV 0x92A0 #define GL_GREEN_NV 0x1904 #define GL_HARDLIGHT_NV 0x929B #define GL_HARDMIX_NV 0x92A9 #define GL_HSL_COLOR_NV 0x92AF #define GL_HSL_HUE_NV 0x92AD #define GL_HSL_LUMINOSITY_NV 0x92B0 #define GL_HSL_SATURATION_NV 0x92AE #define GL_INVERT_OVG_NV 0x92B4 #define GL_INVERT_RGB_NV 0x92A3 #define GL_LIGHTEN_NV 0x9298 #define GL_LINEARBURN_NV 0x92A5 #define GL_LINEARDODGE_NV 0x92A4 #define GL_LINEARLIGHT_NV 0x92A7 #define GL_MINUS_CLAMPED_NV 0x92B3 #define GL_MINUS_NV 0x929F #define GL_MULTIPLY_NV 0x9294 #define GL_OVERLAY_NV 0x9296 #define GL_PINLIGHT_NV 0x92A8 #define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 #define GL_PLUS_CLAMPED_NV 0x92B1 #define GL_PLUS_DARKER_NV 0x9292 #define GL_PLUS_NV 0x9291 #define GL_RED_NV 0x1903 #define GL_SCREEN_NV 0x9295 #define GL_SOFTLIGHT_NV 0x929C #define GL_SRC_ATOP_NV 0x928E #define GL_SRC_IN_NV 0x928A #define GL_SRC_NV 0x9286 #define GL_SRC_OUT_NV 0x928C #define GL_SRC_OVER_NV 0x9288 #define GL_UNCORRELATED_NV 0x9282 #define GL_VIVIDLIGHT_NV 0x92A6 #define GL_XOR_NV 0x1506 typedef void (APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); typedef void (APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBlendParameteriNV (GLenum pname, GLint value); GLAPI void APIENTRY glBlendBarrierNV (void); #endif # 9671 "../mesa/include/GL/glext.h" #endif /* GL_NV_blend_equation_advanced */ # 9672 "../mesa/include/GL/glext.h" #ifndef GL_NV_blend_equation_advanced_coherent #define GL_NV_blend_equation_advanced_coherent 1 #define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 #endif /* GL_NV_blend_equation_advanced_coherent */ # 9677 "../mesa/include/GL/glext.h" #ifndef GL_NV_blend_minmax_factor #define GL_NV_blend_minmax_factor 1 #endif /* GL_NV_blend_minmax_factor */ # 9681 "../mesa/include/GL/glext.h" #ifndef GL_NV_blend_square #define GL_NV_blend_square 1 #endif /* GL_NV_blend_square */ # 9685 "../mesa/include/GL/glext.h" #ifndef GL_NV_clip_space_w_scaling #define GL_NV_clip_space_w_scaling 1 #define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C #define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D #define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E typedef void (APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); #endif # 9695 "../mesa/include/GL/glext.h" #endif /* GL_NV_clip_space_w_scaling */ # 9696 "../mesa/include/GL/glext.h" #ifndef GL_NV_command_list #define GL_NV_command_list 1 #define GL_TERMINATE_SEQUENCE_COMMAND_NV 0x0000 #define GL_NOP_COMMAND_NV 0x0001 #define GL_DRAW_ELEMENTS_COMMAND_NV 0x0002 #define GL_DRAW_ARRAYS_COMMAND_NV 0x0003 #define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV 0x0004 #define GL_DRAW_ARRAYS_STRIP_COMMAND_NV 0x0005 #define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV 0x0006 #define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV 0x0007 #define GL_ELEMENT_ADDRESS_COMMAND_NV 0x0008 #define GL_ATTRIBUTE_ADDRESS_COMMAND_NV 0x0009 #define GL_UNIFORM_ADDRESS_COMMAND_NV 0x000A #define GL_BLEND_COLOR_COMMAND_NV 0x000B #define GL_STENCIL_REF_COMMAND_NV 0x000C #define GL_LINE_WIDTH_COMMAND_NV 0x000D #define GL_POLYGON_OFFSET_COMMAND_NV 0x000E #define GL_ALPHA_REF_COMMAND_NV 0x000F #define GL_VIEWPORT_COMMAND_NV 0x0010 #define GL_SCISSOR_COMMAND_NV 0x0011 #define GL_FRONT_FACE_COMMAND_NV 0x0012 typedef void (APIENTRYP PFNGLCREATESTATESNVPROC) (GLsizei n, GLuint *states); typedef void (APIENTRYP PFNGLDELETESTATESNVPROC) (GLsizei n, const GLuint *states); typedef GLboolean (APIENTRYP PFNGLISSTATENVPROC) (GLuint state); typedef void (APIENTRYP PFNGLSTATECAPTURENVPROC) (GLuint state, GLenum mode); typedef GLuint (APIENTRYP PFNGLGETCOMMANDHEADERNVPROC) (GLenum tokenID, GLuint size); typedef GLushort (APIENTRYP PFNGLGETSTAGEINDEXNVPROC) (GLenum shadertype); typedef void (APIENTRYP PFNGLDRAWCOMMANDSNVPROC) (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); typedef void (APIENTRYP PFNGLDRAWCOMMANDSADDRESSNVPROC) (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); typedef void (APIENTRYP PFNGLDRAWCOMMANDSSTATESNVPROC) (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); typedef void (APIENTRYP PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC) (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); typedef void (APIENTRYP PFNGLCREATECOMMANDLISTSNVPROC) (GLsizei n, GLuint *lists); typedef void (APIENTRYP PFNGLDELETECOMMANDLISTSNVPROC) (GLsizei n, const GLuint *lists); typedef GLboolean (APIENTRYP PFNGLISCOMMANDLISTNVPROC) (GLuint list); typedef void (APIENTRYP PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC) (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); typedef void (APIENTRYP PFNGLCOMMANDLISTSEGMENTSNVPROC) (GLuint list, GLuint segments); typedef void (APIENTRYP PFNGLCOMPILECOMMANDLISTNVPROC) (GLuint list); typedef void (APIENTRYP PFNGLCALLCOMMANDLISTNVPROC) (GLuint list); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCreateStatesNV (GLsizei n, GLuint *states); GLAPI void APIENTRY glDeleteStatesNV (GLsizei n, const GLuint *states); GLAPI GLboolean APIENTRY glIsStateNV (GLuint state); GLAPI void APIENTRY glStateCaptureNV (GLuint state, GLenum mode); GLAPI GLuint APIENTRY glGetCommandHeaderNV (GLenum tokenID, GLuint size); GLAPI GLushort APIENTRY glGetStageIndexNV (GLenum shadertype); GLAPI void APIENTRY glDrawCommandsNV (GLenum primitiveMode, GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, GLuint count); GLAPI void APIENTRY glDrawCommandsAddressNV (GLenum primitiveMode, const GLuint64 *indirects, const GLsizei *sizes, GLuint count); GLAPI void APIENTRY glDrawCommandsStatesNV (GLuint buffer, const GLintptr *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); GLAPI void APIENTRY glDrawCommandsStatesAddressNV (const GLuint64 *indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); GLAPI void APIENTRY glCreateCommandListsNV (GLsizei n, GLuint *lists); GLAPI void APIENTRY glDeleteCommandListsNV (GLsizei n, const GLuint *lists); GLAPI GLboolean APIENTRY glIsCommandListNV (GLuint list); GLAPI void APIENTRY glListDrawCommandsStatesClientNV (GLuint list, GLuint segment, const void **indirects, const GLsizei *sizes, const GLuint *states, const GLuint *fbos, GLuint count); GLAPI void APIENTRY glCommandListSegmentsNV (GLuint list, GLuint segments); GLAPI void APIENTRY glCompileCommandListNV (GLuint list); GLAPI void APIENTRY glCallCommandListNV (GLuint list); #endif # 9754 "../mesa/include/GL/glext.h" #endif /* GL_NV_command_list */ # 9755 "../mesa/include/GL/glext.h" #ifndef GL_NV_compute_program5 #define GL_NV_compute_program5 1 #define GL_COMPUTE_PROGRAM_NV 0x90FB #define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90FC #endif /* GL_NV_compute_program5 */ # 9761 "../mesa/include/GL/glext.h" #ifndef GL_NV_compute_shader_derivatives #define GL_NV_compute_shader_derivatives 1 #endif /* GL_NV_compute_shader_derivatives */ # 9765 "../mesa/include/GL/glext.h" #ifndef GL_NV_conditional_render #define GL_NV_conditional_render 1 #define GL_QUERY_WAIT_NV 0x8E13 #define GL_QUERY_NO_WAIT_NV 0x8E14 #define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 #define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); GLAPI void APIENTRY glEndConditionalRenderNV (void); #endif # 9778 "../mesa/include/GL/glext.h" #endif /* GL_NV_conditional_render */ # 9779 "../mesa/include/GL/glext.h" #ifndef GL_NV_conservative_raster #define GL_NV_conservative_raster 1 #define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 #define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 #define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 #define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 typedef void (APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); #endif # 9790 "../mesa/include/GL/glext.h" #endif /* GL_NV_conservative_raster */ # 9791 "../mesa/include/GL/glext.h" #ifndef GL_NV_conservative_raster_dilate #define GL_NV_conservative_raster_dilate 1 #define GL_CONSERVATIVE_RASTER_DILATE_NV 0x9379 #define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV 0x937A #define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV 0x937B typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERFNVPROC) (GLenum pname, GLfloat value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat value); #endif # 9801 "../mesa/include/GL/glext.h" #endif /* GL_NV_conservative_raster_dilate */ # 9802 "../mesa/include/GL/glext.h" #ifndef GL_NV_conservative_raster_pre_snap #define GL_NV_conservative_raster_pre_snap 1 #define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 #endif /* GL_NV_conservative_raster_pre_snap */ # 9807 "../mesa/include/GL/glext.h" #ifndef GL_NV_conservative_raster_pre_snap_triangles #define GL_NV_conservative_raster_pre_snap_triangles 1 #define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D #define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E #define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F typedef void (APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); #endif # 9817 "../mesa/include/GL/glext.h" #endif /* GL_NV_conservative_raster_pre_snap_triangles */ # 9818 "../mesa/include/GL/glext.h" #ifndef GL_NV_conservative_raster_underestimation #define GL_NV_conservative_raster_underestimation 1 #endif /* GL_NV_conservative_raster_underestimation */ # 9822 "../mesa/include/GL/glext.h" #ifndef GL_NV_copy_depth_to_color #define GL_NV_copy_depth_to_color 1 #define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E #define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F #endif /* GL_NV_copy_depth_to_color */ # 9828 "../mesa/include/GL/glext.h" #ifndef GL_NV_copy_image #define GL_NV_copy_image 1 typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); #endif # 9835 "../mesa/include/GL/glext.h" #endif /* GL_NV_copy_image */ # 9836 "../mesa/include/GL/glext.h" #ifndef GL_NV_deep_texture3D #define GL_NV_deep_texture3D 1 #define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90D0 #define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV 0x90D1 #endif /* GL_NV_deep_texture3D */ # 9842 "../mesa/include/GL/glext.h" #ifndef GL_NV_depth_buffer_float #define GL_NV_depth_buffer_float 1 #define GL_DEPTH_COMPONENT32F_NV 0x8DAB #define GL_DEPTH32F_STENCIL8_NV 0x8DAC #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD #define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); #endif # 9857 "../mesa/include/GL/glext.h" #endif /* GL_NV_depth_buffer_float */ # 9858 "../mesa/include/GL/glext.h" #ifndef GL_NV_depth_clamp #define GL_NV_depth_clamp 1 #define GL_DEPTH_CLAMP_NV 0x864F #endif /* GL_NV_depth_clamp */ # 9863 "../mesa/include/GL/glext.h" #ifndef GL_NV_draw_texture #define GL_NV_draw_texture 1 typedef void (APIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawTextureNV (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); #endif # 9870 "../mesa/include/GL/glext.h" #endif /* GL_NV_draw_texture */ # 9871 "../mesa/include/GL/glext.h" #ifndef GL_NV_draw_vulkan_image #define GL_NV_draw_vulkan_image 1 typedef void (APIENTRY *GLVULKANPROCNV)(void); typedef void (APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); typedef GLVULKANPROCNV (APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); typedef void (APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); typedef void (APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); typedef void (APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); GLAPI GLVULKANPROCNV APIENTRY glGetVkProcAddrNV (const GLchar *name); GLAPI void APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); GLAPI void APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); GLAPI void APIENTRY glSignalVkFenceNV (GLuint64 vkFence); #endif # 9887 "../mesa/include/GL/glext.h" #endif /* GL_NV_draw_vulkan_image */ # 9888 "../mesa/include/GL/glext.h" #ifndef GL_NV_evaluators #define GL_NV_evaluators 1 #define GL_EVAL_2D_NV 0x86C0 #define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 #define GL_MAP_TESSELLATION_NV 0x86C2 #define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 #define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 #define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 #define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 #define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 #define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 #define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 #define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA #define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB #define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC #define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD #define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE #define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF #define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 #define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 #define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 #define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 #define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 #define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 #define GL_MAX_MAP_TESSELLATION_NV 0x86D6 #define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void *points); GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void *points); GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); #endif # 9935 "../mesa/include/GL/glext.h" #endif /* GL_NV_evaluators */ # 9936 "../mesa/include/GL/glext.h" #ifndef GL_NV_explicit_multisample #define GL_NV_explicit_multisample 1 #define GL_SAMPLE_POSITION_NV 0x8E50 #define GL_SAMPLE_MASK_NV 0x8E51 #define GL_SAMPLE_MASK_VALUE_NV 0x8E52 #define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 #define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 #define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 #define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 #define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 #define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 #define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); #endif # 9957 "../mesa/include/GL/glext.h" #endif /* GL_NV_explicit_multisample */ # 9958 "../mesa/include/GL/glext.h" #ifndef GL_NV_fence #define GL_NV_fence 1 #define GL_ALL_COMPLETED_NV 0x84F2 #define GL_FENCE_STATUS_NV 0x84F3 #define GL_FENCE_CONDITION_NV 0x84F4 typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); GLAPI void APIENTRY glFinishFenceNV (GLuint fence); GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); #endif # 9980 "../mesa/include/GL/glext.h" #endif /* GL_NV_fence */ # 9981 "../mesa/include/GL/glext.h" #ifndef GL_NV_fill_rectangle #define GL_NV_fill_rectangle 1 #define GL_FILL_RECTANGLE_NV 0x933C #endif /* GL_NV_fill_rectangle */ # 9986 "../mesa/include/GL/glext.h" #ifndef GL_NV_float_buffer #define GL_NV_float_buffer 1 #define GL_FLOAT_R_NV 0x8880 #define GL_FLOAT_RG_NV 0x8881 #define GL_FLOAT_RGB_NV 0x8882 #define GL_FLOAT_RGBA_NV 0x8883 #define GL_FLOAT_R16_NV 0x8884 #define GL_FLOAT_R32_NV 0x8885 #define GL_FLOAT_RG16_NV 0x8886 #define GL_FLOAT_RG32_NV 0x8887 #define GL_FLOAT_RGB16_NV 0x8888 #define GL_FLOAT_RGB32_NV 0x8889 #define GL_FLOAT_RGBA16_NV 0x888A #define GL_FLOAT_RGBA32_NV 0x888B #define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C #define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D #define GL_FLOAT_RGBA_MODE_NV 0x888E #endif /* GL_NV_float_buffer */ # 10005 "../mesa/include/GL/glext.h" #ifndef GL_NV_fog_distance #define GL_NV_fog_distance 1 #define GL_FOG_DISTANCE_MODE_NV 0x855A #define GL_EYE_RADIAL_NV 0x855B #define GL_EYE_PLANE_ABSOLUTE_NV 0x855C #endif /* GL_NV_fog_distance */ # 10012 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_coverage_to_color #define GL_NV_fragment_coverage_to_color 1 #define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD #define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE typedef void (APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFragmentCoverageColorNV (GLuint color); #endif # 10021 "../mesa/include/GL/glext.h" #endif /* GL_NV_fragment_coverage_to_color */ # 10022 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_program #define GL_NV_fragment_program 1 #define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 #define GL_FRAGMENT_PROGRAM_NV 0x8870 #define GL_MAX_TEXTURE_COORDS_NV 0x8871 #define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 #define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 #define GL_PROGRAM_ERROR_STRING_NV 0x8874 typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); #endif # 10045 "../mesa/include/GL/glext.h" #endif /* GL_NV_fragment_program */ # 10046 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_program2 #define GL_NV_fragment_program2 1 #define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 #define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 #define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 #define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 #define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 #endif /* GL_NV_fragment_program2 */ # 10055 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_program4 #define GL_NV_fragment_program4 1 #endif /* GL_NV_fragment_program4 */ # 10059 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_program_option #define GL_NV_fragment_program_option 1 #endif /* GL_NV_fragment_program_option */ # 10063 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_shader_barycentric #define GL_NV_fragment_shader_barycentric 1 #endif /* GL_NV_fragment_shader_barycentric */ # 10067 "../mesa/include/GL/glext.h" #ifndef GL_NV_fragment_shader_interlock #define GL_NV_fragment_shader_interlock 1 #endif /* GL_NV_fragment_shader_interlock */ # 10071 "../mesa/include/GL/glext.h" #ifndef GL_NV_framebuffer_mixed_samples #define GL_NV_framebuffer_mixed_samples 1 #define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 #define GL_COLOR_SAMPLES_NV 0x8E20 #define GL_DEPTH_SAMPLES_NV 0x932D #define GL_STENCIL_SAMPLES_NV 0x932E #define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F #define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 #define GL_COVERAGE_MODULATION_NV 0x9332 #define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); typedef void (APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); typedef void (APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); GLAPI void APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); GLAPI void APIENTRY glCoverageModulationNV (GLenum components); #endif # 10090 "../mesa/include/GL/glext.h" #endif /* GL_NV_framebuffer_mixed_samples */ # 10091 "../mesa/include/GL/glext.h" #ifndef GL_NV_framebuffer_multisample_coverage #define GL_NV_framebuffer_multisample_coverage 1 #define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB #define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 #define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 #define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); #endif # 10102 "../mesa/include/GL/glext.h" #endif /* GL_NV_framebuffer_multisample_coverage */ # 10103 "../mesa/include/GL/glext.h" #ifndef GL_NV_geometry_program4 #define GL_NV_geometry_program4 1 #define GL_GEOMETRY_PROGRAM_NV 0x8C26 #define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 #define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); #endif # 10117 "../mesa/include/GL/glext.h" #endif /* GL_NV_geometry_program4 */ # 10118 "../mesa/include/GL/glext.h" #ifndef GL_NV_geometry_shader4 #define GL_NV_geometry_shader4 1 #endif /* GL_NV_geometry_shader4 */ # 10122 "../mesa/include/GL/glext.h" #ifndef GL_NV_geometry_shader_passthrough #define GL_NV_geometry_shader_passthrough 1 #endif /* GL_NV_geometry_shader_passthrough */ # 10126 "../mesa/include/GL/glext.h" #ifndef GL_NV_gpu_multicast #define GL_NV_gpu_multicast 1 #define GL_PER_GPU_STORAGE_BIT_NV 0x0800 #define GL_MULTICAST_GPUS_NV 0x92BA #define GL_RENDER_GPU_MASK_NV 0x9558 #define GL_PER_GPU_STORAGE_NV 0x9548 #define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549 typedef void (APIENTRYP PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask); typedef void (APIENTRYP PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); typedef void (APIENTRYP PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (APIENTRYP PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); typedef void (APIENTRYP PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (APIENTRYP PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLMULTICASTBARRIERNVPROC) (void); typedef void (APIENTRYP PFNGLMULTICASTWAITSYNCNVPROC) (GLuint signalGpu, GLbitfield waitGpuMask); typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glRenderGpuMaskNV (GLbitfield mask); GLAPI void APIENTRY glMulticastBufferSubDataNV (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); GLAPI void APIENTRY glMulticastCopyBufferSubDataNV (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GLAPI void APIENTRY glMulticastCopyImageSubDataNV (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); GLAPI void APIENTRY glMulticastBlitFramebufferNV (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GLAPI void APIENTRY glMulticastFramebufferSampleLocationsfvNV (GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glMulticastBarrierNV (void); GLAPI void APIENTRY glMulticastWaitSyncNV (GLuint signalGpu, GLbitfield waitGpuMask); GLAPI void APIENTRY glMulticastGetQueryObjectivNV (GLuint gpu, GLuint id, GLenum pname, GLint *params); GLAPI void APIENTRY glMulticastGetQueryObjectuivNV (GLuint gpu, GLuint id, GLenum pname, GLuint *params); GLAPI void APIENTRY glMulticastGetQueryObjecti64vNV (GLuint gpu, GLuint id, GLenum pname, GLint64 *params); GLAPI void APIENTRY glMulticastGetQueryObjectui64vNV (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params); #endif # 10160 "../mesa/include/GL/glext.h" #endif /* GL_NV_gpu_multicast */ # 10161 "../mesa/include/GL/glext.h" #ifndef GL_NV_gpu_program4 #define GL_NV_gpu_program4 1 #define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 #define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 #define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 #define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 #define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 #define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 #define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); #endif # 10206 "../mesa/include/GL/glext.h" #endif /* GL_NV_gpu_program4 */ # 10207 "../mesa/include/GL/glext.h" #ifndef GL_NV_gpu_program5 #define GL_NV_gpu_program5 1 #define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C #define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F #define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 #define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); #endif # 10224 "../mesa/include/GL/glext.h" #endif /* GL_NV_gpu_program5 */ # 10225 "../mesa/include/GL/glext.h" #ifndef GL_NV_gpu_program5_mem_extended #define GL_NV_gpu_program5_mem_extended 1 #endif /* GL_NV_gpu_program5_mem_extended */ # 10229 "../mesa/include/GL/glext.h" #ifndef GL_NV_gpu_shader5 #define GL_NV_gpu_shader5 1 #endif /* GL_NV_gpu_shader5 */ # 10233 "../mesa/include/GL/glext.h" #ifndef GL_NV_half_float #define GL_NV_half_float 1 typedef unsigned short GLhalfNV; #define GL_HALF_FLOAT_NV 0x140B typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); #endif # 10332 "../mesa/include/GL/glext.h" #endif /* GL_NV_half_float */ # 10333 "../mesa/include/GL/glext.h" #ifndef GL_NV_internalformat_sample_query #define GL_NV_internalformat_sample_query 1 #define GL_MULTISAMPLES_NV 0x9371 #define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 #define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 #define GL_CONFORMANT_NV 0x9374 typedef void (APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); #endif # 10344 "../mesa/include/GL/glext.h" #endif /* GL_NV_internalformat_sample_query */ # 10345 "../mesa/include/GL/glext.h" #ifndef GL_NV_light_max_exponent #define GL_NV_light_max_exponent 1 #define GL_MAX_SHININESS_NV 0x8504 #define GL_MAX_SPOT_EXPONENT_NV 0x8505 #endif /* GL_NV_light_max_exponent */ # 10351 "../mesa/include/GL/glext.h" #ifndef GL_NV_memory_attachment #define GL_NV_memory_attachment 1 #define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 #define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 #define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 #define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 #define GL_MEMORY_ATTACHABLE_NV 0x95A8 #define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 #define GL_DETACHED_TEXTURES_NV 0x95AA #define GL_DETACHED_BUFFERS_NV 0x95AB #define GL_MAX_DETACHED_TEXTURES_NV 0x95AC #define GL_MAX_DETACHED_BUFFERS_NV 0x95AD typedef void (APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); typedef void (APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); typedef void (APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); typedef void (APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); GLAPI void APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); GLAPI void APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); GLAPI void APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); #endif # 10378 "../mesa/include/GL/glext.h" #endif /* GL_NV_memory_attachment */ # 10379 "../mesa/include/GL/glext.h" #ifndef GL_NV_memory_object_sparse #define GL_NV_memory_object_sparse 1 typedef void (APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); typedef void (APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); typedef void (APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); typedef void (APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); GLAPI void APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); GLAPI void APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); GLAPI void APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); #endif # 10392 "../mesa/include/GL/glext.h" #endif /* GL_NV_memory_object_sparse */ # 10393 "../mesa/include/GL/glext.h" #ifndef GL_NV_mesh_shader #define GL_NV_mesh_shader 1 #define GL_MESH_SHADER_NV 0x9559 #define GL_TASK_SHADER_NV 0x955A #define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 #define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 #define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 #define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 #define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 #define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 #define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 #define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 #define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 #define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 #define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A #define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B #define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C #define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D #define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E #define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F #define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 #define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 #define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 #define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 #define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 #define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 #define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A #define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D #define GL_MAX_MESH_VIEWS_NV 0x9557 #define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF #define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 #define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B #define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C #define GL_MESH_WORK_GROUP_SIZE_NV 0x953E #define GL_TASK_WORK_GROUP_SIZE_NV 0x953F #define GL_MESH_VERTICES_OUT_NV 0x9579 #define GL_MESH_PRIMITIVES_OUT_NV 0x957A #define GL_MESH_OUTPUT_TYPE_NV 0x957B #define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C #define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D #define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 #define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 #define GL_MESH_SHADER_BIT_NV 0x00000040 #define GL_TASK_SHADER_BIT_NV 0x00000080 #define GL_MESH_SUBROUTINE_NV 0x957C #define GL_TASK_SUBROUTINE_NV 0x957D #define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E #define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F typedef void (APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); typedef void (APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); typedef void (APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); typedef void (APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); GLAPI void APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); GLAPI void APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); GLAPI void APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); #endif # 10454 "../mesa/include/GL/glext.h" #endif /* GL_NV_mesh_shader */ # 10455 "../mesa/include/GL/glext.h" #ifndef GL_NV_multisample_coverage #define GL_NV_multisample_coverage 1 #endif /* GL_NV_multisample_coverage */ # 10459 "../mesa/include/GL/glext.h" #ifndef GL_NV_multisample_filter_hint #define GL_NV_multisample_filter_hint 1 #define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 #endif /* GL_NV_multisample_filter_hint */ # 10464 "../mesa/include/GL/glext.h" #ifndef GL_NV_occlusion_query #define GL_NV_occlusion_query 1 #define GL_PIXEL_COUNTER_BITS_NV 0x8864 #define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 #define GL_PIXEL_COUNT_NV 0x8866 #define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); GLAPI void APIENTRY glEndOcclusionQueryNV (void); GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); #endif # 10487 "../mesa/include/GL/glext.h" #endif /* GL_NV_occlusion_query */ # 10488 "../mesa/include/GL/glext.h" #ifndef GL_NV_packed_depth_stencil #define GL_NV_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_NV 0x84F9 #define GL_UNSIGNED_INT_24_8_NV 0x84FA #endif /* GL_NV_packed_depth_stencil */ # 10494 "../mesa/include/GL/glext.h" #ifndef GL_NV_parameter_buffer_object #define GL_NV_parameter_buffer_object 1 #define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 #define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 #define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 #define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 #define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat *params); GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint *params); GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint *params); #endif # 10510 "../mesa/include/GL/glext.h" #endif /* GL_NV_parameter_buffer_object */ # 10511 "../mesa/include/GL/glext.h" #ifndef GL_NV_parameter_buffer_object2 #define GL_NV_parameter_buffer_object2 1 #endif /* GL_NV_parameter_buffer_object2 */ # 10515 "../mesa/include/GL/glext.h" #ifndef GL_NV_path_rendering #define GL_NV_path_rendering 1 #define GL_PATH_FORMAT_SVG_NV 0x9070 #define GL_PATH_FORMAT_PS_NV 0x9071 #define GL_STANDARD_FONT_NAME_NV 0x9072 #define GL_SYSTEM_FONT_NAME_NV 0x9073 #define GL_FILE_NAME_NV 0x9074 #define GL_PATH_STROKE_WIDTH_NV 0x9075 #define GL_PATH_END_CAPS_NV 0x9076 #define GL_PATH_INITIAL_END_CAP_NV 0x9077 #define GL_PATH_TERMINAL_END_CAP_NV 0x9078 #define GL_PATH_JOIN_STYLE_NV 0x9079 #define GL_PATH_MITER_LIMIT_NV 0x907A #define GL_PATH_DASH_CAPS_NV 0x907B #define GL_PATH_INITIAL_DASH_CAP_NV 0x907C #define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D #define GL_PATH_DASH_OFFSET_NV 0x907E #define GL_PATH_CLIENT_LENGTH_NV 0x907F #define GL_PATH_FILL_MODE_NV 0x9080 #define GL_PATH_FILL_MASK_NV 0x9081 #define GL_PATH_FILL_COVER_MODE_NV 0x9082 #define GL_PATH_STROKE_COVER_MODE_NV 0x9083 #define GL_PATH_STROKE_MASK_NV 0x9084 #define GL_COUNT_UP_NV 0x9088 #define GL_COUNT_DOWN_NV 0x9089 #define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A #define GL_CONVEX_HULL_NV 0x908B #define GL_BOUNDING_BOX_NV 0x908D #define GL_TRANSLATE_X_NV 0x908E #define GL_TRANSLATE_Y_NV 0x908F #define GL_TRANSLATE_2D_NV 0x9090 #define GL_TRANSLATE_3D_NV 0x9091 #define GL_AFFINE_2D_NV 0x9092 #define GL_AFFINE_3D_NV 0x9094 #define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 #define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 #define GL_UTF8_NV 0x909A #define GL_UTF16_NV 0x909B #define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C #define GL_PATH_COMMAND_COUNT_NV 0x909D #define GL_PATH_COORD_COUNT_NV 0x909E #define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F #define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 #define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 #define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 #define GL_SQUARE_NV 0x90A3 #define GL_ROUND_NV 0x90A4 #define GL_TRIANGULAR_NV 0x90A5 #define GL_BEVEL_NV 0x90A6 #define GL_MITER_REVERT_NV 0x90A7 #define GL_MITER_TRUNCATE_NV 0x90A8 #define GL_SKIP_MISSING_GLYPH_NV 0x90A9 #define GL_USE_MISSING_GLYPH_NV 0x90AA #define GL_PATH_ERROR_POSITION_NV 0x90AB #define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD #define GL_ADJACENT_PAIRS_NV 0x90AE #define GL_FIRST_TO_REST_NV 0x90AF #define GL_PATH_GEN_MODE_NV 0x90B0 #define GL_PATH_GEN_COEFF_NV 0x90B1 #define GL_PATH_GEN_COMPONENTS_NV 0x90B3 #define GL_PATH_STENCIL_FUNC_NV 0x90B7 #define GL_PATH_STENCIL_REF_NV 0x90B8 #define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 #define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD #define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE #define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF #define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 #define GL_MOVE_TO_RESETS_NV 0x90B5 #define GL_MOVE_TO_CONTINUES_NV 0x90B6 #define GL_CLOSE_PATH_NV 0x00 #define GL_MOVE_TO_NV 0x02 #define GL_RELATIVE_MOVE_TO_NV 0x03 #define GL_LINE_TO_NV 0x04 #define GL_RELATIVE_LINE_TO_NV 0x05 #define GL_HORIZONTAL_LINE_TO_NV 0x06 #define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 #define GL_VERTICAL_LINE_TO_NV 0x08 #define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 #define GL_QUADRATIC_CURVE_TO_NV 0x0A #define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B #define GL_CUBIC_CURVE_TO_NV 0x0C #define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D #define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E #define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F #define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 #define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 #define GL_SMALL_CCW_ARC_TO_NV 0x12 #define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 #define GL_SMALL_CW_ARC_TO_NV 0x14 #define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 #define GL_LARGE_CCW_ARC_TO_NV 0x16 #define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 #define GL_LARGE_CW_ARC_TO_NV 0x18 #define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 #define GL_RESTART_PATH_NV 0xF0 #define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 #define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 #define GL_RECT_NV 0xF6 #define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 #define GL_CIRCULAR_CW_ARC_TO_NV 0xFA #define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC #define GL_ARC_TO_NV 0xFE #define GL_RELATIVE_ARC_TO_NV 0xFF #define GL_BOLD_BIT_NV 0x01 #define GL_ITALIC_BIT_NV 0x02 #define GL_GLYPH_WIDTH_BIT_NV 0x01 #define GL_GLYPH_HEIGHT_BIT_NV 0x02 #define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 #define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 #define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 #define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 #define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 #define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 #define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 #define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 #define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 #define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 #define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 #define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 #define GL_FONT_ASCENDER_BIT_NV 0x00200000 #define GL_FONT_DESCENDER_BIT_NV 0x00400000 #define GL_FONT_HEIGHT_BIT_NV 0x00800000 #define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 #define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 #define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 #define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 #define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 #define GL_ROUNDED_RECT_NV 0xE8 #define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 #define GL_ROUNDED_RECT2_NV 0xEA #define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB #define GL_ROUNDED_RECT4_NV 0xEC #define GL_RELATIVE_ROUNDED_RECT4_NV 0xED #define GL_ROUNDED_RECT8_NV 0xEE #define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF #define GL_RELATIVE_RECT_NV 0xF7 #define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 #define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 #define GL_FONT_UNAVAILABLE_NV 0x936A #define GL_FONT_UNINTELLIGIBLE_NV 0x936B #define GL_CONIC_CURVE_TO_NV 0x1A #define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B #define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 #define GL_STANDARD_FONT_FORMAT_NV 0x936C #define GL_2_BYTES_NV 0x1407 #define GL_3_BYTES_NV 0x1408 #define GL_4_BYTES_NV 0x1409 #define GL_EYE_LINEAR_NV 0x2400 #define GL_OBJECT_LINEAR_NV 0x2401 #define GL_CONSTANT_NV 0x8576 #define GL_PATH_FOG_GEN_MODE_NV 0x90AC #define GL_PRIMARY_COLOR_NV 0x852C #define GL_SECONDARY_COLOR_NV 0x852D #define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 #define GL_PATH_PROJECTION_NV 0x1701 #define GL_PATH_MODELVIEW_NV 0x1700 #define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 #define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 #define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 #define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 #define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 #define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 #define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 #define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 #define GL_FRAGMENT_INPUT_NV 0x936D typedef GLuint (APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); typedef void (APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); typedef GLboolean (APIENTRYP PFNGLISPATHNVPROC) (GLuint path); typedef void (APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); typedef void (APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef void (APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef void (APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); typedef void (APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); typedef void (APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); typedef void (APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); typedef void (APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); typedef void (APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); typedef void (APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); typedef void (APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); typedef void (APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); typedef void (APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); typedef void (APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); typedef void (APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); typedef void (APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); typedef void (APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); typedef void (APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); typedef void (APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); typedef void (APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); typedef void (APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef void (APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef void (APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); typedef void (APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); typedef void (APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); typedef void (APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); typedef void (APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); typedef void (APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); typedef void (APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); typedef void (APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); typedef GLboolean (APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); typedef GLboolean (APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); typedef GLfloat (APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); typedef GLboolean (APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); typedef void (APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); typedef void (APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef void (APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); typedef GLenum (APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef GLenum (APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef void (APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); typedef void (APIENTRYP PFNGLPATHCOLORGENNVPROC) (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); typedef void (APIENTRYP PFNGLPATHTEXGENNVPROC) (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); typedef void (APIENTRYP PFNGLPATHFOGGENNVPROC) (GLenum genMode); typedef void (APIENTRYP PFNGLGETPATHCOLORGENIVNVPROC) (GLenum color, GLenum pname, GLint *value); typedef void (APIENTRYP PFNGLGETPATHCOLORGENFVNVPROC) (GLenum color, GLenum pname, GLfloat *value); typedef void (APIENTRYP PFNGLGETPATHTEXGENIVNVPROC) (GLenum texCoordSet, GLenum pname, GLint *value); typedef void (APIENTRYP PFNGLGETPATHTEXGENFVNVPROC) (GLenum texCoordSet, GLenum pname, GLfloat *value); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLuint APIENTRY glGenPathsNV (GLsizei range); GLAPI void APIENTRY glDeletePathsNV (GLuint path, GLsizei range); GLAPI GLboolean APIENTRY glIsPathNV (GLuint path); GLAPI void APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); GLAPI void APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); GLAPI void APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); GLAPI void APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); GLAPI void APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); GLAPI void APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GLAPI void APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GLAPI void APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); GLAPI void APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); GLAPI void APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); GLAPI void APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); GLAPI void APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); GLAPI void APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); GLAPI void APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); GLAPI void APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); GLAPI void APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); GLAPI void APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); GLAPI void APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); GLAPI void APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); GLAPI void APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); GLAPI void APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); GLAPI void APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); GLAPI void APIENTRY glPathCoverDepthFuncNV (GLenum func); GLAPI void APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); GLAPI void APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); GLAPI void APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GLAPI void APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GLAPI void APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); GLAPI void APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); GLAPI void APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); GLAPI void APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); GLAPI void APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); GLAPI void APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); GLAPI void APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); GLAPI void APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); GLAPI GLboolean APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); GLAPI GLboolean APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); GLAPI GLfloat APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); GLAPI GLboolean APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); GLAPI void APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); GLAPI void APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); GLAPI void APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); GLAPI void APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); GLAPI void APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); GLAPI void APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); GLAPI void APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); GLAPI void APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); GLAPI void APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GLAPI void APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GLAPI GLenum APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); GLAPI GLenum APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GLAPI GLenum APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GLAPI void APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); GLAPI void APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); GLAPI void APIENTRY glPathColorGenNV (GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs); GLAPI void APIENTRY glPathTexGenNV (GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs); GLAPI void APIENTRY glPathFogGenNV (GLenum genMode); GLAPI void APIENTRY glGetPathColorGenivNV (GLenum color, GLenum pname, GLint *value); GLAPI void APIENTRY glGetPathColorGenfvNV (GLenum color, GLenum pname, GLfloat *value); GLAPI void APIENTRY glGetPathTexGenivNV (GLenum texCoordSet, GLenum pname, GLint *value); GLAPI void APIENTRY glGetPathTexGenfvNV (GLenum texCoordSet, GLenum pname, GLfloat *value); #endif # 10811 "../mesa/include/GL/glext.h" #endif /* GL_NV_path_rendering */ # 10812 "../mesa/include/GL/glext.h" #ifndef GL_NV_path_rendering_shared_edge #define GL_NV_path_rendering_shared_edge 1 #define GL_SHARED_EDGE_NV 0xC0 #endif /* GL_NV_path_rendering_shared_edge */ # 10817 "../mesa/include/GL/glext.h" #ifndef GL_NV_pixel_data_range #define GL_NV_pixel_data_range 1 #define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 #define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 #define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A #define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B #define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C #define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, const void *pointer); typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, const void *pointer); GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); #endif # 10832 "../mesa/include/GL/glext.h" #endif /* GL_NV_pixel_data_range */ # 10833 "../mesa/include/GL/glext.h" #ifndef GL_NV_point_sprite #define GL_NV_point_sprite 1 #define GL_POINT_SPRITE_NV 0x8861 #define GL_COORD_REPLACE_NV 0x8862 #define GL_POINT_SPRITE_R_MODE_NV 0x8863 typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); #endif # 10845 "../mesa/include/GL/glext.h" #endif /* GL_NV_point_sprite */ # 10846 "../mesa/include/GL/glext.h" #ifndef GL_NV_present_video #define GL_NV_present_video 1 #define GL_FRAME_NV 0x8E26 #define GL_FIELDS_NV 0x8E27 #define GL_CURRENT_TIME_NV 0x8E28 #define GL_NUM_FILL_STREAMS_NV 0x8E29 #define GL_PRESENT_TIME_NV 0x8E2A #define GL_PRESENT_DURATION_NV 0x8E2B typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); #endif # 10869 "../mesa/include/GL/glext.h" #endif /* GL_NV_present_video */ # 10870 "../mesa/include/GL/glext.h" #ifndef GL_NV_primitive_restart #define GL_NV_primitive_restart 1 #define GL_PRIMITIVE_RESTART_NV 0x8558 #define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPrimitiveRestartNV (void); GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); #endif # 10881 "../mesa/include/GL/glext.h" #endif /* GL_NV_primitive_restart */ # 10882 "../mesa/include/GL/glext.h" #ifndef GL_NV_primitive_shading_rate #define GL_NV_primitive_shading_rate 1 #define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 #define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 #endif /* GL_NV_primitive_shading_rate */ # 10888 "../mesa/include/GL/glext.h" #ifndef GL_NV_query_resource #define GL_NV_query_resource 1 #define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540 #define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV 0x9542 #define GL_QUERY_RESOURCE_SYS_RESERVED_NV 0x9544 #define GL_QUERY_RESOURCE_TEXTURE_NV 0x9545 #define GL_QUERY_RESOURCE_RENDERBUFFER_NV 0x9546 #define GL_QUERY_RESOURCE_BUFFEROBJECT_NV 0x9547 typedef GLint (APIENTRYP PFNGLQUERYRESOURCENVPROC) (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLint APIENTRY glQueryResourceNV (GLenum queryType, GLint tagId, GLuint count, GLint *buffer); #endif # 10901 "../mesa/include/GL/glext.h" #endif /* GL_NV_query_resource */ # 10902 "../mesa/include/GL/glext.h" #ifndef GL_NV_query_resource_tag #define GL_NV_query_resource_tag 1 typedef void (APIENTRYP PFNGLGENQUERYRESOURCETAGNVPROC) (GLsizei n, GLint *tagIds); typedef void (APIENTRYP PFNGLDELETEQUERYRESOURCETAGNVPROC) (GLsizei n, const GLint *tagIds); typedef void (APIENTRYP PFNGLQUERYRESOURCETAGNVPROC) (GLint tagId, const GLchar *tagString); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGenQueryResourceTagNV (GLsizei n, GLint *tagIds); GLAPI void APIENTRY glDeleteQueryResourceTagNV (GLsizei n, const GLint *tagIds); GLAPI void APIENTRY glQueryResourceTagNV (GLint tagId, const GLchar *tagString); #endif # 10913 "../mesa/include/GL/glext.h" #endif /* GL_NV_query_resource_tag */ # 10914 "../mesa/include/GL/glext.h" #ifndef GL_NV_register_combiners #define GL_NV_register_combiners 1 #define GL_REGISTER_COMBINERS_NV 0x8522 #define GL_VARIABLE_A_NV 0x8523 #define GL_VARIABLE_B_NV 0x8524 #define GL_VARIABLE_C_NV 0x8525 #define GL_VARIABLE_D_NV 0x8526 #define GL_VARIABLE_E_NV 0x8527 #define GL_VARIABLE_F_NV 0x8528 #define GL_VARIABLE_G_NV 0x8529 #define GL_CONSTANT_COLOR0_NV 0x852A #define GL_CONSTANT_COLOR1_NV 0x852B #define GL_SPARE0_NV 0x852E #define GL_SPARE1_NV 0x852F #define GL_DISCARD_NV 0x8530 #define GL_E_TIMES_F_NV 0x8531 #define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 #define GL_UNSIGNED_IDENTITY_NV 0x8536 #define GL_UNSIGNED_INVERT_NV 0x8537 #define GL_EXPAND_NORMAL_NV 0x8538 #define GL_EXPAND_NEGATE_NV 0x8539 #define GL_HALF_BIAS_NORMAL_NV 0x853A #define GL_HALF_BIAS_NEGATE_NV 0x853B #define GL_SIGNED_IDENTITY_NV 0x853C #define GL_SIGNED_NEGATE_NV 0x853D #define GL_SCALE_BY_TWO_NV 0x853E #define GL_SCALE_BY_FOUR_NV 0x853F #define GL_SCALE_BY_ONE_HALF_NV 0x8540 #define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 #define GL_COMBINER_INPUT_NV 0x8542 #define GL_COMBINER_MAPPING_NV 0x8543 #define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 #define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 #define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 #define GL_COMBINER_MUX_SUM_NV 0x8547 #define GL_COMBINER_SCALE_NV 0x8548 #define GL_COMBINER_BIAS_NV 0x8549 #define GL_COMBINER_AB_OUTPUT_NV 0x854A #define GL_COMBINER_CD_OUTPUT_NV 0x854B #define GL_COMBINER_SUM_OUTPUT_NV 0x854C #define GL_MAX_GENERAL_COMBINERS_NV 0x854D #define GL_NUM_GENERAL_COMBINERS_NV 0x854E #define GL_COLOR_SUM_CLAMP_NV 0x854F #define GL_COMBINER0_NV 0x8550 #define GL_COMBINER1_NV 0x8551 #define GL_COMBINER2_NV 0x8552 #define GL_COMBINER3_NV 0x8553 #define GL_COMBINER4_NV 0x8554 #define GL_COMBINER5_NV 0x8555 #define GL_COMBINER6_NV 0x8556 #define GL_COMBINER7_NV 0x8557 typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); #endif # 10994 "../mesa/include/GL/glext.h" #endif /* GL_NV_register_combiners */ # 10995 "../mesa/include/GL/glext.h" #ifndef GL_NV_register_combiners2 #define GL_NV_register_combiners2 1 #define GL_PER_STAGE_CONSTANTS_NV 0x8535 typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); #endif # 11005 "../mesa/include/GL/glext.h" #endif /* GL_NV_register_combiners2 */ # 11006 "../mesa/include/GL/glext.h" #ifndef GL_NV_representative_fragment_test #define GL_NV_representative_fragment_test 1 #define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F #endif /* GL_NV_representative_fragment_test */ # 11011 "../mesa/include/GL/glext.h" #ifndef GL_NV_robustness_video_memory_purge #define GL_NV_robustness_video_memory_purge 1 #define GL_PURGED_CONTEXT_RESET_NV 0x92BB #endif /* GL_NV_robustness_video_memory_purge */ # 11016 "../mesa/include/GL/glext.h" #ifndef GL_NV_sample_locations #define GL_NV_sample_locations 1 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 #define GL_SAMPLE_LOCATION_NV 0x8E50 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glResolveDepthValuesNV (void); #endif # 11035 "../mesa/include/GL/glext.h" #endif /* GL_NV_sample_locations */ # 11036 "../mesa/include/GL/glext.h" #ifndef GL_NV_sample_mask_override_coverage #define GL_NV_sample_mask_override_coverage 1 #endif /* GL_NV_sample_mask_override_coverage */ # 11040 "../mesa/include/GL/glext.h" #ifndef GL_NV_scissor_exclusive #define GL_NV_scissor_exclusive 1 #define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 #define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 typedef void (APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); GLAPI void APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); #endif # 11051 "../mesa/include/GL/glext.h" #endif /* GL_NV_scissor_exclusive */ # 11052 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_atomic_counters #define GL_NV_shader_atomic_counters 1 #endif /* GL_NV_shader_atomic_counters */ # 11056 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_atomic_float #define GL_NV_shader_atomic_float 1 #endif /* GL_NV_shader_atomic_float */ # 11060 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_atomic_float64 #define GL_NV_shader_atomic_float64 1 #endif /* GL_NV_shader_atomic_float64 */ # 11064 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_atomic_fp16_vector #define GL_NV_shader_atomic_fp16_vector 1 #endif /* GL_NV_shader_atomic_fp16_vector */ # 11068 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_atomic_int64 #define GL_NV_shader_atomic_int64 1 #endif /* GL_NV_shader_atomic_int64 */ # 11072 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_buffer_load #define GL_NV_shader_buffer_load 1 #define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D #define GL_GPU_ADDRESS_NV 0x8F34 #define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); #endif # 11106 "../mesa/include/GL/glext.h" #endif /* GL_NV_shader_buffer_load */ # 11107 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_buffer_store #define GL_NV_shader_buffer_store 1 #define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 #endif /* GL_NV_shader_buffer_store */ # 11112 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_storage_buffer_object #define GL_NV_shader_storage_buffer_object 1 #endif /* GL_NV_shader_storage_buffer_object */ # 11116 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_subgroup_partitioned #define GL_NV_shader_subgroup_partitioned 1 #define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 #endif /* GL_NV_shader_subgroup_partitioned */ # 11121 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_texture_footprint #define GL_NV_shader_texture_footprint 1 #endif /* GL_NV_shader_texture_footprint */ # 11125 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_thread_group #define GL_NV_shader_thread_group 1 #define GL_WARP_SIZE_NV 0x9339 #define GL_WARPS_PER_SM_NV 0x933A #define GL_SM_COUNT_NV 0x933B #endif /* GL_NV_shader_thread_group */ # 11132 "../mesa/include/GL/glext.h" #ifndef GL_NV_shader_thread_shuffle #define GL_NV_shader_thread_shuffle 1 #endif /* GL_NV_shader_thread_shuffle */ # 11136 "../mesa/include/GL/glext.h" #ifndef GL_NV_shading_rate_image #define GL_NV_shading_rate_image 1 #define GL_SHADING_RATE_IMAGE_NV 0x9563 #define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 #define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 #define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 #define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 #define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 #define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 #define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A #define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B #define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C #define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D #define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E #define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F #define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B #define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C #define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D #define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E #define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F #define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE #define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF #define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 typedef void (APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); typedef void (APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); typedef void (APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); typedef void (APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); typedef void (APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); typedef void (APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); typedef void (APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindShadingRateImageNV (GLuint texture); GLAPI void APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); GLAPI void APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); GLAPI void APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); GLAPI void APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); GLAPI void APIENTRY glShadingRateSampleOrderNV (GLenum order); GLAPI void APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); #endif # 11176 "../mesa/include/GL/glext.h" #endif /* GL_NV_shading_rate_image */ # 11177 "../mesa/include/GL/glext.h" #ifndef GL_NV_stereo_view_rendering #define GL_NV_stereo_view_rendering 1 #endif /* GL_NV_stereo_view_rendering */ # 11181 "../mesa/include/GL/glext.h" #ifndef GL_NV_tessellation_program5 #define GL_NV_tessellation_program5 1 #define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 #define GL_TESS_CONTROL_PROGRAM_NV 0x891E #define GL_TESS_EVALUATION_PROGRAM_NV 0x891F #define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 #define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 #endif /* GL_NV_tessellation_program5 */ # 11190 "../mesa/include/GL/glext.h" #ifndef GL_NV_texgen_emboss #define GL_NV_texgen_emboss 1 #define GL_EMBOSS_LIGHT_NV 0x855D #define GL_EMBOSS_CONSTANT_NV 0x855E #define GL_EMBOSS_MAP_NV 0x855F #endif /* GL_NV_texgen_emboss */ # 11197 "../mesa/include/GL/glext.h" #ifndef GL_NV_texgen_reflection #define GL_NV_texgen_reflection 1 #define GL_NORMAL_MAP_NV 0x8511 #define GL_REFLECTION_MAP_NV 0x8512 #endif /* GL_NV_texgen_reflection */ # 11203 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_barrier #define GL_NV_texture_barrier 1 typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTextureBarrierNV (void); #endif # 11210 "../mesa/include/GL/glext.h" #endif /* GL_NV_texture_barrier */ # 11211 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_compression_vtc #define GL_NV_texture_compression_vtc 1 #endif /* GL_NV_texture_compression_vtc */ # 11215 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_env_combine4 #define GL_NV_texture_env_combine4 1 #define GL_COMBINE4_NV 0x8503 #define GL_SOURCE3_RGB_NV 0x8583 #define GL_SOURCE3_ALPHA_NV 0x858B #define GL_OPERAND3_RGB_NV 0x8593 #define GL_OPERAND3_ALPHA_NV 0x859B #endif /* GL_NV_texture_env_combine4 */ # 11224 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_expand_normal #define GL_NV_texture_expand_normal 1 #define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F #endif /* GL_NV_texture_expand_normal */ # 11229 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_multisample #define GL_NV_texture_multisample 1 #define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 #define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); #endif # 11248 "../mesa/include/GL/glext.h" #endif /* GL_NV_texture_multisample */ # 11249 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_rectangle #define GL_NV_texture_rectangle 1 #define GL_TEXTURE_RECTANGLE_NV 0x84F5 #define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 #define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 #endif /* GL_NV_texture_rectangle */ # 11257 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_rectangle_compressed #define GL_NV_texture_rectangle_compressed 1 #endif /* GL_NV_texture_rectangle_compressed */ # 11261 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_shader #define GL_NV_texture_shader 1 #define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C #define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D #define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E #define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 #define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA #define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB #define GL_DSDT_MAG_INTENSITY_NV 0x86DC #define GL_SHADER_CONSISTENT_NV 0x86DD #define GL_TEXTURE_SHADER_NV 0x86DE #define GL_SHADER_OPERATION_NV 0x86DF #define GL_CULL_MODES_NV 0x86E0 #define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 #define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 #define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 #define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 #define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 #define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 #define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 #define GL_CONST_EYE_NV 0x86E5 #define GL_PASS_THROUGH_NV 0x86E6 #define GL_CULL_FRAGMENT_NV 0x86E7 #define GL_OFFSET_TEXTURE_2D_NV 0x86E8 #define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 #define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA #define GL_DOT_PRODUCT_NV 0x86EC #define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED #define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE #define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 #define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 #define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 #define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 #define GL_HILO_NV 0x86F4 #define GL_DSDT_NV 0x86F5 #define GL_DSDT_MAG_NV 0x86F6 #define GL_DSDT_MAG_VIB_NV 0x86F7 #define GL_HILO16_NV 0x86F8 #define GL_SIGNED_HILO_NV 0x86F9 #define GL_SIGNED_HILO16_NV 0x86FA #define GL_SIGNED_RGBA_NV 0x86FB #define GL_SIGNED_RGBA8_NV 0x86FC #define GL_SIGNED_RGB_NV 0x86FE #define GL_SIGNED_RGB8_NV 0x86FF #define GL_SIGNED_LUMINANCE_NV 0x8701 #define GL_SIGNED_LUMINANCE8_NV 0x8702 #define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 #define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 #define GL_SIGNED_ALPHA_NV 0x8705 #define GL_SIGNED_ALPHA8_NV 0x8706 #define GL_SIGNED_INTENSITY_NV 0x8707 #define GL_SIGNED_INTENSITY8_NV 0x8708 #define GL_DSDT8_NV 0x8709 #define GL_DSDT8_MAG8_NV 0x870A #define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B #define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C #define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D #define GL_HI_SCALE_NV 0x870E #define GL_LO_SCALE_NV 0x870F #define GL_DS_SCALE_NV 0x8710 #define GL_DT_SCALE_NV 0x8711 #define GL_MAGNITUDE_SCALE_NV 0x8712 #define GL_VIBRANCE_SCALE_NV 0x8713 #define GL_HI_BIAS_NV 0x8714 #define GL_LO_BIAS_NV 0x8715 #define GL_DS_BIAS_NV 0x8716 #define GL_DT_BIAS_NV 0x8717 #define GL_MAGNITUDE_BIAS_NV 0x8718 #define GL_VIBRANCE_BIAS_NV 0x8719 #define GL_TEXTURE_BORDER_VALUES_NV 0x871A #define GL_TEXTURE_HI_SIZE_NV 0x871B #define GL_TEXTURE_LO_SIZE_NV 0x871C #define GL_TEXTURE_DS_SIZE_NV 0x871D #define GL_TEXTURE_DT_SIZE_NV 0x871E #define GL_TEXTURE_MAG_SIZE_NV 0x871F #endif /* GL_NV_texture_shader */ # 11338 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_shader2 #define GL_NV_texture_shader2 1 #define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF #endif /* GL_NV_texture_shader2 */ # 11343 "../mesa/include/GL/glext.h" #ifndef GL_NV_texture_shader3 #define GL_NV_texture_shader3 1 #define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 #define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 #define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 #define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 #define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 #define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 #define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 #define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 #define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 #define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 #define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A #define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B #define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C #define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D #define GL_HILO8_NV 0x885E #define GL_SIGNED_HILO8_NV 0x885F #define GL_FORCE_BLUE_TO_ONE_NV 0x8860 #endif /* GL_NV_texture_shader3 */ # 11364 "../mesa/include/GL/glext.h" #ifndef GL_NV_timeline_semaphore #define GL_NV_timeline_semaphore 1 #define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 #define GL_SEMAPHORE_TYPE_NV 0x95B3 #define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 #define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 #define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 typedef void (APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); typedef void (APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); GLAPI void APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); GLAPI void APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); #endif # 11380 "../mesa/include/GL/glext.h" #endif /* GL_NV_timeline_semaphore */ # 11381 "../mesa/include/GL/glext.h" #ifndef GL_NV_transform_feedback #define GL_NV_transform_feedback 1 #define GL_BACK_PRIMARY_COLOR_NV 0x8C77 #define GL_BACK_SECONDARY_COLOR_NV 0x8C78 #define GL_TEXTURE_COORD_NV 0x8C79 #define GL_CLIP_DISTANCE_NV 0x8C7A #define GL_VERTEX_ID_NV 0x8C7B #define GL_PRIMITIVE_ID_NV 0x8C7C #define GL_GENERIC_ATTRIB_NV 0x8C7D #define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 #define GL_ACTIVE_VARYINGS_NV 0x8C81 #define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 #define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 #define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 #define GL_PRIMITIVES_GENERATED_NV 0x8C87 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 #define GL_RASTERIZER_DISCARD_NV 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B #define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C #define GL_SEPARATE_ATTRIBS_NV 0x8C8D #define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F #define GL_LAYER_NV 0x8DAA #define GL_NEXT_BUFFER_NV -2 #define GL_SKIP_COMPONENTS4_NV -3 #define GL_SKIP_COMPONENTS3_NV -4 #define GL_SKIP_COMPONENTS2_NV -5 #define GL_SKIP_COMPONENTS1_NV -6 typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLenum bufferMode); typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); GLAPI void APIENTRY glEndTransformFeedbackNV (void); GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLsizei count, const GLint *attribs, GLenum bufferMode); GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); #endif # 11441 "../mesa/include/GL/glext.h" #endif /* GL_NV_transform_feedback */ # 11442 "../mesa/include/GL/glext.h" #ifndef GL_NV_transform_feedback2 #define GL_NV_transform_feedback2 1 #define GL_TRANSFORM_FEEDBACK_NV 0x8E22 #define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 #define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); GLAPI void APIENTRY glPauseTransformFeedbackNV (void); GLAPI void APIENTRY glResumeTransformFeedbackNV (void); GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); #endif # 11465 "../mesa/include/GL/glext.h" #endif /* GL_NV_transform_feedback2 */ # 11466 "../mesa/include/GL/glext.h" #ifndef GL_NV_uniform_buffer_unified_memory #define GL_NV_uniform_buffer_unified_memory 1 #define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E #define GL_UNIFORM_BUFFER_ADDRESS_NV 0x936F #define GL_UNIFORM_BUFFER_LENGTH_NV 0x9370 #endif /* GL_NV_uniform_buffer_unified_memory */ # 11473 "../mesa/include/GL/glext.h" #ifndef GL_NV_vdpau_interop #define GL_NV_vdpau_interop 1 typedef GLintptr GLvdpauSurfaceNV; #define GL_SURFACE_STATE_NV 0x86EB #define GL_SURFACE_REGISTERED_NV 0x86FD #define GL_SURFACE_MAPPED_NV 0x8700 #define GL_WRITE_DISCARD_NV 0x88BE typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const void *vdpDevice, const void *getProcAddress); typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); typedef GLboolean (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVDPAUInitNV (const void *vdpDevice, const void *getProcAddress); GLAPI void APIENTRY glVDPAUFiniNV (void); GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); GLAPI GLboolean APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei count, GLsizei *length, GLint *values); GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); #endif # 11503 "../mesa/include/GL/glext.h" #endif /* GL_NV_vdpau_interop */ # 11504 "../mesa/include/GL/glext.h" #ifndef GL_NV_vdpau_interop2 #define GL_NV_vdpau_interop2 1 typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC) (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceWithPictureStructureNV (const void *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames, GLboolean isFrameStructure); #endif # 11511 "../mesa/include/GL/glext.h" #endif /* GL_NV_vdpau_interop2 */ # 11512 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_array_range #define GL_NV_vertex_array_range 1 #define GL_VERTEX_ARRAY_RANGE_NV 0x851D #define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E #define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 #define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const void *pointer); #endif # 11526 "../mesa/include/GL/glext.h" #endif /* GL_NV_vertex_array_range */ # 11527 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_array_range2 #define GL_NV_vertex_array_range2 1 #define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 #endif /* GL_NV_vertex_array_range2 */ # 11532 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_attrib_integer_64bit #define GL_NV_vertex_attrib_integer_64bit 1 typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); #endif # 11575 "../mesa/include/GL/glext.h" #endif /* GL_NV_vertex_attrib_integer_64bit */ # 11576 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_buffer_unified_memory #define GL_NV_vertex_buffer_unified_memory 1 #define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E #define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F #define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 #define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 #define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 #define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 #define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 #define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 #define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 #define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 #define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 #define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 #define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A #define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B #define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C #define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D #define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E #define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F #define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 #define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 #define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 #define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 #define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 #define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 #define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); #endif # 11630 "../mesa/include/GL/glext.h" #endif /* GL_NV_vertex_buffer_unified_memory */ # 11631 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_program #define GL_NV_vertex_program 1 #define GL_VERTEX_PROGRAM_NV 0x8620 #define GL_VERTEX_STATE_PROGRAM_NV 0x8621 #define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 #define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 #define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 #define GL_CURRENT_ATTRIB_NV 0x8626 #define GL_PROGRAM_LENGTH_NV 0x8627 #define GL_PROGRAM_STRING_NV 0x8628 #define GL_MODELVIEW_PROJECTION_NV 0x8629 #define GL_IDENTITY_NV 0x862A #define GL_INVERSE_NV 0x862B #define GL_TRANSPOSE_NV 0x862C #define GL_INVERSE_TRANSPOSE_NV 0x862D #define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E #define GL_MAX_TRACK_MATRICES_NV 0x862F #define GL_MATRIX0_NV 0x8630 #define GL_MATRIX1_NV 0x8631 #define GL_MATRIX2_NV 0x8632 #define GL_MATRIX3_NV 0x8633 #define GL_MATRIX4_NV 0x8634 #define GL_MATRIX5_NV 0x8635 #define GL_MATRIX6_NV 0x8636 #define GL_MATRIX7_NV 0x8637 #define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 #define GL_CURRENT_MATRIX_NV 0x8641 #define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 #define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 #define GL_PROGRAM_PARAMETER_NV 0x8644 #define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 #define GL_PROGRAM_TARGET_NV 0x8646 #define GL_PROGRAM_RESIDENT_NV 0x8647 #define GL_TRACK_MATRIX_NV 0x8648 #define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 #define GL_VERTEX_PROGRAM_BINDING_NV 0x864A #define GL_PROGRAM_ERROR_POSITION_NV 0x864B #define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 #define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 #define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 #define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 #define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 #define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 #define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 #define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 #define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 #define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 #define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A #define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B #define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C #define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D #define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E #define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F #define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 #define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 #define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 #define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 #define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 #define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 #define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 #define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 #define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 #define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 #define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A #define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B #define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C #define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D #define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E #define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F #define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 #define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 #define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 #define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 #define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 #define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 #define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 #define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 #define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 #define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 #define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A #define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B #define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C #define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D #define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E #define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, void **pointer); typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, void **pointer); GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const void *pointer); GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); #endif # 11847 "../mesa/include/GL/glext.h" #endif /* GL_NV_vertex_program */ # 11848 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_program1_1 #define GL_NV_vertex_program1_1 1 #endif /* GL_NV_vertex_program1_1 */ # 11852 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_program2 #define GL_NV_vertex_program2 1 #endif /* GL_NV_vertex_program2 */ # 11856 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_program2_option #define GL_NV_vertex_program2_option 1 #endif /* GL_NV_vertex_program2_option */ # 11860 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_program3 #define GL_NV_vertex_program3 1 #endif /* GL_NV_vertex_program3 */ # 11864 "../mesa/include/GL/glext.h" #ifndef GL_NV_vertex_program4 #define GL_NV_vertex_program4 1 #define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD #endif /* GL_NV_vertex_program4 */ # 11869 "../mesa/include/GL/glext.h" #ifndef GL_NV_video_capture #define GL_NV_video_capture 1 #define GL_VIDEO_BUFFER_NV 0x9020 #define GL_VIDEO_BUFFER_BINDING_NV 0x9021 #define GL_FIELD_UPPER_NV 0x9022 #define GL_FIELD_LOWER_NV 0x9023 #define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 #define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 #define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 #define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 #define GL_VIDEO_BUFFER_PITCH_NV 0x9028 #define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 #define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A #define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B #define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C #define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D #define GL_PARTIAL_SUCCESS_NV 0x902E #define GL_SUCCESS_NV 0x902F #define GL_FAILURE_NV 0x9030 #define GL_YCBYCR8_422_NV 0x9031 #define GL_YCBAYCR8A_4224_NV 0x9032 #define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 #define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 #define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 #define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 #define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 #define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 #define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 #define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A #define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B #define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); #endif # 11927 "../mesa/include/GL/glext.h" #endif /* GL_NV_video_capture */ # 11928 "../mesa/include/GL/glext.h" #ifndef GL_NV_viewport_array2 #define GL_NV_viewport_array2 1 #endif /* GL_NV_viewport_array2 */ # 11932 "../mesa/include/GL/glext.h" #ifndef GL_NV_viewport_swizzle #define GL_NV_viewport_swizzle 1 #define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 #define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 #define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 #define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 #define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 #define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 #define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A #define GL_VIEWPORT_SWIZZLE_W_NV 0x935B typedef void (APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); #endif # 11951 "../mesa/include/GL/glext.h" #endif /* GL_NV_viewport_swizzle */ # 11952 "../mesa/include/GL/glext.h" #ifndef GL_OML_interlace #define GL_OML_interlace 1 #define GL_INTERLACE_OML 0x8980 #define GL_INTERLACE_READ_OML 0x8981 #endif /* GL_OML_interlace */ # 11958 "../mesa/include/GL/glext.h" #ifndef GL_OML_resample #define GL_OML_resample 1 #define GL_PACK_RESAMPLE_OML 0x8984 #define GL_UNPACK_RESAMPLE_OML 0x8985 #define GL_RESAMPLE_REPLICATE_OML 0x8986 #define GL_RESAMPLE_ZERO_FILL_OML 0x8987 #define GL_RESAMPLE_AVERAGE_OML 0x8988 #define GL_RESAMPLE_DECIMATE_OML 0x8989 #endif /* GL_OML_resample */ # 11968 "../mesa/include/GL/glext.h" #ifndef GL_OML_subsample #define GL_OML_subsample 1 #define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 #define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 #endif /* GL_OML_subsample */ # 11974 "../mesa/include/GL/glext.h" #ifndef GL_OVR_multiview #define GL_OVR_multiview 1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 #define GL_MAX_VIEWS_OVR 0x9631 #define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); #endif # 11985 "../mesa/include/GL/glext.h" #endif /* GL_OVR_multiview */ # 11986 "../mesa/include/GL/glext.h" #ifndef GL_OVR_multiview2 #define GL_OVR_multiview2 1 #endif /* GL_OVR_multiview2 */ # 11990 "../mesa/include/GL/glext.h" #ifndef GL_PGI_misc_hints #define GL_PGI_misc_hints 1 #define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 #define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD #define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE #define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 #define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 #define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 #define GL_ALWAYS_FAST_HINT_PGI 0x1A20C #define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D #define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E #define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F #define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 #define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 #define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 #define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 #define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 #define GL_FULL_STIPPLE_HINT_PGI 0x1A219 #define GL_CLIP_NEAR_HINT_PGI 0x1A220 #define GL_CLIP_FAR_HINT_PGI 0x1A221 #define GL_WIDE_LINE_HINT_PGI 0x1A222 #define GL_BACK_NORMALS_HINT_PGI 0x1A223 typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); #endif # 12017 "../mesa/include/GL/glext.h" #endif /* GL_PGI_misc_hints */ # 12018 "../mesa/include/GL/glext.h" #ifndef GL_PGI_vertex_hints #define GL_PGI_vertex_hints 1 #define GL_VERTEX_DATA_HINT_PGI 0x1A22A #define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B #define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C #define GL_MAX_VERTEX_HINT_PGI 0x1A22D #define GL_COLOR3_BIT_PGI 0x00010000 #define GL_COLOR4_BIT_PGI 0x00020000 #define GL_EDGEFLAG_BIT_PGI 0x00040000 #define GL_INDEX_BIT_PGI 0x00080000 #define GL_MAT_AMBIENT_BIT_PGI 0x00100000 #define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 #define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 #define GL_MAT_EMISSION_BIT_PGI 0x00800000 #define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 #define GL_MAT_SHININESS_BIT_PGI 0x02000000 #define GL_MAT_SPECULAR_BIT_PGI 0x04000000 #define GL_NORMAL_BIT_PGI 0x08000000 #define GL_TEXCOORD1_BIT_PGI 0x10000000 #define GL_TEXCOORD2_BIT_PGI 0x20000000 #define GL_TEXCOORD3_BIT_PGI 0x40000000 #define GL_TEXCOORD4_BIT_PGI 0x80000000 #define GL_VERTEX23_BIT_PGI 0x00000004 #define GL_VERTEX4_BIT_PGI 0x00000008 #endif /* GL_PGI_vertex_hints */ # 12044 "../mesa/include/GL/glext.h" #ifndef GL_REND_screen_coordinates #define GL_REND_screen_coordinates 1 #define GL_SCREEN_COORDINATES_REND 0x8490 #define GL_INVERTED_SCREEN_W_REND 0x8491 #endif /* GL_REND_screen_coordinates */ # 12050 "../mesa/include/GL/glext.h" #ifndef GL_S3_s3tc #define GL_S3_s3tc 1 #define GL_RGB_S3TC 0x83A0 #define GL_RGB4_S3TC 0x83A1 #define GL_RGBA_S3TC 0x83A2 #define GL_RGBA4_S3TC 0x83A3 #define GL_RGBA_DXT5_S3TC 0x83A4 #define GL_RGBA4_DXT5_S3TC 0x83A5 #endif /* GL_S3_s3tc */ # 12060 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_detail_texture #define GL_SGIS_detail_texture 1 #define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 #define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 #define GL_LINEAR_DETAIL_SGIS 0x8097 #define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 #define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 #define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A #define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B #define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); #endif # 12077 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_detail_texture */ # 12078 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_fog_function #define GL_SGIS_fog_function 1 #define GL_FOG_FUNC_SGIS 0x812A #define GL_FOG_FUNC_POINTS_SGIS 0x812B #define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); #endif # 12090 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_fog_function */ # 12091 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_generate_mipmap #define GL_SGIS_generate_mipmap 1 #define GL_GENERATE_MIPMAP_SGIS 0x8191 #define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 #endif /* GL_SGIS_generate_mipmap */ # 12097 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_multisample #define GL_SGIS_multisample 1 #define GL_MULTISAMPLE_SGIS 0x809D #define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E #define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F #define GL_SAMPLE_MASK_SGIS 0x80A0 #define GL_1PASS_SGIS 0x80A1 #define GL_2PASS_0_SGIS 0x80A2 #define GL_2PASS_1_SGIS 0x80A3 #define GL_4PASS_0_SGIS 0x80A4 #define GL_4PASS_1_SGIS 0x80A5 #define GL_4PASS_2_SGIS 0x80A6 #define GL_4PASS_3_SGIS 0x80A7 #define GL_SAMPLE_BUFFERS_SGIS 0x80A8 #define GL_SAMPLES_SGIS 0x80A9 #define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA #define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB #define GL_SAMPLE_PATTERN_SGIS 0x80AC typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); #endif # 12122 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_multisample */ # 12123 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_pixel_texture #define GL_SGIS_pixel_texture 1 #define GL_PIXEL_TEXTURE_SGIS 0x8353 #define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 #define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 #define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); #endif # 12144 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_pixel_texture */ # 12145 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_point_line_texgen #define GL_SGIS_point_line_texgen 1 #define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 #define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 #define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 #define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 #define GL_EYE_POINT_SGIS 0x81F4 #define GL_OBJECT_POINT_SGIS 0x81F5 #define GL_EYE_LINE_SGIS 0x81F6 #define GL_OBJECT_LINE_SGIS 0x81F7 #endif /* GL_SGIS_point_line_texgen */ # 12157 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_point_parameters #define GL_SGIS_point_parameters 1 #define GL_POINT_SIZE_MIN_SGIS 0x8126 #define GL_POINT_SIZE_MAX_SGIS 0x8127 #define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 #define GL_DISTANCE_ATTENUATION_SGIS 0x8129 typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); #endif # 12170 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_point_parameters */ # 12171 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_sharpen_texture #define GL_SGIS_sharpen_texture 1 #define GL_LINEAR_SHARPEN_SGIS 0x80AD #define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE #define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF #define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); #endif # 12184 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_sharpen_texture */ # 12185 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture4D #define GL_SGIS_texture4D 1 #define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 #define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 #define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 #define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 #define GL_TEXTURE_4D_SGIS 0x8134 #define GL_PROXY_TEXTURE_4D_SGIS 0x8135 #define GL_TEXTURE_4DSIZE_SGIS 0x8136 #define GL_TEXTURE_WRAP_Q_SGIS 0x8137 #define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 #define GL_TEXTURE_4D_BINDING_SGIS 0x814F typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void *pixels); GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void *pixels); #endif # 12204 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_texture4D */ # 12205 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture_border_clamp #define GL_SGIS_texture_border_clamp 1 #define GL_CLAMP_TO_BORDER_SGIS 0x812D #endif /* GL_SGIS_texture_border_clamp */ # 12210 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture_color_mask #define GL_SGIS_texture_color_mask 1 #define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); #endif # 12218 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_texture_color_mask */ # 12219 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture_edge_clamp #define GL_SGIS_texture_edge_clamp 1 #define GL_CLAMP_TO_EDGE_SGIS 0x812F #endif /* GL_SGIS_texture_edge_clamp */ # 12224 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture_filter4 #define GL_SGIS_texture_filter4 1 #define GL_FILTER4_SGIS 0x8146 #define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); #endif # 12235 "../mesa/include/GL/glext.h" #endif /* GL_SGIS_texture_filter4 */ # 12236 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture_lod #define GL_SGIS_texture_lod 1 #define GL_TEXTURE_MIN_LOD_SGIS 0x813A #define GL_TEXTURE_MAX_LOD_SGIS 0x813B #define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C #define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D #endif /* GL_SGIS_texture_lod */ # 12244 "../mesa/include/GL/glext.h" #ifndef GL_SGIS_texture_select #define GL_SGIS_texture_select 1 #define GL_DUAL_ALPHA4_SGIS 0x8110 #define GL_DUAL_ALPHA8_SGIS 0x8111 #define GL_DUAL_ALPHA12_SGIS 0x8112 #define GL_DUAL_ALPHA16_SGIS 0x8113 #define GL_DUAL_LUMINANCE4_SGIS 0x8114 #define GL_DUAL_LUMINANCE8_SGIS 0x8115 #define GL_DUAL_LUMINANCE12_SGIS 0x8116 #define GL_DUAL_LUMINANCE16_SGIS 0x8117 #define GL_DUAL_INTENSITY4_SGIS 0x8118 #define GL_DUAL_INTENSITY8_SGIS 0x8119 #define GL_DUAL_INTENSITY12_SGIS 0x811A #define GL_DUAL_INTENSITY16_SGIS 0x811B #define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C #define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D #define GL_QUAD_ALPHA4_SGIS 0x811E #define GL_QUAD_ALPHA8_SGIS 0x811F #define GL_QUAD_LUMINANCE4_SGIS 0x8120 #define GL_QUAD_LUMINANCE8_SGIS 0x8121 #define GL_QUAD_INTENSITY4_SGIS 0x8122 #define GL_QUAD_INTENSITY8_SGIS 0x8123 #define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 #define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 #endif /* GL_SGIS_texture_select */ # 12270 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_async #define GL_SGIX_async 1 #define GL_ASYNC_MARKER_SGIX 0x8329 typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); #endif # 12288 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_async */ # 12289 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_async_histogram #define GL_SGIX_async_histogram 1 #define GL_ASYNC_HISTOGRAM_SGIX 0x832C #define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D #endif /* GL_SGIX_async_histogram */ # 12295 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_async_pixel #define GL_SGIX_async_pixel 1 #define GL_ASYNC_TEX_IMAGE_SGIX 0x835C #define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D #define GL_ASYNC_READ_PIXELS_SGIX 0x835E #define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F #define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 #define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 #endif /* GL_SGIX_async_pixel */ # 12305 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_blend_alpha_minmax #define GL_SGIX_blend_alpha_minmax 1 #define GL_ALPHA_MIN_SGIX 0x8320 #define GL_ALPHA_MAX_SGIX 0x8321 #endif /* GL_SGIX_blend_alpha_minmax */ # 12311 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_calligraphic_fragment #define GL_SGIX_calligraphic_fragment 1 #define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 #endif /* GL_SGIX_calligraphic_fragment */ # 12316 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_clipmap #define GL_SGIX_clipmap 1 #define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 #define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 #define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 #define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 #define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 #define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 #define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 #define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 #define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 #define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D #define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E #define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F #endif /* GL_SGIX_clipmap */ # 12332 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_convolution_accuracy #define GL_SGIX_convolution_accuracy 1 #define GL_CONVOLUTION_HINT_SGIX 0x8316 #endif /* GL_SGIX_convolution_accuracy */ # 12337 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_depth_pass_instrument #define GL_SGIX_depth_pass_instrument 1 #endif /* GL_SGIX_depth_pass_instrument */ # 12341 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_depth_texture #define GL_SGIX_depth_texture 1 #define GL_DEPTH_COMPONENT16_SGIX 0x81A5 #define GL_DEPTH_COMPONENT24_SGIX 0x81A6 #define GL_DEPTH_COMPONENT32_SGIX 0x81A7 #endif /* GL_SGIX_depth_texture */ # 12348 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_flush_raster #define GL_SGIX_flush_raster 1 typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFlushRasterSGIX (void); #endif # 12355 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_flush_raster */ # 12356 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_fog_offset #define GL_SGIX_fog_offset 1 #define GL_FOG_OFFSET_SGIX 0x8198 #define GL_FOG_OFFSET_VALUE_SGIX 0x8199 #endif /* GL_SGIX_fog_offset */ # 12362 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_fragment_lighting #define GL_SGIX_fragment_lighting 1 #define GL_FRAGMENT_LIGHTING_SGIX 0x8400 #define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 #define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 #define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 #define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 #define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 #define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 #define GL_LIGHT_ENV_MODE_SGIX 0x8407 #define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 #define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 #define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A #define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B #define GL_FRAGMENT_LIGHT0_SGIX 0x840C #define GL_FRAGMENT_LIGHT1_SGIX 0x840D #define GL_FRAGMENT_LIGHT2_SGIX 0x840E #define GL_FRAGMENT_LIGHT3_SGIX 0x840F #define GL_FRAGMENT_LIGHT4_SGIX 0x8410 #define GL_FRAGMENT_LIGHT5_SGIX 0x8411 #define GL_FRAGMENT_LIGHT6_SGIX 0x8412 #define GL_FRAGMENT_LIGHT7_SGIX 0x8413 typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); #endif # 12423 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_fragment_lighting */ # 12424 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_framezoom #define GL_SGIX_framezoom 1 #define GL_FRAMEZOOM_SGIX 0x818B #define GL_FRAMEZOOM_FACTOR_SGIX 0x818C #define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); #endif # 12434 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_framezoom */ # 12435 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_igloo_interface #define GL_SGIX_igloo_interface 1 typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const void *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const void *params); #endif # 12442 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_igloo_interface */ # 12443 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_instruments #define GL_SGIX_instruments 1 #define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 #define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); #ifdef GL_GLEXT_PROTOTYPES GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); GLAPI void APIENTRY glStartInstrumentsSGIX (void); GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); #endif # 12462 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_instruments */ # 12463 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_interlace #define GL_SGIX_interlace 1 #define GL_INTERLACE_SGIX 0x8094 #endif /* GL_SGIX_interlace */ # 12468 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_ir_instrument1 #define GL_SGIX_ir_instrument1 1 #define GL_IR_INSTRUMENT1_SGIX 0x817F #endif /* GL_SGIX_ir_instrument1 */ # 12473 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_list_priority #define GL_SGIX_list_priority 1 #define GL_LIST_PRIORITY_SGIX 0x8182 typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); #endif # 12491 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_list_priority */ # 12492 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_pixel_texture #define GL_SGIX_pixel_texture 1 #define GL_PIXEL_TEX_GEN_SGIX 0x8139 #define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); #endif # 12501 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_pixel_texture */ # 12502 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_pixel_tiles #define GL_SGIX_pixel_tiles 1 #define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E #define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F #define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 #define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 #define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 #define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 #define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 #define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 #endif /* GL_SGIX_pixel_tiles */ # 12514 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_polynomial_ffd #define GL_SGIX_polynomial_ffd 1 #define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 #define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 #define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 #define GL_TEXTURE_DEFORMATION_SGIX 0x8195 #define GL_DEFORMATIONS_MASK_SGIX 0x8196 #define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); #endif # 12533 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_polynomial_ffd */ # 12534 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_reference_plane #define GL_SGIX_reference_plane 1 #define GL_REFERENCE_PLANE_SGIX 0x817D #define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); #endif # 12543 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_reference_plane */ # 12544 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_resample #define GL_SGIX_resample 1 #define GL_PACK_RESAMPLE_SGIX 0x842E #define GL_UNPACK_RESAMPLE_SGIX 0x842F #define GL_RESAMPLE_REPLICATE_SGIX 0x8433 #define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434 #define GL_RESAMPLE_DECIMATE_SGIX 0x8430 #endif /* GL_SGIX_resample */ # 12553 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_scalebias_hint #define GL_SGIX_scalebias_hint 1 #define GL_SCALEBIAS_HINT_SGIX 0x8322 #endif /* GL_SGIX_scalebias_hint */ # 12558 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_shadow #define GL_SGIX_shadow 1 #define GL_TEXTURE_COMPARE_SGIX 0x819A #define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B #define GL_TEXTURE_LEQUAL_R_SGIX 0x819C #define GL_TEXTURE_GEQUAL_R_SGIX 0x819D #endif /* GL_SGIX_shadow */ # 12566 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_shadow_ambient #define GL_SGIX_shadow_ambient 1 #define GL_SHADOW_AMBIENT_SGIX 0x80BF #endif /* GL_SGIX_shadow_ambient */ # 12571 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_sprite #define GL_SGIX_sprite 1 #define GL_SPRITE_SGIX 0x8148 #define GL_SPRITE_MODE_SGIX 0x8149 #define GL_SPRITE_AXIS_SGIX 0x814A #define GL_SPRITE_TRANSLATION_SGIX 0x814B #define GL_SPRITE_AXIAL_SGIX 0x814C #define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D #define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); #endif # 12591 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_sprite */ # 12592 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_subsample #define GL_SGIX_subsample 1 #define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 #define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 #define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 #define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 #define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 #endif /* GL_SGIX_subsample */ # 12601 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_tag_sample_buffer #define GL_SGIX_tag_sample_buffer 1 typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glTagSampleBufferSGIX (void); #endif # 12608 "../mesa/include/GL/glext.h" #endif /* GL_SGIX_tag_sample_buffer */ # 12609 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_texture_add_env #define GL_SGIX_texture_add_env 1 #define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE #endif /* GL_SGIX_texture_add_env */ # 12614 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_texture_coordinate_clamp #define GL_SGIX_texture_coordinate_clamp 1 #define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 #define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A #define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B #endif /* GL_SGIX_texture_coordinate_clamp */ # 12621 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_texture_lod_bias #define GL_SGIX_texture_lod_bias 1 #define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E #define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F #define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 #endif /* GL_SGIX_texture_lod_bias */ # 12628 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_texture_multi_buffer #define GL_SGIX_texture_multi_buffer 1 #define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E #endif /* GL_SGIX_texture_multi_buffer */ # 12633 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_texture_scale_bias #define GL_SGIX_texture_scale_bias 1 #define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 #define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A #define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B #define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C #endif /* GL_SGIX_texture_scale_bias */ # 12641 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_vertex_preclip #define GL_SGIX_vertex_preclip 1 #define GL_VERTEX_PRECLIP_SGIX 0x83EE #define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF #endif /* GL_SGIX_vertex_preclip */ # 12647 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_ycrcb #define GL_SGIX_ycrcb 1 #define GL_YCRCB_422_SGIX 0x81BB #define GL_YCRCB_444_SGIX 0x81BC #endif /* GL_SGIX_ycrcb */ # 12653 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_ycrcb_subsample #define GL_SGIX_ycrcb_subsample 1 #endif /* GL_SGIX_ycrcb_subsample */ # 12657 "../mesa/include/GL/glext.h" #ifndef GL_SGIX_ycrcba #define GL_SGIX_ycrcba 1 #define GL_YCRCB_SGIX 0x8318 #define GL_YCRCBA_SGIX 0x8319 #endif /* GL_SGIX_ycrcba */ # 12663 "../mesa/include/GL/glext.h" #ifndef GL_SGI_color_matrix #define GL_SGI_color_matrix 1 #define GL_COLOR_MATRIX_SGI 0x80B1 #define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 #define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 #define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 #define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 #define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 #define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 #define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 #define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 #define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA #define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB #endif /* GL_SGI_color_matrix */ # 12678 "../mesa/include/GL/glext.h" #ifndef GL_SGI_color_table #define GL_SGI_color_table 1 #define GL_COLOR_TABLE_SGI 0x80D0 #define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 #define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 #define GL_PROXY_COLOR_TABLE_SGI 0x80D3 #define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 #define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 #define GL_COLOR_TABLE_SCALE_SGI 0x80D6 #define GL_COLOR_TABLE_BIAS_SGI 0x80D7 #define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 #define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 #define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA #define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB #define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC #define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD #define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE #define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, void *table); typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void *table); GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, void *table); GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); #endif # 12713 "../mesa/include/GL/glext.h" #endif /* GL_SGI_color_table */ # 12714 "../mesa/include/GL/glext.h" #ifndef GL_SGI_texture_color_table #define GL_SGI_texture_color_table 1 #define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC #define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD #endif /* GL_SGI_texture_color_table */ # 12720 "../mesa/include/GL/glext.h" #ifndef GL_SUNX_constant_data #define GL_SUNX_constant_data 1 #define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 #define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glFinishTextureSUNX (void); #endif # 12729 "../mesa/include/GL/glext.h" #endif /* GL_SUNX_constant_data */ # 12730 "../mesa/include/GL/glext.h" #ifndef GL_SUN_convolution_border_modes #define GL_SUN_convolution_border_modes 1 #define GL_WRAP_BORDER_SUN 0x81D4 #endif /* GL_SUN_convolution_border_modes */ # 12735 "../mesa/include/GL/glext.h" #ifndef GL_SUN_global_alpha #define GL_SUN_global_alpha 1 #define GL_GLOBAL_ALPHA_SUN 0x81D9 #define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); #endif # 12758 "../mesa/include/GL/glext.h" #endif /* GL_SUN_global_alpha */ # 12759 "../mesa/include/GL/glext.h" #ifndef GL_SUN_mesh_array #define GL_SUN_mesh_array 1 #define GL_QUAD_MESH_SUN 0x8614 #define GL_TRIANGLE_MESH_SUN 0x8615 typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); #endif # 12768 "../mesa/include/GL/glext.h" #endif /* GL_SUN_mesh_array */ # 12769 "../mesa/include/GL/glext.h" #ifndef GL_SUN_slice_accum #define GL_SUN_slice_accum 1 #define GL_SLICE_ACCUM_SUN 0x85CC #endif /* GL_SUN_slice_accum */ # 12774 "../mesa/include/GL/glext.h" #ifndef GL_SUN_triangle_list #define GL_SUN_triangle_list 1 #define GL_RESTART_SUN 0x0001 #define GL_REPLACE_MIDDLE_SUN 0x0002 #define GL_REPLACE_OLDEST_SUN 0x0003 #define GL_TRIANGLE_LIST_SUN 0x81D7 #define GL_REPLACEMENT_CODE_SUN 0x81D8 #define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 #define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 #define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 #define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 #define GL_R1UI_V3F_SUN 0x85C4 #define GL_R1UI_C4UB_V3F_SUN 0x85C5 #define GL_R1UI_C3F_V3F_SUN 0x85C6 #define GL_R1UI_N3F_V3F_SUN 0x85C7 #define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 #define GL_R1UI_T2F_V3F_SUN 0x85C9 #define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA #define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const void **pointer); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const void **pointer); #endif # 12810 "../mesa/include/GL/glext.h" #endif /* GL_SUN_triangle_list */ # 12811 "../mesa/include/GL/glext.h" #ifndef GL_SUN_vertex #define GL_SUN_vertex 1 typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); #endif # 12896 "../mesa/include/GL/glext.h" #endif /* GL_SUN_vertex */ # 12897 "../mesa/include/GL/glext.h" #ifndef GL_WIN_phong_shading #define GL_WIN_phong_shading 1 #define GL_PHONG_WIN 0x80EA #define GL_PHONG_HINT_WIN 0x80EB #endif /* GL_WIN_phong_shading */ # 12903 "../mesa/include/GL/glext.h" #ifndef GL_WIN_specular_fog #define GL_WIN_specular_fog 1 #define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC #endif /* GL_WIN_specular_fog */ # 12908 "../mesa/include/GL/glext.h" #ifndef GL_MESA_texture_const_bandwidth #define GL_MESA_texture_const_bandwidth 1 #define GL_CONST_BW_TILING_MESA 0x8BBE #endif # 12913 "../mesa/include/GL/glext.h" #ifdef __cplusplus } #endif # 12917 "../mesa/include/GL/glext.h" #endif # 12919 "../mesa/include/GL/glext.h" #endif /* glext.h expanded by -frewrite-includes */ # 2046 "../mesa/include/GL/gl.h" 2 #endif /* GL_GLEXT_LEGACY */ # 2048 "../mesa/include/GL/gl.h" /* * ???. GL_MESA_packed_depth_stencil * XXX obsolete */ #ifndef GL_MESA_packed_depth_stencil #define GL_MESA_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_MESA 0x8750 #define GL_UNSIGNED_INT_24_8_MESA 0x8751 #define GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 #define GL_UNSIGNED_SHORT_15_1_MESA 0x8753 #define GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 #endif /* GL_MESA_packed_depth_stencil */ # 2065 "../mesa/include/GL/gl.h" #ifndef GL_ATI_blend_equation_separate #define GL_ATI_blend_equation_separate 1 #define GL_ALPHA_BLEND_EQUATION_ATI 0x883D GLAPI void GLAPIENTRY glBlendEquationSeparateATI( GLenum modeRGB, GLenum modeA ); typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLenum modeA); #endif /* GL_ATI_blend_equation_separate */ # 2076 "../mesa/include/GL/gl.h" /* GL_OES_EGL_image */ #if 0 /* disabled by -frewrite-includes */ #if !defined(GL_OES_EGL_image) && !defined(GL_EXT_EGL_image_storage) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2080 "../mesa/include/GL/gl.h" typedef void* GLeglImageOES; #endif # 2082 "../mesa/include/GL/gl.h" #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 #ifdef GL_GLEXT_PROTOTYPES GLAPI void APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GLAPI void APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif # 2089 "../mesa/include/GL/gl.h" typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); #endif # 2092 "../mesa/include/GL/gl.h" #ifdef __cplusplus } #endif # 2097 "../mesa/include/GL/gl.h" #endif /* __gl_h_ */ # 2099 "../mesa/include/GL/gl.h" #endif /* gl.h expanded by -frewrite-includes */ # 49 "../mesa/src/util/glheader.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "GL/glext.h" #endif /* expanded by -frewrite-includes */ # 49 "../mesa/src/util/glheader.h" # 50 "../mesa/src/util/glheader.h" #endif /* defined(_WIN32) && !defined(__CYGWIN__) */ # 51 "../mesa/src/util/glheader.h" /** * Define GL_API, GL_APICALL and GL_APIENTRY to avoid MSVC/MinGW warnings * about different dllimport attributes for prototypes between * GL/gl*.h and GLES[|3|2]/gl*.h */ #define GL_API GLAPI #define GL_APICALL GLAPI #define GL_APIENTRY GLAPIENTRY /** * The order for including GLES[|3|2]/gl*.h headers are from newest to oldest. * As the newer header contains extra symbols that are not present in the * older header, some extra symbols can be visible only when you include the * newer header first; otherwise, if the older header is included first, some * extra symbols will be hidden by the older header. * For example, suppose we move the inclusion of GLES/gl*.h to the front, * then GL_SAMPLER_EXTERNAL_OES will not be present and cause compiling error. */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl3.h expanded by -frewrite-includes */ #include "GLES3/gl3.h" #else /* gl3.h expanded by -frewrite-includes */ # 72 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES3/gl3.h" 1 #ifndef __gles2_gl3_h_ #define __gles2_gl3_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES3/gl3.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl3platform.h expanded by -frewrite-includes */ #include #else /* gl3platform.h expanded by -frewrite-includes */ # 18 "../mesa/include/GLES3/gl3.h" # 1 "../mesa/include/GLES3/gl3platform.h" 1 #ifndef __gl3platform_h_ #define __gl3platform_h_ /* ** Copyright 2017-2020 The Khronos Group Inc. ** SPDX-License-Identifier: Apache-2.0 */ /* Platform-specific types and definitions for OpenGL ES 3.X gl3.h * * Adopters may modify khrplatform.h and this file to suit their platform. * Please contribute modifications back to Khronos as pull requests on the * public github repository: * https://github.com/KhronosGroup/OpenGL-Registry */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 17 "../mesa/include/GLES3/gl3platform.h" # 18 "../mesa/include/GLES3/gl3platform.h" #ifndef GL_APICALL #define GL_APICALL KHRONOS_APICALL #endif # 22 "../mesa/include/GLES3/gl3platform.h" #ifndef GL_APIENTRY #define GL_APIENTRY KHRONOS_APIENTRY #endif # 26 "../mesa/include/GLES3/gl3platform.h" #endif /* __gl3platform_h_ */ # 28 "../mesa/include/GLES3/gl3platform.h" #endif /* gl3platform.h expanded by -frewrite-includes */ # 19 "../mesa/include/GLES3/gl3.h" 2 #ifndef GL_APIENTRYP #define GL_APIENTRYP GL_APIENTRY* #endif # 23 "../mesa/include/GLES3/gl3.h" #ifndef GL_GLES_PROTOTYPES #define GL_GLES_PROTOTYPES 1 #endif # 27 "../mesa/include/GLES3/gl3.h" /* Generated on date 20230220 */ /* Generated C header for: * API: gles2 * Profile: common * Versions considered: 2\.[0-9]|3\.0 * Versions emitted: .* * Default extensions included: None * Additional extensions included: _nomatch_^ * Extensions removed: _nomatch_^ */ #ifndef GL_ES_VERSION_2_0 #define GL_ES_VERSION_2_0 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../mesa/include/GLES3/gl3.h" # 43 "../mesa/include/GLES3/gl3.h" typedef khronos_int8_t GLbyte; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; typedef khronos_int16_t GLshort; typedef khronos_uint16_t GLushort; typedef void GLvoid; typedef struct __GLsync *GLsync; typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef unsigned int GLenum; typedef unsigned int GLuint; typedef char GLchar; typedef khronos_float_t GLfloat; typedef khronos_ssize_t GLsizeiptr; typedef khronos_intptr_t GLintptr; typedef unsigned int GLbitfield; typedef int GLint; typedef unsigned char GLboolean; typedef int GLsizei; typedef khronos_uint8_t GLubyte; #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_FALSE 0 #define GL_TRUE 1 #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 #define GL_FUNC_ADD 0x8006 #define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION_RGB 0x8009 #define GL_BLEND_EQUATION_ALPHA 0x883D #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_BLEND 0x0BE2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_SCISSOR_TEST 0x0C11 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_OUT_OF_MEMORY 0x0505 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_LINE_WIDTH 0x0B21 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VIEWPORT 0x0BA2 #define GL_SCISSOR_BOX 0x0C10 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 #define GL_GENERATE_MIPMAP_HINT 0x8192 #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C #define GL_DEPTH_COMPONENT 0x1902 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_SHADER_TYPE 0x8B4F #define GL_DELETE_STATUS 0x8B80 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_INVERT 0x150A #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE 0x1702 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_MIRRORED_REPEAT 0x8370 #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_CUBE 0x8B60 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B #define GL_COMPILE_STATUS 0x8B81 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_COMPILER 0x8DFA #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGB565 0x8D62 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_STENCIL_INDEX8 0x8D48 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_NONE 0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 507 "../mesa/include/GLES3/gl3.h" GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); GL_APICALL void GL_APIENTRY glClearStencil (GLint s); GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glDisable (GLenum cap); GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glEnable (GLenum cap); GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glFinish (void); GL_APICALL void GL_APIENTRY glFlush (void); GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL GLenum GL_APIENTRY glGetError (void); GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #endif # 650 "../mesa/include/GLES3/gl3.h" #endif /* GL_ES_VERSION_2_0 */ # 651 "../mesa/include/GLES3/gl3.h" #ifndef GL_ES_VERSION_3_0 #define GL_ES_VERSION_3_0 1 typedef khronos_uint16_t GLhalf; #define GL_READ_BUFFER 0x0C02 #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #define GL_PACK_ROW_LENGTH 0x0D02 #define GL_PACK_SKIP_ROWS 0x0D03 #define GL_PACK_SKIP_PIXELS 0x0D04 #define GL_COLOR 0x1800 #define GL_DEPTH 0x1801 #define GL_STENCIL 0x1802 #define GL_RED 0x1903 #define GL_RGB8 0x8051 #define GL_RGBA8 0x8058 #define GL_RGB10_A2 0x8059 #define GL_TEXTURE_BINDING_3D 0x806A #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_DEPTH_COMPONENT24 0x81A6 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD #define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_CURRENT_QUERY 0x8865 #define GL_QUERY_RESULT 0x8866 #define GL_QUERY_RESULT_AVAILABLE 0x8867 #define GL_BUFFER_MAPPED 0x88BC #define GL_BUFFER_MAP_POINTER 0x88BD #define GL_STREAM_READ 0x88E1 #define GL_STREAM_COPY 0x88E2 #define GL_STATIC_READ 0x88E5 #define GL_STATIC_COPY 0x88E6 #define GL_DYNAMIC_READ 0x88E9 #define GL_DYNAMIC_COPY 0x88EA #define GL_MAX_DRAW_BUFFERS 0x8824 #define GL_DRAW_BUFFER0 0x8825 #define GL_DRAW_BUFFER1 0x8826 #define GL_DRAW_BUFFER2 0x8827 #define GL_DRAW_BUFFER3 0x8828 #define GL_DRAW_BUFFER4 0x8829 #define GL_DRAW_BUFFER5 0x882A #define GL_DRAW_BUFFER6 0x882B #define GL_DRAW_BUFFER7 0x882C #define GL_DRAW_BUFFER8 0x882D #define GL_DRAW_BUFFER9 0x882E #define GL_DRAW_BUFFER10 0x882F #define GL_DRAW_BUFFER11 0x8830 #define GL_DRAW_BUFFER12 0x8831 #define GL_DRAW_BUFFER13 0x8832 #define GL_DRAW_BUFFER14 0x8833 #define GL_DRAW_BUFFER15 0x8834 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A #define GL_SAMPLER_3D 0x8B5F #define GL_SAMPLER_2D_SHADOW 0x8B62 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B #define GL_PIXEL_PACK_BUFFER 0x88EB #define GL_PIXEL_UNPACK_BUFFER 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF #define GL_FLOAT_MAT2x3 0x8B65 #define GL_FLOAT_MAT2x4 0x8B66 #define GL_FLOAT_MAT3x2 0x8B67 #define GL_FLOAT_MAT3x4 0x8B68 #define GL_FLOAT_MAT4x2 0x8B69 #define GL_FLOAT_MAT4x3 0x8B6A #define GL_SRGB 0x8C40 #define GL_SRGB8 0x8C41 #define GL_SRGB8_ALPHA8 0x8C43 #define GL_COMPARE_REF_TO_TEXTURE 0x884E #define GL_MAJOR_VERSION 0x821B #define GL_MINOR_VERSION 0x821C #define GL_NUM_EXTENSIONS 0x821D #define GL_RGBA32F 0x8814 #define GL_RGB32F 0x8815 #define GL_RGBA16F 0x881A #define GL_RGB16F 0x881B #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 #define GL_MAX_VARYING_COMPONENTS 0x8B4B #define GL_TEXTURE_2D_ARRAY 0x8C1A #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D #define GL_R11F_G11F_B10F 0x8C3A #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B #define GL_RGB9_E5 0x8C3D #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 #define GL_RASTERIZER_DISCARD 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B #define GL_INTERLEAVED_ATTRIBS 0x8C8C #define GL_SEPARATE_ATTRIBS 0x8C8D #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F #define GL_RGBA32UI 0x8D70 #define GL_RGB32UI 0x8D71 #define GL_RGBA16UI 0x8D76 #define GL_RGB16UI 0x8D77 #define GL_RGBA8UI 0x8D7C #define GL_RGB8UI 0x8D7D #define GL_RGBA32I 0x8D82 #define GL_RGB32I 0x8D83 #define GL_RGBA16I 0x8D88 #define GL_RGB16I 0x8D89 #define GL_RGBA8I 0x8D8E #define GL_RGB8I 0x8D8F #define GL_RED_INTEGER 0x8D94 #define GL_RGB_INTEGER 0x8D98 #define GL_RGBA_INTEGER 0x8D99 #define GL_SAMPLER_2D_ARRAY 0x8DC1 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5 #define GL_UNSIGNED_INT_VEC2 0x8DC6 #define GL_UNSIGNED_INT_VEC3 0x8DC7 #define GL_UNSIGNED_INT_VEC4 0x8DC8 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB #define GL_INT_SAMPLER_CUBE 0x8DCC #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 #define GL_BUFFER_ACCESS_FLAGS 0x911F #define GL_BUFFER_MAP_LENGTH 0x9120 #define GL_BUFFER_MAP_OFFSET 0x9121 #define GL_DEPTH_COMPONENT32F 0x8CAC #define GL_DEPTH32F_STENCIL8 0x8CAD #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 #define GL_FRAMEBUFFER_DEFAULT 0x8218 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A #define GL_DEPTH_STENCIL 0x84F9 #define GL_UNSIGNED_INT_24_8 0x84FA #define GL_DEPTH24_STENCIL8 0x88F0 #define GL_UNSIGNED_NORMALIZED 0x8C17 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 #define GL_READ_FRAMEBUFFER 0x8CA8 #define GL_DRAW_FRAMEBUFFER 0x8CA9 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA #define GL_RENDERBUFFER_SAMPLES 0x8CAB #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF #define GL_COLOR_ATTACHMENT1 0x8CE1 #define GL_COLOR_ATTACHMENT2 0x8CE2 #define GL_COLOR_ATTACHMENT3 0x8CE3 #define GL_COLOR_ATTACHMENT4 0x8CE4 #define GL_COLOR_ATTACHMENT5 0x8CE5 #define GL_COLOR_ATTACHMENT6 0x8CE6 #define GL_COLOR_ATTACHMENT7 0x8CE7 #define GL_COLOR_ATTACHMENT8 0x8CE8 #define GL_COLOR_ATTACHMENT9 0x8CE9 #define GL_COLOR_ATTACHMENT10 0x8CEA #define GL_COLOR_ATTACHMENT11 0x8CEB #define GL_COLOR_ATTACHMENT12 0x8CEC #define GL_COLOR_ATTACHMENT13 0x8CED #define GL_COLOR_ATTACHMENT14 0x8CEE #define GL_COLOR_ATTACHMENT15 0x8CEF #define GL_COLOR_ATTACHMENT16 0x8CF0 #define GL_COLOR_ATTACHMENT17 0x8CF1 #define GL_COLOR_ATTACHMENT18 0x8CF2 #define GL_COLOR_ATTACHMENT19 0x8CF3 #define GL_COLOR_ATTACHMENT20 0x8CF4 #define GL_COLOR_ATTACHMENT21 0x8CF5 #define GL_COLOR_ATTACHMENT22 0x8CF6 #define GL_COLOR_ATTACHMENT23 0x8CF7 #define GL_COLOR_ATTACHMENT24 0x8CF8 #define GL_COLOR_ATTACHMENT25 0x8CF9 #define GL_COLOR_ATTACHMENT26 0x8CFA #define GL_COLOR_ATTACHMENT27 0x8CFB #define GL_COLOR_ATTACHMENT28 0x8CFC #define GL_COLOR_ATTACHMENT29 0x8CFD #define GL_COLOR_ATTACHMENT30 0x8CFE #define GL_COLOR_ATTACHMENT31 0x8CFF #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_MAX_SAMPLES 0x8D57 #define GL_HALF_FLOAT 0x140B #define GL_MAP_READ_BIT 0x0001 #define GL_MAP_WRITE_BIT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 #define GL_RG 0x8227 #define GL_RG_INTEGER 0x8228 #define GL_R8 0x8229 #define GL_RG8 0x822B #define GL_R16F 0x822D #define GL_R32F 0x822E #define GL_RG16F 0x822F #define GL_RG32F 0x8230 #define GL_R8I 0x8231 #define GL_R8UI 0x8232 #define GL_R16I 0x8233 #define GL_R16UI 0x8234 #define GL_R32I 0x8235 #define GL_R32UI 0x8236 #define GL_RG8I 0x8237 #define GL_RG8UI 0x8238 #define GL_RG16I 0x8239 #define GL_RG16UI 0x823A #define GL_RG32I 0x823B #define GL_RG32UI 0x823C #define GL_VERTEX_ARRAY_BINDING 0x85B5 #define GL_R8_SNORM 0x8F94 #define GL_RG8_SNORM 0x8F95 #define GL_RGB8_SNORM 0x8F96 #define GL_RGBA8_SNORM 0x8F97 #define GL_SIGNED_NORMALIZED 0x8F9C #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 #define GL_COPY_READ_BUFFER 0x8F36 #define GL_COPY_WRITE_BUFFER 0x8F37 #define GL_COPY_READ_BUFFER_BINDING 0x8F36 #define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 #define GL_UNIFORM_BUFFER 0x8A11 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 #define GL_UNIFORM_BUFFER_START 0x8A29 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 #define GL_UNIFORM_TYPE 0x8A37 #define GL_UNIFORM_SIZE 0x8A38 #define GL_UNIFORM_NAME_LENGTH 0x8A39 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A #define GL_UNIFORM_OFFSET 0x8A3B #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E #define GL_UNIFORM_BLOCK_BINDING 0x8A3F #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 #define GL_INVALID_INDEX 0xFFFFFFFFu #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 #define GL_OBJECT_TYPE 0x9112 #define GL_SYNC_CONDITION 0x9113 #define GL_SYNC_STATUS 0x9114 #define GL_SYNC_FLAGS 0x9115 #define GL_SYNC_FENCE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 #define GL_UNSIGNALED 0x9118 #define GL_SIGNALED 0x9119 #define GL_ALREADY_SIGNALED 0x911A #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE #define GL_ANY_SAMPLES_PASSED 0x8C2F #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A #define GL_SAMPLER_BINDING 0x8919 #define GL_RGB10_A2UI 0x906F #define GL_TEXTURE_SWIZZLE_R 0x8E42 #define GL_TEXTURE_SWIZZLE_G 0x8E43 #define GL_TEXTURE_SWIZZLE_B 0x8E44 #define GL_TEXTURE_SWIZZLE_A 0x8E45 #define GL_GREEN 0x1904 #define GL_BLUE 0x1905 #define GL_INT_2_10_10_10_REV 0x8D9F #define GL_TRANSFORM_FEEDBACK 0x8E22 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 #define GL_PROGRAM_BINARY_LENGTH 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE #define GL_PROGRAM_BINARY_FORMATS 0x87FF #define GL_COMPRESSED_R11_EAC 0x9270 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 #define GL_COMPRESSED_RG11_EAC 0x9272 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 #define GL_COMPRESSED_RGB8_ETC2 0x9274 #define GL_COMPRESSED_SRGB8_ETC2 0x9275 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F #define GL_MAX_ELEMENT_INDEX 0x8D6B #define GL_NUM_SAMPLE_COUNTS 0x9380 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1081 "../mesa/include/GLES3/gl3.h" GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); #endif # 1186 "../mesa/include/GLES3/gl3.h" #endif /* GL_ES_VERSION_3_0 */ # 1187 "../mesa/include/GLES3/gl3.h" #ifdef __cplusplus } #endif # 1191 "../mesa/include/GLES3/gl3.h" #endif # 1193 "../mesa/include/GLES3/gl3.h" #endif /* gl3.h expanded by -frewrite-includes */ # 73 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl31.h expanded by -frewrite-includes */ #include "GLES3/gl31.h" #else /* gl31.h expanded by -frewrite-includes */ # 73 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES3/gl31.h" 1 #ifndef __gles2_gl31_h_ #define __gles2_gl31_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES3/gl31.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 18 "../mesa/include/GLES3/gl31.h" # 19 "../mesa/include/GLES3/gl31.h" #ifndef GL_APIENTRYP #define GL_APIENTRYP GL_APIENTRY* #endif # 23 "../mesa/include/GLES3/gl31.h" #ifndef GL_GLES_PROTOTYPES #define GL_GLES_PROTOTYPES 1 #endif # 27 "../mesa/include/GLES3/gl31.h" /* Generated on date 20191013 */ /* Generated C header for: * API: gles2 * Profile: common * Versions considered: 2\.[0-9]|3\.[01] * Versions emitted: .* * Default extensions included: None * Additional extensions included: _nomatch_^ * Extensions removed: _nomatch_^ */ #ifndef GL_ES_VERSION_2_0 #define GL_ES_VERSION_2_0 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../mesa/include/GLES3/gl31.h" # 43 "../mesa/include/GLES3/gl31.h" typedef khronos_int8_t GLbyte; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; typedef khronos_int16_t GLshort; typedef khronos_uint16_t GLushort; typedef void GLvoid; typedef struct __GLsync *GLsync; typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef unsigned int GLenum; typedef unsigned int GLuint; typedef char GLchar; typedef khronos_float_t GLfloat; typedef khronos_ssize_t GLsizeiptr; typedef khronos_intptr_t GLintptr; typedef unsigned int GLbitfield; typedef int GLint; typedef unsigned char GLboolean; typedef int GLsizei; typedef khronos_uint8_t GLubyte; #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_FALSE 0 #define GL_TRUE 1 #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 #define GL_FUNC_ADD 0x8006 #define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION_RGB 0x8009 #define GL_BLEND_EQUATION_ALPHA 0x883D #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_BLEND 0x0BE2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_SCISSOR_TEST 0x0C11 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_OUT_OF_MEMORY 0x0505 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_LINE_WIDTH 0x0B21 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VIEWPORT 0x0BA2 #define GL_SCISSOR_BOX 0x0C10 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 #define GL_GENERATE_MIPMAP_HINT 0x8192 #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C #define GL_DEPTH_COMPONENT 0x1902 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_SHADER_TYPE 0x8B4F #define GL_DELETE_STATUS 0x8B80 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_INVERT 0x150A #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE 0x1702 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_MIRRORED_REPEAT 0x8370 #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_CUBE 0x8B60 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B #define GL_COMPILE_STATUS 0x8B81 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_COMPILER 0x8DFA #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGB565 0x8D62 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_STENCIL_INDEX8 0x8D48 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_NONE 0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 507 "../mesa/include/GLES3/gl31.h" GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); GL_APICALL void GL_APIENTRY glClearStencil (GLint s); GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glDisable (GLenum cap); GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glEnable (GLenum cap); GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glFinish (void); GL_APICALL void GL_APIENTRY glFlush (void); GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL GLenum GL_APIENTRY glGetError (void); GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #endif # 650 "../mesa/include/GLES3/gl31.h" #endif /* GL_ES_VERSION_2_0 */ # 651 "../mesa/include/GLES3/gl31.h" #ifndef GL_ES_VERSION_3_0 #define GL_ES_VERSION_3_0 1 typedef khronos_uint16_t GLhalf; #define GL_READ_BUFFER 0x0C02 #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #define GL_PACK_ROW_LENGTH 0x0D02 #define GL_PACK_SKIP_ROWS 0x0D03 #define GL_PACK_SKIP_PIXELS 0x0D04 #define GL_COLOR 0x1800 #define GL_DEPTH 0x1801 #define GL_STENCIL 0x1802 #define GL_RED 0x1903 #define GL_RGB8 0x8051 #define GL_RGBA8 0x8058 #define GL_RGB10_A2 0x8059 #define GL_TEXTURE_BINDING_3D 0x806A #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_DEPTH_COMPONENT24 0x81A6 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD #define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_CURRENT_QUERY 0x8865 #define GL_QUERY_RESULT 0x8866 #define GL_QUERY_RESULT_AVAILABLE 0x8867 #define GL_BUFFER_MAPPED 0x88BC #define GL_BUFFER_MAP_POINTER 0x88BD #define GL_STREAM_READ 0x88E1 #define GL_STREAM_COPY 0x88E2 #define GL_STATIC_READ 0x88E5 #define GL_STATIC_COPY 0x88E6 #define GL_DYNAMIC_READ 0x88E9 #define GL_DYNAMIC_COPY 0x88EA #define GL_MAX_DRAW_BUFFERS 0x8824 #define GL_DRAW_BUFFER0 0x8825 #define GL_DRAW_BUFFER1 0x8826 #define GL_DRAW_BUFFER2 0x8827 #define GL_DRAW_BUFFER3 0x8828 #define GL_DRAW_BUFFER4 0x8829 #define GL_DRAW_BUFFER5 0x882A #define GL_DRAW_BUFFER6 0x882B #define GL_DRAW_BUFFER7 0x882C #define GL_DRAW_BUFFER8 0x882D #define GL_DRAW_BUFFER9 0x882E #define GL_DRAW_BUFFER10 0x882F #define GL_DRAW_BUFFER11 0x8830 #define GL_DRAW_BUFFER12 0x8831 #define GL_DRAW_BUFFER13 0x8832 #define GL_DRAW_BUFFER14 0x8833 #define GL_DRAW_BUFFER15 0x8834 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A #define GL_SAMPLER_3D 0x8B5F #define GL_SAMPLER_2D_SHADOW 0x8B62 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B #define GL_PIXEL_PACK_BUFFER 0x88EB #define GL_PIXEL_UNPACK_BUFFER 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF #define GL_FLOAT_MAT2x3 0x8B65 #define GL_FLOAT_MAT2x4 0x8B66 #define GL_FLOAT_MAT3x2 0x8B67 #define GL_FLOAT_MAT3x4 0x8B68 #define GL_FLOAT_MAT4x2 0x8B69 #define GL_FLOAT_MAT4x3 0x8B6A #define GL_SRGB 0x8C40 #define GL_SRGB8 0x8C41 #define GL_SRGB8_ALPHA8 0x8C43 #define GL_COMPARE_REF_TO_TEXTURE 0x884E #define GL_MAJOR_VERSION 0x821B #define GL_MINOR_VERSION 0x821C #define GL_NUM_EXTENSIONS 0x821D #define GL_RGBA32F 0x8814 #define GL_RGB32F 0x8815 #define GL_RGBA16F 0x881A #define GL_RGB16F 0x881B #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 #define GL_MAX_VARYING_COMPONENTS 0x8B4B #define GL_TEXTURE_2D_ARRAY 0x8C1A #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D #define GL_R11F_G11F_B10F 0x8C3A #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B #define GL_RGB9_E5 0x8C3D #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 #define GL_RASTERIZER_DISCARD 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B #define GL_INTERLEAVED_ATTRIBS 0x8C8C #define GL_SEPARATE_ATTRIBS 0x8C8D #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F #define GL_RGBA32UI 0x8D70 #define GL_RGB32UI 0x8D71 #define GL_RGBA16UI 0x8D76 #define GL_RGB16UI 0x8D77 #define GL_RGBA8UI 0x8D7C #define GL_RGB8UI 0x8D7D #define GL_RGBA32I 0x8D82 #define GL_RGB32I 0x8D83 #define GL_RGBA16I 0x8D88 #define GL_RGB16I 0x8D89 #define GL_RGBA8I 0x8D8E #define GL_RGB8I 0x8D8F #define GL_RED_INTEGER 0x8D94 #define GL_RGB_INTEGER 0x8D98 #define GL_RGBA_INTEGER 0x8D99 #define GL_SAMPLER_2D_ARRAY 0x8DC1 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5 #define GL_UNSIGNED_INT_VEC2 0x8DC6 #define GL_UNSIGNED_INT_VEC3 0x8DC7 #define GL_UNSIGNED_INT_VEC4 0x8DC8 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB #define GL_INT_SAMPLER_CUBE 0x8DCC #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 #define GL_BUFFER_ACCESS_FLAGS 0x911F #define GL_BUFFER_MAP_LENGTH 0x9120 #define GL_BUFFER_MAP_OFFSET 0x9121 #define GL_DEPTH_COMPONENT32F 0x8CAC #define GL_DEPTH32F_STENCIL8 0x8CAD #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 #define GL_FRAMEBUFFER_DEFAULT 0x8218 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A #define GL_DEPTH_STENCIL 0x84F9 #define GL_UNSIGNED_INT_24_8 0x84FA #define GL_DEPTH24_STENCIL8 0x88F0 #define GL_UNSIGNED_NORMALIZED 0x8C17 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 #define GL_READ_FRAMEBUFFER 0x8CA8 #define GL_DRAW_FRAMEBUFFER 0x8CA9 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA #define GL_RENDERBUFFER_SAMPLES 0x8CAB #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF #define GL_COLOR_ATTACHMENT1 0x8CE1 #define GL_COLOR_ATTACHMENT2 0x8CE2 #define GL_COLOR_ATTACHMENT3 0x8CE3 #define GL_COLOR_ATTACHMENT4 0x8CE4 #define GL_COLOR_ATTACHMENT5 0x8CE5 #define GL_COLOR_ATTACHMENT6 0x8CE6 #define GL_COLOR_ATTACHMENT7 0x8CE7 #define GL_COLOR_ATTACHMENT8 0x8CE8 #define GL_COLOR_ATTACHMENT9 0x8CE9 #define GL_COLOR_ATTACHMENT10 0x8CEA #define GL_COLOR_ATTACHMENT11 0x8CEB #define GL_COLOR_ATTACHMENT12 0x8CEC #define GL_COLOR_ATTACHMENT13 0x8CED #define GL_COLOR_ATTACHMENT14 0x8CEE #define GL_COLOR_ATTACHMENT15 0x8CEF #define GL_COLOR_ATTACHMENT16 0x8CF0 #define GL_COLOR_ATTACHMENT17 0x8CF1 #define GL_COLOR_ATTACHMENT18 0x8CF2 #define GL_COLOR_ATTACHMENT19 0x8CF3 #define GL_COLOR_ATTACHMENT20 0x8CF4 #define GL_COLOR_ATTACHMENT21 0x8CF5 #define GL_COLOR_ATTACHMENT22 0x8CF6 #define GL_COLOR_ATTACHMENT23 0x8CF7 #define GL_COLOR_ATTACHMENT24 0x8CF8 #define GL_COLOR_ATTACHMENT25 0x8CF9 #define GL_COLOR_ATTACHMENT26 0x8CFA #define GL_COLOR_ATTACHMENT27 0x8CFB #define GL_COLOR_ATTACHMENT28 0x8CFC #define GL_COLOR_ATTACHMENT29 0x8CFD #define GL_COLOR_ATTACHMENT30 0x8CFE #define GL_COLOR_ATTACHMENT31 0x8CFF #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_MAX_SAMPLES 0x8D57 #define GL_HALF_FLOAT 0x140B #define GL_MAP_READ_BIT 0x0001 #define GL_MAP_WRITE_BIT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 #define GL_RG 0x8227 #define GL_RG_INTEGER 0x8228 #define GL_R8 0x8229 #define GL_RG8 0x822B #define GL_R16F 0x822D #define GL_R32F 0x822E #define GL_RG16F 0x822F #define GL_RG32F 0x8230 #define GL_R8I 0x8231 #define GL_R8UI 0x8232 #define GL_R16I 0x8233 #define GL_R16UI 0x8234 #define GL_R32I 0x8235 #define GL_R32UI 0x8236 #define GL_RG8I 0x8237 #define GL_RG8UI 0x8238 #define GL_RG16I 0x8239 #define GL_RG16UI 0x823A #define GL_RG32I 0x823B #define GL_RG32UI 0x823C #define GL_VERTEX_ARRAY_BINDING 0x85B5 #define GL_R8_SNORM 0x8F94 #define GL_RG8_SNORM 0x8F95 #define GL_RGB8_SNORM 0x8F96 #define GL_RGBA8_SNORM 0x8F97 #define GL_SIGNED_NORMALIZED 0x8F9C #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 #define GL_COPY_READ_BUFFER 0x8F36 #define GL_COPY_WRITE_BUFFER 0x8F37 #define GL_COPY_READ_BUFFER_BINDING 0x8F36 #define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 #define GL_UNIFORM_BUFFER 0x8A11 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 #define GL_UNIFORM_BUFFER_START 0x8A29 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 #define GL_UNIFORM_TYPE 0x8A37 #define GL_UNIFORM_SIZE 0x8A38 #define GL_UNIFORM_NAME_LENGTH 0x8A39 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A #define GL_UNIFORM_OFFSET 0x8A3B #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E #define GL_UNIFORM_BLOCK_BINDING 0x8A3F #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 #define GL_INVALID_INDEX 0xFFFFFFFFu #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 #define GL_OBJECT_TYPE 0x9112 #define GL_SYNC_CONDITION 0x9113 #define GL_SYNC_STATUS 0x9114 #define GL_SYNC_FLAGS 0x9115 #define GL_SYNC_FENCE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 #define GL_UNSIGNALED 0x9118 #define GL_SIGNALED 0x9119 #define GL_ALREADY_SIGNALED 0x911A #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE #define GL_ANY_SAMPLES_PASSED 0x8C2F #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A #define GL_SAMPLER_BINDING 0x8919 #define GL_RGB10_A2UI 0x906F #define GL_TEXTURE_SWIZZLE_R 0x8E42 #define GL_TEXTURE_SWIZZLE_G 0x8E43 #define GL_TEXTURE_SWIZZLE_B 0x8E44 #define GL_TEXTURE_SWIZZLE_A 0x8E45 #define GL_GREEN 0x1904 #define GL_BLUE 0x1905 #define GL_INT_2_10_10_10_REV 0x8D9F #define GL_TRANSFORM_FEEDBACK 0x8E22 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 #define GL_PROGRAM_BINARY_LENGTH 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE #define GL_PROGRAM_BINARY_FORMATS 0x87FF #define GL_COMPRESSED_R11_EAC 0x9270 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 #define GL_COMPRESSED_RG11_EAC 0x9272 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 #define GL_COMPRESSED_RGB8_ETC2 0x9274 #define GL_COMPRESSED_SRGB8_ETC2 0x9275 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F #define GL_MAX_ELEMENT_INDEX 0x8D6B #define GL_NUM_SAMPLE_COUNTS 0x9380 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1081 "../mesa/include/GLES3/gl31.h" GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); #endif # 1186 "../mesa/include/GLES3/gl31.h" #endif /* GL_ES_VERSION_3_0 */ # 1187 "../mesa/include/GLES3/gl31.h" #ifndef GL_ES_VERSION_3_1 #define GL_ES_VERSION_3_1 1 #define GL_COMPUTE_SHADER 0x91B9 #define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB #define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC #define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD #define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 #define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 #define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 #define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 #define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 #define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB #define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE #define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF #define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 #define GL_DISPATCH_INDIRECT_BUFFER 0x90EE #define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF #define GL_COMPUTE_SHADER_BIT 0x00000020 #define GL_DRAW_INDIRECT_BUFFER 0x8F3F #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 #define GL_MAX_UNIFORM_LOCATIONS 0x826E #define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 #define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 #define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 #define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 #define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 #define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 #define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 #define GL_UNIFORM 0x92E1 #define GL_UNIFORM_BLOCK 0x92E2 #define GL_PROGRAM_INPUT 0x92E3 #define GL_PROGRAM_OUTPUT 0x92E4 #define GL_BUFFER_VARIABLE 0x92E5 #define GL_SHADER_STORAGE_BLOCK 0x92E6 #define GL_ATOMIC_COUNTER_BUFFER 0x92C0 #define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 #define GL_ACTIVE_RESOURCES 0x92F5 #define GL_MAX_NAME_LENGTH 0x92F6 #define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 #define GL_NAME_LENGTH 0x92F9 #define GL_TYPE 0x92FA #define GL_ARRAY_SIZE 0x92FB #define GL_OFFSET 0x92FC #define GL_BLOCK_INDEX 0x92FD #define GL_ARRAY_STRIDE 0x92FE #define GL_MATRIX_STRIDE 0x92FF #define GL_IS_ROW_MAJOR 0x9300 #define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 #define GL_BUFFER_BINDING 0x9302 #define GL_BUFFER_DATA_SIZE 0x9303 #define GL_NUM_ACTIVE_VARIABLES 0x9304 #define GL_ACTIVE_VARIABLES 0x9305 #define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 #define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A #define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B #define GL_TOP_LEVEL_ARRAY_SIZE 0x930C #define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D #define GL_LOCATION 0x930E #define GL_VERTEX_SHADER_BIT 0x00000001 #define GL_FRAGMENT_SHADER_BIT 0x00000002 #define GL_ALL_SHADER_BITS 0xFFFFFFFF #define GL_PROGRAM_SEPARABLE 0x8258 #define GL_ACTIVE_PROGRAM 0x8259 #define GL_PROGRAM_PIPELINE_BINDING 0x825A #define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 #define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 #define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 #define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC #define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 #define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 #define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 #define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 #define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 #define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC #define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB #define GL_MAX_IMAGE_UNITS 0x8F38 #define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF #define GL_IMAGE_BINDING_NAME 0x8F3A #define GL_IMAGE_BINDING_LEVEL 0x8F3B #define GL_IMAGE_BINDING_LAYERED 0x8F3C #define GL_IMAGE_BINDING_LAYER 0x8F3D #define GL_IMAGE_BINDING_ACCESS 0x8F3E #define GL_IMAGE_BINDING_FORMAT 0x906E #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 #define GL_UNIFORM_BARRIER_BIT 0x00000004 #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 #define GL_COMMAND_BARRIER_BIT 0x00000040 #define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 #define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 #define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 #define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 #define GL_ALL_BARRIER_BITS 0xFFFFFFFF #define GL_IMAGE_2D 0x904D #define GL_IMAGE_3D 0x904E #define GL_IMAGE_CUBE 0x9050 #define GL_IMAGE_2D_ARRAY 0x9053 #define GL_INT_IMAGE_2D 0x9058 #define GL_INT_IMAGE_3D 0x9059 #define GL_INT_IMAGE_CUBE 0x905B #define GL_INT_IMAGE_2D_ARRAY 0x905E #define GL_UNSIGNED_INT_IMAGE_2D 0x9063 #define GL_UNSIGNED_INT_IMAGE_3D 0x9064 #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 #define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 #define GL_READ_ONLY 0x88B8 #define GL_WRITE_ONLY 0x88B9 #define GL_READ_WRITE 0x88BA #define GL_SHADER_STORAGE_BUFFER 0x90D2 #define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 #define GL_SHADER_STORAGE_BUFFER_START 0x90D4 #define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 #define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 #define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA #define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB #define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC #define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE #define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF #define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 #define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 #define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA #define GL_STENCIL_INDEX 0x1901 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F #define GL_SAMPLE_POSITION 0x8E50 #define GL_SAMPLE_MASK 0x8E51 #define GL_SAMPLE_MASK_VALUE 0x8E52 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F #define GL_MAX_INTEGER_SAMPLES 0x9110 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 #define GL_TEXTURE_SAMPLES 0x9106 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 #define GL_TEXTURE_WIDTH 0x1000 #define GL_TEXTURE_HEIGHT 0x1001 #define GL_TEXTURE_DEPTH 0x8071 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003 #define GL_TEXTURE_RED_SIZE 0x805C #define GL_TEXTURE_GREEN_SIZE 0x805D #define GL_TEXTURE_BLUE_SIZE 0x805E #define GL_TEXTURE_ALPHA_SIZE 0x805F #define GL_TEXTURE_DEPTH_SIZE 0x884A #define GL_TEXTURE_STENCIL_SIZE 0x88F1 #define GL_TEXTURE_SHARED_SIZE 0x8C3F #define GL_TEXTURE_RED_TYPE 0x8C10 #define GL_TEXTURE_GREEN_TYPE 0x8C11 #define GL_TEXTURE_BLUE_TYPE 0x8C12 #define GL_TEXTURE_ALPHA_TYPE 0x8C13 #define GL_TEXTURE_DEPTH_TYPE 0x8C16 #define GL_TEXTURE_COMPRESSED 0x86A1 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A #define GL_VERTEX_ATTRIB_BINDING 0x82D4 #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 #define GL_VERTEX_BINDING_DIVISOR 0x82D6 #define GL_VERTEX_BINDING_OFFSET 0x82D7 #define GL_VERTEX_BINDING_STRIDE 0x82D8 #define GL_VERTEX_BINDING_BUFFER 0x8F4F #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1432 "../mesa/include/GLES3/gl31.h" GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); #endif # 1501 "../mesa/include/GLES3/gl31.h" #endif /* GL_ES_VERSION_3_1 */ # 1502 "../mesa/include/GLES3/gl31.h" #ifdef __cplusplus } #endif # 1506 "../mesa/include/GLES3/gl31.h" #endif # 1508 "../mesa/include/GLES3/gl31.h" #endif /* gl31.h expanded by -frewrite-includes */ # 74 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl32.h expanded by -frewrite-includes */ #include "GLES3/gl32.h" #else /* gl32.h expanded by -frewrite-includes */ # 74 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES3/gl32.h" 1 #ifndef __gles2_gl32_h_ #define __gles2_gl32_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES3/gl32.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 18 "../mesa/include/GLES3/gl32.h" # 19 "../mesa/include/GLES3/gl32.h" #ifndef GL_APIENTRYP #define GL_APIENTRYP GL_APIENTRY* #endif # 23 "../mesa/include/GLES3/gl32.h" #ifndef GL_GLES_PROTOTYPES #define GL_GLES_PROTOTYPES 1 #endif # 27 "../mesa/include/GLES3/gl32.h" /* Generated on date 20191013 */ /* Generated C header for: * API: gles2 * Profile: common * Versions considered: 2\.[0-9]|3\.[012] * Versions emitted: .* * Default extensions included: None * Additional extensions included: _nomatch_^ * Extensions removed: _nomatch_^ */ #ifndef GL_ES_VERSION_2_0 #define GL_ES_VERSION_2_0 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../mesa/include/GLES3/gl32.h" # 43 "../mesa/include/GLES3/gl32.h" typedef khronos_int8_t GLbyte; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; typedef khronos_int16_t GLshort; typedef khronos_uint16_t GLushort; typedef void GLvoid; typedef struct __GLsync *GLsync; typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef unsigned int GLenum; typedef unsigned int GLuint; typedef char GLchar; typedef khronos_float_t GLfloat; typedef khronos_ssize_t GLsizeiptr; typedef khronos_intptr_t GLintptr; typedef unsigned int GLbitfield; typedef int GLint; typedef unsigned char GLboolean; typedef int GLsizei; typedef khronos_uint8_t GLubyte; #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_FALSE 0 #define GL_TRUE 1 #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 #define GL_FUNC_ADD 0x8006 #define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION_RGB 0x8009 #define GL_BLEND_EQUATION_ALPHA 0x883D #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_BLEND 0x0BE2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_SCISSOR_TEST 0x0C11 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_OUT_OF_MEMORY 0x0505 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_LINE_WIDTH 0x0B21 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VIEWPORT 0x0BA2 #define GL_SCISSOR_BOX 0x0C10 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 #define GL_GENERATE_MIPMAP_HINT 0x8192 #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C #define GL_DEPTH_COMPONENT 0x1902 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_SHADER_TYPE 0x8B4F #define GL_DELETE_STATUS 0x8B80 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_INVERT 0x150A #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE 0x1702 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_MIRRORED_REPEAT 0x8370 #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_CUBE 0x8B60 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B #define GL_COMPILE_STATUS 0x8B81 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_COMPILER 0x8DFA #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGB565 0x8D62 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_STENCIL_INDEX8 0x8D48 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_NONE 0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 507 "../mesa/include/GLES3/gl32.h" GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); GL_APICALL void GL_APIENTRY glClearStencil (GLint s); GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glDisable (GLenum cap); GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glEnable (GLenum cap); GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glFinish (void); GL_APICALL void GL_APIENTRY glFlush (void); GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL GLenum GL_APIENTRY glGetError (void); GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #endif # 650 "../mesa/include/GLES3/gl32.h" #endif /* GL_ES_VERSION_2_0 */ # 651 "../mesa/include/GLES3/gl32.h" #ifndef GL_ES_VERSION_3_0 #define GL_ES_VERSION_3_0 1 typedef khronos_uint16_t GLhalf; #define GL_READ_BUFFER 0x0C02 #define GL_UNPACK_ROW_LENGTH 0x0CF2 #define GL_UNPACK_SKIP_ROWS 0x0CF3 #define GL_UNPACK_SKIP_PIXELS 0x0CF4 #define GL_PACK_ROW_LENGTH 0x0D02 #define GL_PACK_SKIP_ROWS 0x0D03 #define GL_PACK_SKIP_PIXELS 0x0D04 #define GL_COLOR 0x1800 #define GL_DEPTH 0x1801 #define GL_STENCIL 0x1802 #define GL_RED 0x1903 #define GL_RGB8 0x8051 #define GL_RGBA8 0x8058 #define GL_RGB10_A2 0x8059 #define GL_TEXTURE_BINDING_3D 0x806A #define GL_UNPACK_SKIP_IMAGES 0x806D #define GL_UNPACK_IMAGE_HEIGHT 0x806E #define GL_TEXTURE_3D 0x806F #define GL_TEXTURE_WRAP_R 0x8072 #define GL_MAX_3D_TEXTURE_SIZE 0x8073 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 #define GL_MAX_ELEMENTS_VERTICES 0x80E8 #define GL_MAX_ELEMENTS_INDICES 0x80E9 #define GL_TEXTURE_MIN_LOD 0x813A #define GL_TEXTURE_MAX_LOD 0x813B #define GL_TEXTURE_BASE_LEVEL 0x813C #define GL_TEXTURE_MAX_LEVEL 0x813D #define GL_MIN 0x8007 #define GL_MAX 0x8008 #define GL_DEPTH_COMPONENT24 0x81A6 #define GL_MAX_TEXTURE_LOD_BIAS 0x84FD #define GL_TEXTURE_COMPARE_MODE 0x884C #define GL_TEXTURE_COMPARE_FUNC 0x884D #define GL_CURRENT_QUERY 0x8865 #define GL_QUERY_RESULT 0x8866 #define GL_QUERY_RESULT_AVAILABLE 0x8867 #define GL_BUFFER_MAPPED 0x88BC #define GL_BUFFER_MAP_POINTER 0x88BD #define GL_STREAM_READ 0x88E1 #define GL_STREAM_COPY 0x88E2 #define GL_STATIC_READ 0x88E5 #define GL_STATIC_COPY 0x88E6 #define GL_DYNAMIC_READ 0x88E9 #define GL_DYNAMIC_COPY 0x88EA #define GL_MAX_DRAW_BUFFERS 0x8824 #define GL_DRAW_BUFFER0 0x8825 #define GL_DRAW_BUFFER1 0x8826 #define GL_DRAW_BUFFER2 0x8827 #define GL_DRAW_BUFFER3 0x8828 #define GL_DRAW_BUFFER4 0x8829 #define GL_DRAW_BUFFER5 0x882A #define GL_DRAW_BUFFER6 0x882B #define GL_DRAW_BUFFER7 0x882C #define GL_DRAW_BUFFER8 0x882D #define GL_DRAW_BUFFER9 0x882E #define GL_DRAW_BUFFER10 0x882F #define GL_DRAW_BUFFER11 0x8830 #define GL_DRAW_BUFFER12 0x8831 #define GL_DRAW_BUFFER13 0x8832 #define GL_DRAW_BUFFER14 0x8833 #define GL_DRAW_BUFFER15 0x8834 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A #define GL_SAMPLER_3D 0x8B5F #define GL_SAMPLER_2D_SHADOW 0x8B62 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B #define GL_PIXEL_PACK_BUFFER 0x88EB #define GL_PIXEL_UNPACK_BUFFER 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF #define GL_FLOAT_MAT2x3 0x8B65 #define GL_FLOAT_MAT2x4 0x8B66 #define GL_FLOAT_MAT3x2 0x8B67 #define GL_FLOAT_MAT3x4 0x8B68 #define GL_FLOAT_MAT4x2 0x8B69 #define GL_FLOAT_MAT4x3 0x8B6A #define GL_SRGB 0x8C40 #define GL_SRGB8 0x8C41 #define GL_SRGB8_ALPHA8 0x8C43 #define GL_COMPARE_REF_TO_TEXTURE 0x884E #define GL_MAJOR_VERSION 0x821B #define GL_MINOR_VERSION 0x821C #define GL_NUM_EXTENSIONS 0x821D #define GL_RGBA32F 0x8814 #define GL_RGB32F 0x8815 #define GL_RGBA16F 0x881A #define GL_RGB16F 0x881B #define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD #define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF #define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 #define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 #define GL_MAX_VARYING_COMPONENTS 0x8B4B #define GL_TEXTURE_2D_ARRAY 0x8C1A #define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D #define GL_R11F_G11F_B10F 0x8C3A #define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B #define GL_RGB9_E5 0x8C3D #define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E #define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 #define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 #define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 #define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 #define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 #define GL_RASTERIZER_DISCARD 0x8C89 #define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B #define GL_INTERLEAVED_ATTRIBS 0x8C8C #define GL_SEPARATE_ATTRIBS 0x8C8D #define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E #define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F #define GL_RGBA32UI 0x8D70 #define GL_RGB32UI 0x8D71 #define GL_RGBA16UI 0x8D76 #define GL_RGB16UI 0x8D77 #define GL_RGBA8UI 0x8D7C #define GL_RGB8UI 0x8D7D #define GL_RGBA32I 0x8D82 #define GL_RGB32I 0x8D83 #define GL_RGBA16I 0x8D88 #define GL_RGB16I 0x8D89 #define GL_RGBA8I 0x8D8E #define GL_RGB8I 0x8D8F #define GL_RED_INTEGER 0x8D94 #define GL_RGB_INTEGER 0x8D98 #define GL_RGBA_INTEGER 0x8D99 #define GL_SAMPLER_2D_ARRAY 0x8DC1 #define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 #define GL_SAMPLER_CUBE_SHADOW 0x8DC5 #define GL_UNSIGNED_INT_VEC2 0x8DC6 #define GL_UNSIGNED_INT_VEC3 0x8DC7 #define GL_UNSIGNED_INT_VEC4 0x8DC8 #define GL_INT_SAMPLER_2D 0x8DCA #define GL_INT_SAMPLER_3D 0x8DCB #define GL_INT_SAMPLER_CUBE 0x8DCC #define GL_INT_SAMPLER_2D_ARRAY 0x8DCF #define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 #define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 #define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 #define GL_BUFFER_ACCESS_FLAGS 0x911F #define GL_BUFFER_MAP_LENGTH 0x9120 #define GL_BUFFER_MAP_OFFSET 0x9121 #define GL_DEPTH_COMPONENT32F 0x8CAC #define GL_DEPTH32F_STENCIL8 0x8CAD #define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 #define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 #define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 #define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 #define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 #define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 #define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 #define GL_FRAMEBUFFER_DEFAULT 0x8218 #define GL_FRAMEBUFFER_UNDEFINED 0x8219 #define GL_DEPTH_STENCIL_ATTACHMENT 0x821A #define GL_DEPTH_STENCIL 0x84F9 #define GL_UNSIGNED_INT_24_8 0x84FA #define GL_DEPTH24_STENCIL8 0x88F0 #define GL_UNSIGNED_NORMALIZED 0x8C17 #define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 #define GL_READ_FRAMEBUFFER 0x8CA8 #define GL_DRAW_FRAMEBUFFER 0x8CA9 #define GL_READ_FRAMEBUFFER_BINDING 0x8CAA #define GL_RENDERBUFFER_SAMPLES 0x8CAB #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 #define GL_MAX_COLOR_ATTACHMENTS 0x8CDF #define GL_COLOR_ATTACHMENT1 0x8CE1 #define GL_COLOR_ATTACHMENT2 0x8CE2 #define GL_COLOR_ATTACHMENT3 0x8CE3 #define GL_COLOR_ATTACHMENT4 0x8CE4 #define GL_COLOR_ATTACHMENT5 0x8CE5 #define GL_COLOR_ATTACHMENT6 0x8CE6 #define GL_COLOR_ATTACHMENT7 0x8CE7 #define GL_COLOR_ATTACHMENT8 0x8CE8 #define GL_COLOR_ATTACHMENT9 0x8CE9 #define GL_COLOR_ATTACHMENT10 0x8CEA #define GL_COLOR_ATTACHMENT11 0x8CEB #define GL_COLOR_ATTACHMENT12 0x8CEC #define GL_COLOR_ATTACHMENT13 0x8CED #define GL_COLOR_ATTACHMENT14 0x8CEE #define GL_COLOR_ATTACHMENT15 0x8CEF #define GL_COLOR_ATTACHMENT16 0x8CF0 #define GL_COLOR_ATTACHMENT17 0x8CF1 #define GL_COLOR_ATTACHMENT18 0x8CF2 #define GL_COLOR_ATTACHMENT19 0x8CF3 #define GL_COLOR_ATTACHMENT20 0x8CF4 #define GL_COLOR_ATTACHMENT21 0x8CF5 #define GL_COLOR_ATTACHMENT22 0x8CF6 #define GL_COLOR_ATTACHMENT23 0x8CF7 #define GL_COLOR_ATTACHMENT24 0x8CF8 #define GL_COLOR_ATTACHMENT25 0x8CF9 #define GL_COLOR_ATTACHMENT26 0x8CFA #define GL_COLOR_ATTACHMENT27 0x8CFB #define GL_COLOR_ATTACHMENT28 0x8CFC #define GL_COLOR_ATTACHMENT29 0x8CFD #define GL_COLOR_ATTACHMENT30 0x8CFE #define GL_COLOR_ATTACHMENT31 0x8CFF #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 #define GL_MAX_SAMPLES 0x8D57 #define GL_HALF_FLOAT 0x140B #define GL_MAP_READ_BIT 0x0001 #define GL_MAP_WRITE_BIT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 #define GL_RG 0x8227 #define GL_RG_INTEGER 0x8228 #define GL_R8 0x8229 #define GL_RG8 0x822B #define GL_R16F 0x822D #define GL_R32F 0x822E #define GL_RG16F 0x822F #define GL_RG32F 0x8230 #define GL_R8I 0x8231 #define GL_R8UI 0x8232 #define GL_R16I 0x8233 #define GL_R16UI 0x8234 #define GL_R32I 0x8235 #define GL_R32UI 0x8236 #define GL_RG8I 0x8237 #define GL_RG8UI 0x8238 #define GL_RG16I 0x8239 #define GL_RG16UI 0x823A #define GL_RG32I 0x823B #define GL_RG32UI 0x823C #define GL_VERTEX_ARRAY_BINDING 0x85B5 #define GL_R8_SNORM 0x8F94 #define GL_RG8_SNORM 0x8F95 #define GL_RGB8_SNORM 0x8F96 #define GL_RGBA8_SNORM 0x8F97 #define GL_SIGNED_NORMALIZED 0x8F9C #define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 #define GL_COPY_READ_BUFFER 0x8F36 #define GL_COPY_WRITE_BUFFER 0x8F37 #define GL_COPY_READ_BUFFER_BINDING 0x8F36 #define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 #define GL_UNIFORM_BUFFER 0x8A11 #define GL_UNIFORM_BUFFER_BINDING 0x8A28 #define GL_UNIFORM_BUFFER_START 0x8A29 #define GL_UNIFORM_BUFFER_SIZE 0x8A2A #define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B #define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D #define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E #define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F #define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 #define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 #define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 #define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 #define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 #define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 #define GL_UNIFORM_TYPE 0x8A37 #define GL_UNIFORM_SIZE 0x8A38 #define GL_UNIFORM_NAME_LENGTH 0x8A39 #define GL_UNIFORM_BLOCK_INDEX 0x8A3A #define GL_UNIFORM_OFFSET 0x8A3B #define GL_UNIFORM_ARRAY_STRIDE 0x8A3C #define GL_UNIFORM_MATRIX_STRIDE 0x8A3D #define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E #define GL_UNIFORM_BLOCK_BINDING 0x8A3F #define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 #define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 #define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 #define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 #define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 #define GL_INVALID_INDEX 0xFFFFFFFFu #define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 #define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 #define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 #define GL_OBJECT_TYPE 0x9112 #define GL_SYNC_CONDITION 0x9113 #define GL_SYNC_STATUS 0x9114 #define GL_SYNC_FLAGS 0x9115 #define GL_SYNC_FENCE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 #define GL_UNSIGNALED 0x9118 #define GL_SIGNALED 0x9119 #define GL_ALREADY_SIGNALED 0x911A #define GL_TIMEOUT_EXPIRED 0x911B #define GL_CONDITION_SATISFIED 0x911C #define GL_WAIT_FAILED 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 #define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE #define GL_ANY_SAMPLES_PASSED 0x8C2F #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A #define GL_SAMPLER_BINDING 0x8919 #define GL_RGB10_A2UI 0x906F #define GL_TEXTURE_SWIZZLE_R 0x8E42 #define GL_TEXTURE_SWIZZLE_G 0x8E43 #define GL_TEXTURE_SWIZZLE_B 0x8E44 #define GL_TEXTURE_SWIZZLE_A 0x8E45 #define GL_GREEN 0x1904 #define GL_BLUE 0x1905 #define GL_INT_2_10_10_10_REV 0x8D9F #define GL_TRANSFORM_FEEDBACK 0x8E22 #define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 #define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 #define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 #define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 #define GL_PROGRAM_BINARY_LENGTH 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE #define GL_PROGRAM_BINARY_FORMATS 0x87FF #define GL_COMPRESSED_R11_EAC 0x9270 #define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 #define GL_COMPRESSED_RG11_EAC 0x9272 #define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 #define GL_COMPRESSED_RGB8_ETC2 0x9274 #define GL_COMPRESSED_SRGB8_ETC2 0x9275 #define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 #define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 #define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 #define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 #define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F #define GL_MAX_ELEMENT_INDEX 0x8D6B #define GL_NUM_SAMPLE_COUNTS 0x9380 #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF typedef void (GL_APIENTRYP PFNGLREADBUFFERPROC) (GLenum src); typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); typedef void (GL_APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISQUERYPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLENDQUERYPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, void **params); typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); typedef void (GL_APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); typedef void (GL_APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); typedef void (GL_APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); typedef void (GL_APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); typedef GLuint (GL_APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); typedef void (GL_APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *data); typedef void (GL_APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); typedef void (GL_APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); typedef GLboolean (GL_APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); typedef void (GL_APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); typedef void (GL_APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); typedef void (GL_APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); typedef void (GL_APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1081 "../mesa/include/GLES3/gl32.h" GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src); GL_APICALL void GL_APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glGenQueries (GLsizei n, GLuint *ids); GL_APICALL void GL_APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsQuery (GLuint id); GL_APICALL void GL_APIENTRY glBeginQuery (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glEndQuery (GLenum target); GL_APICALL void GL_APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); GL_APICALL GLboolean GL_APIENTRY glUnmapBuffer (GLenum target); GL_APICALL void GL_APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, void **params); GL_APICALL void GL_APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); GL_APICALL void GL_APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); GL_APICALL void *GL_APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_APICALL void GL_APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); GL_APICALL void GL_APIENTRY glBindVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); GL_APICALL void GL_APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); GL_APICALL GLboolean GL_APIENTRY glIsVertexArray (GLuint array); GL_APICALL void GL_APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); GL_APICALL void GL_APIENTRY glBeginTransformFeedback (GLenum primitiveMode); GL_APICALL void GL_APIENTRY glEndTransformFeedback (void); GL_APICALL void GL_APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); GL_APICALL void GL_APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); GL_APICALL void GL_APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); GL_APICALL void GL_APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); GL_APICALL void GL_APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); GL_APICALL void GL_APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); GL_APICALL void GL_APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); GL_APICALL GLint GL_APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glUniform1ui (GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); GL_APICALL void GL_APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); GL_APICALL void GL_APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); GL_APICALL void GL_APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); GL_APICALL const GLubyte *GL_APIENTRY glGetStringi (GLenum name, GLuint index); GL_APICALL void GL_APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); GL_APICALL void GL_APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); GL_APICALL GLuint GL_APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); GL_APICALL void GL_APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); GL_APICALL void GL_APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); GL_APICALL void GL_APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); GL_APICALL GLsync GL_APIENTRY glFenceSync (GLenum condition, GLbitfield flags); GL_APICALL GLboolean GL_APIENTRY glIsSync (GLsync sync); GL_APICALL void GL_APIENTRY glDeleteSync (GLsync sync); GL_APICALL GLenum GL_APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glGetInteger64v (GLenum pname, GLint64 *data); GL_APICALL void GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); GL_APICALL void GL_APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); GL_APICALL void GL_APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); GL_APICALL void GL_APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); GL_APICALL void GL_APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); GL_APICALL GLboolean GL_APIENTRY glIsSampler (GLuint sampler); GL_APICALL void GL_APIENTRY glBindSampler (GLuint unit, GLuint sampler); GL_APICALL void GL_APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); GL_APICALL void GL_APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); GL_APICALL void GL_APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); GL_APICALL void GL_APIENTRY glBindTransformFeedback (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); GL_APICALL void GL_APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsTransformFeedback (GLuint id); GL_APICALL void GL_APIENTRY glPauseTransformFeedback (void); GL_APICALL void GL_APIENTRY glResumeTransformFeedback (void); GL_APICALL void GL_APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); GL_APICALL void GL_APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glInvalidateFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments); GL_APICALL void GL_APIENTRY glInvalidateSubFramebuffer (GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_APICALL void GL_APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); #endif # 1186 "../mesa/include/GLES3/gl32.h" #endif /* GL_ES_VERSION_3_0 */ # 1187 "../mesa/include/GLES3/gl32.h" #ifndef GL_ES_VERSION_3_1 #define GL_ES_VERSION_3_1 1 #define GL_COMPUTE_SHADER 0x91B9 #define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB #define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC #define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD #define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 #define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 #define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 #define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 #define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 #define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB #define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE #define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF #define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 #define GL_DISPATCH_INDIRECT_BUFFER 0x90EE #define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF #define GL_COMPUTE_SHADER_BIT 0x00000020 #define GL_DRAW_INDIRECT_BUFFER 0x8F3F #define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 #define GL_MAX_UNIFORM_LOCATIONS 0x826E #define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 #define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 #define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 #define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 #define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 #define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 #define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 #define GL_UNIFORM 0x92E1 #define GL_UNIFORM_BLOCK 0x92E2 #define GL_PROGRAM_INPUT 0x92E3 #define GL_PROGRAM_OUTPUT 0x92E4 #define GL_BUFFER_VARIABLE 0x92E5 #define GL_SHADER_STORAGE_BLOCK 0x92E6 #define GL_ATOMIC_COUNTER_BUFFER 0x92C0 #define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 #define GL_ACTIVE_RESOURCES 0x92F5 #define GL_MAX_NAME_LENGTH 0x92F6 #define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 #define GL_NAME_LENGTH 0x92F9 #define GL_TYPE 0x92FA #define GL_ARRAY_SIZE 0x92FB #define GL_OFFSET 0x92FC #define GL_BLOCK_INDEX 0x92FD #define GL_ARRAY_STRIDE 0x92FE #define GL_MATRIX_STRIDE 0x92FF #define GL_IS_ROW_MAJOR 0x9300 #define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 #define GL_BUFFER_BINDING 0x9302 #define GL_BUFFER_DATA_SIZE 0x9303 #define GL_NUM_ACTIVE_VARIABLES 0x9304 #define GL_ACTIVE_VARIABLES 0x9305 #define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 #define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A #define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B #define GL_TOP_LEVEL_ARRAY_SIZE 0x930C #define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D #define GL_LOCATION 0x930E #define GL_VERTEX_SHADER_BIT 0x00000001 #define GL_FRAGMENT_SHADER_BIT 0x00000002 #define GL_ALL_SHADER_BITS 0xFFFFFFFF #define GL_PROGRAM_SEPARABLE 0x8258 #define GL_ACTIVE_PROGRAM 0x8259 #define GL_PROGRAM_PIPELINE_BINDING 0x825A #define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 #define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 #define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 #define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC #define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 #define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 #define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 #define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 #define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 #define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 #define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC #define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 #define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB #define GL_MAX_IMAGE_UNITS 0x8F38 #define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA #define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE #define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF #define GL_IMAGE_BINDING_NAME 0x8F3A #define GL_IMAGE_BINDING_LEVEL 0x8F3B #define GL_IMAGE_BINDING_LAYERED 0x8F3C #define GL_IMAGE_BINDING_LAYER 0x8F3D #define GL_IMAGE_BINDING_ACCESS 0x8F3E #define GL_IMAGE_BINDING_FORMAT 0x906E #define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 #define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 #define GL_UNIFORM_BARRIER_BIT 0x00000004 #define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 #define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 #define GL_COMMAND_BARRIER_BIT 0x00000040 #define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 #define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 #define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 #define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 #define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 #define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 #define GL_ALL_BARRIER_BITS 0xFFFFFFFF #define GL_IMAGE_2D 0x904D #define GL_IMAGE_3D 0x904E #define GL_IMAGE_CUBE 0x9050 #define GL_IMAGE_2D_ARRAY 0x9053 #define GL_INT_IMAGE_2D 0x9058 #define GL_INT_IMAGE_3D 0x9059 #define GL_INT_IMAGE_CUBE 0x905B #define GL_INT_IMAGE_2D_ARRAY 0x905E #define GL_UNSIGNED_INT_IMAGE_2D 0x9063 #define GL_UNSIGNED_INT_IMAGE_3D 0x9064 #define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 #define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 #define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 #define GL_READ_ONLY 0x88B8 #define GL_WRITE_ONLY 0x88B9 #define GL_READ_WRITE 0x88BA #define GL_SHADER_STORAGE_BUFFER 0x90D2 #define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 #define GL_SHADER_STORAGE_BUFFER_START 0x90D4 #define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 #define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 #define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA #define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB #define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC #define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD #define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE #define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF #define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 #define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 #define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA #define GL_STENCIL_INDEX 0x1901 #define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E #define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F #define GL_SAMPLE_POSITION 0x8E50 #define GL_SAMPLE_MASK 0x8E51 #define GL_SAMPLE_MASK_VALUE 0x8E52 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 #define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 #define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E #define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F #define GL_MAX_INTEGER_SAMPLES 0x9110 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 #define GL_TEXTURE_SAMPLES 0x9106 #define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 #define GL_TEXTURE_WIDTH 0x1000 #define GL_TEXTURE_HEIGHT 0x1001 #define GL_TEXTURE_DEPTH 0x8071 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003 #define GL_TEXTURE_RED_SIZE 0x805C #define GL_TEXTURE_GREEN_SIZE 0x805D #define GL_TEXTURE_BLUE_SIZE 0x805E #define GL_TEXTURE_ALPHA_SIZE 0x805F #define GL_TEXTURE_DEPTH_SIZE 0x884A #define GL_TEXTURE_STENCIL_SIZE 0x88F1 #define GL_TEXTURE_SHARED_SIZE 0x8C3F #define GL_TEXTURE_RED_TYPE 0x8C10 #define GL_TEXTURE_GREEN_TYPE 0x8C11 #define GL_TEXTURE_BLUE_TYPE 0x8C12 #define GL_TEXTURE_ALPHA_TYPE 0x8C13 #define GL_TEXTURE_DEPTH_TYPE 0x8C16 #define GL_TEXTURE_COMPRESSED 0x86A1 #define GL_SAMPLER_2D_MULTISAMPLE 0x9108 #define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A #define GL_VERTEX_ATTRIB_BINDING 0x82D4 #define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 #define GL_VERTEX_BINDING_DIVISOR 0x82D6 #define GL_VERTEX_BINDING_OFFSET 0x82D7 #define GL_VERTEX_BINDING_STRIDE 0x82D8 #define GL_VERTEX_BINDING_BUFFER 0x8F4F #define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 #define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA #define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEPROC) (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); typedef void (GL_APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC) (GLintptr indirect); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void *indirect); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void *indirect); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC) (GLuint program, GLenum programInterface, GLenum pname, GLint *params); typedef GLuint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar *const*strings); typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); typedef void (GL_APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC) (GLbitfield barriers); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); typedef void (GL_APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint maskNumber, GLbitfield mask); typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLBINDVERTEXBUFFERPROC) (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC) (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC) (GLuint attribindex, GLuint bindingindex); typedef void (GL_APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC) (GLuint bindingindex, GLuint divisor); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1432 "../mesa/include/GLES3/gl32.h" GL_APICALL void GL_APIENTRY glDispatchCompute (GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); GL_APICALL void GL_APIENTRY glDispatchComputeIndirect (GLintptr indirect); GL_APICALL void GL_APIENTRY glDrawArraysIndirect (GLenum mode, const void *indirect); GL_APICALL void GL_APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const void *indirect); GL_APICALL void GL_APIENTRY glFramebufferParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glGetFramebufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetProgramInterfaceiv (GLuint program, GLenum programInterface, GLenum pname, GLint *params); GL_APICALL GLuint GL_APIENTRY glGetProgramResourceIndex (GLuint program, GLenum programInterface, const GLchar *name); GL_APICALL void GL_APIENTRY glGetProgramResourceName (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); GL_APICALL void GL_APIENTRY glGetProgramResourceiv (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocation (GLuint program, GLenum programInterface, const GLchar *name); GL_APICALL void GL_APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); GL_APICALL void GL_APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar *const*strings); GL_APICALL void GL_APIENTRY glBindProgramPipeline (GLuint pipeline); GL_APICALL void GL_APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); GL_APICALL void GL_APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); GL_APICALL GLboolean GL_APIENTRY glIsProgramPipeline (GLuint pipeline); GL_APICALL void GL_APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); GL_APICALL void GL_APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glValidateProgramPipeline (GLuint pipeline); GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); GL_APICALL void GL_APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); GL_APICALL void GL_APIENTRY glMemoryBarrier (GLbitfield barriers); GL_APICALL void GL_APIENTRY glMemoryBarrierByRegion (GLbitfield barriers); GL_APICALL void GL_APIENTRY glTexStorage2DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); GL_APICALL void GL_APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); GL_APICALL void GL_APIENTRY glSampleMaski (GLuint maskNumber, GLbitfield mask); GL_APICALL void GL_APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glBindVertexBuffer (GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); GL_APICALL void GL_APIENTRY glVertexAttribFormat (GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); GL_APICALL void GL_APIENTRY glVertexAttribIFormat (GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); GL_APICALL void GL_APIENTRY glVertexAttribBinding (GLuint attribindex, GLuint bindingindex); GL_APICALL void GL_APIENTRY glVertexBindingDivisor (GLuint bindingindex, GLuint divisor); #endif # 1501 "../mesa/include/GLES3/gl32.h" #endif /* GL_ES_VERSION_3_1 */ # 1502 "../mesa/include/GLES3/gl32.h" #ifndef GL_ES_VERSION_3_2 #define GL_ES_VERSION_3_2 1 typedef void (GL_APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); #define GL_MULTISAMPLE_LINE_WIDTH_RANGE 0x9381 #define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY 0x9382 #define GL_MULTIPLY 0x9294 #define GL_SCREEN 0x9295 #define GL_OVERLAY 0x9296 #define GL_DARKEN 0x9297 #define GL_LIGHTEN 0x9298 #define GL_COLORDODGE 0x9299 #define GL_COLORBURN 0x929A #define GL_HARDLIGHT 0x929B #define GL_SOFTLIGHT 0x929C #define GL_DIFFERENCE 0x929E #define GL_EXCLUSION 0x92A0 #define GL_HSL_HUE 0x92AD #define GL_HSL_SATURATION 0x92AE #define GL_HSL_COLOR 0x92AF #define GL_HSL_LUMINOSITY 0x92B0 #define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 #define GL_DEBUG_CALLBACK_FUNCTION 0x8244 #define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 #define GL_DEBUG_SOURCE_API 0x8246 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 #define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 #define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 #define GL_DEBUG_SOURCE_APPLICATION 0x824A #define GL_DEBUG_SOURCE_OTHER 0x824B #define GL_DEBUG_TYPE_ERROR 0x824C #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E #define GL_DEBUG_TYPE_PORTABILITY 0x824F #define GL_DEBUG_TYPE_PERFORMANCE 0x8250 #define GL_DEBUG_TYPE_OTHER 0x8251 #define GL_DEBUG_TYPE_MARKER 0x8268 #define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 #define GL_DEBUG_TYPE_POP_GROUP 0x826A #define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B #define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C #define GL_DEBUG_GROUP_STACK_DEPTH 0x826D #define GL_BUFFER 0x82E0 #define GL_SHADER 0x82E1 #define GL_PROGRAM 0x82E2 #define GL_VERTEX_ARRAY 0x8074 #define GL_QUERY 0x82E3 #define GL_PROGRAM_PIPELINE 0x82E4 #define GL_SAMPLER 0x82E6 #define GL_MAX_LABEL_LENGTH 0x82E8 #define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 #define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 #define GL_DEBUG_LOGGED_MESSAGES 0x9145 #define GL_DEBUG_SEVERITY_HIGH 0x9146 #define GL_DEBUG_SEVERITY_MEDIUM 0x9147 #define GL_DEBUG_SEVERITY_LOW 0x9148 #define GL_DEBUG_OUTPUT 0x92E0 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 #define GL_STACK_OVERFLOW 0x0503 #define GL_STACK_UNDERFLOW 0x0504 #define GL_GEOMETRY_SHADER 0x8DD9 #define GL_GEOMETRY_SHADER_BIT 0x00000004 #define GL_GEOMETRY_VERTICES_OUT 0x8916 #define GL_GEOMETRY_INPUT_TYPE 0x8917 #define GL_GEOMETRY_OUTPUT_TYPE 0x8918 #define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F #define GL_LAYER_PROVOKING_VERTEX 0x825E #define GL_LINES_ADJACENCY 0x000A #define GL_LINE_STRIP_ADJACENCY 0x000B #define GL_TRIANGLES_ADJACENCY 0x000C #define GL_TRIANGLE_STRIP_ADJACENCY 0x000D #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 #define GL_FIRST_VERTEX_CONVENTION 0x8E4D #define GL_LAST_VERTEX_CONVENTION 0x8E4E #define GL_UNDEFINED_VERTEX 0x8260 #define GL_PRIMITIVES_GENERATED 0x8C87 #define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 #define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 #define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 #define GL_PRIMITIVE_BOUNDING_BOX 0x92BE #define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 #define GL_CONTEXT_FLAGS 0x821E #define GL_LOSE_CONTEXT_ON_RESET 0x8252 #define GL_GUILTY_CONTEXT_RESET 0x8253 #define GL_INNOCENT_CONTEXT_RESET 0x8254 #define GL_UNKNOWN_CONTEXT_RESET 0x8255 #define GL_RESET_NOTIFICATION_STRATEGY 0x8256 #define GL_NO_RESET_NOTIFICATION 0x8261 #define GL_CONTEXT_LOST 0x0507 #define GL_SAMPLE_SHADING 0x8C36 #define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D #define GL_PATCHES 0x000E #define GL_PATCH_VERTICES 0x8E72 #define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 #define GL_TESS_GEN_MODE 0x8E76 #define GL_TESS_GEN_SPACING 0x8E77 #define GL_TESS_GEN_VERTEX_ORDER 0x8E78 #define GL_TESS_GEN_POINT_MODE 0x8E79 #define GL_ISOLINES 0x8E7A #define GL_QUADS 0x0007 #define GL_FRACTIONAL_ODD 0x8E7B #define GL_FRACTIONAL_EVEN 0x8E7C #define GL_MAX_PATCH_VERTICES 0x8E7D #define GL_MAX_TESS_GEN_LEVEL 0x8E7E #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 #define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 #define GL_IS_PER_PATCH 0x92E7 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 #define GL_TESS_CONTROL_SHADER 0x8E88 #define GL_TESS_EVALUATION_SHADER 0x8E87 #define GL_TESS_CONTROL_SHADER_BIT 0x00000008 #define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 #define GL_TEXTURE_BORDER_COLOR 0x1004 #define GL_CLAMP_TO_BORDER 0x812D #define GL_TEXTURE_BUFFER 0x8C2A #define GL_TEXTURE_BUFFER_BINDING 0x8C2A #define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B #define GL_TEXTURE_BINDING_BUFFER 0x8C2C #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F #define GL_SAMPLER_BUFFER 0x8DC2 #define GL_INT_SAMPLER_BUFFER 0x8DD0 #define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 #define GL_IMAGE_BUFFER 0x9051 #define GL_INT_IMAGE_BUFFER 0x905C #define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 #define GL_TEXTURE_BUFFER_OFFSET 0x919D #define GL_TEXTURE_BUFFER_SIZE 0x919E #define GL_COMPRESSED_RGBA_ASTC_4x4 0x93B0 #define GL_COMPRESSED_RGBA_ASTC_5x4 0x93B1 #define GL_COMPRESSED_RGBA_ASTC_5x5 0x93B2 #define GL_COMPRESSED_RGBA_ASTC_6x5 0x93B3 #define GL_COMPRESSED_RGBA_ASTC_6x6 0x93B4 #define GL_COMPRESSED_RGBA_ASTC_8x5 0x93B5 #define GL_COMPRESSED_RGBA_ASTC_8x6 0x93B6 #define GL_COMPRESSED_RGBA_ASTC_8x8 0x93B7 #define GL_COMPRESSED_RGBA_ASTC_10x5 0x93B8 #define GL_COMPRESSED_RGBA_ASTC_10x6 0x93B9 #define GL_COMPRESSED_RGBA_ASTC_10x8 0x93BA #define GL_COMPRESSED_RGBA_ASTC_10x10 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12 0x93BD #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5 0x93D2 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5 0x93D3 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6 0x93D4 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5 0x93D5 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6 0x93D6 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8 0x93D7 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5 0x93D8 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6 0x93D9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8 0x93DA #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12 0x93DD #define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A #define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D #define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F #define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 #define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D typedef void (GL_APIENTRYP PFNGLBLENDBARRIERPROC) (void); typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC) (GLDEBUGPROC callback, const void *userParam); typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPPROC) (void); typedef void (GL_APIENTRYP PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (GL_APIENTRYP PFNGLGETPOINTERVPROC) (GLenum pname, void **params); typedef void (GL_APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (GL_APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC) (void); typedef void (GL_APIENTRYP PFNGLREADNPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1757 "../mesa/include/GLES3/gl32.h" GL_APICALL void GL_APIENTRY glBlendBarrier (void); GL_APICALL void GL_APIENTRY glCopyImageSubData (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); GL_APICALL void GL_APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); GL_APICALL void GL_APIENTRY glDebugMessageInsert (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); GL_APICALL void GL_APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam); GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLog (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); GL_APICALL void GL_APIENTRY glPushDebugGroup (GLenum source, GLuint id, GLsizei length, const GLchar *message); GL_APICALL void GL_APIENTRY glPopDebugGroup (void); GL_APICALL void GL_APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectLabel (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); GL_APICALL void GL_APIENTRY glObjectPtrLabel (const void *ptr, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectPtrLabel (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); GL_APICALL void GL_APIENTRY glGetPointerv (GLenum pname, void **params); GL_APICALL void GL_APIENTRY glEnablei (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glDisablei (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glBlendEquationi (GLuint buf, GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); GL_APICALL void GL_APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GL_APICALL void GL_APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); GL_APICALL GLboolean GL_APIENTRY glIsEnabledi (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); GL_APICALL void GL_APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glPrimitiveBoundingBox (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatus (void); GL_APICALL void GL_APIENTRY glReadnPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GL_APICALL void GL_APIENTRY glGetnUniformfv (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); GL_APICALL void GL_APIENTRY glGetnUniformiv (GLuint program, GLint location, GLsizei bufSize, GLint *params); GL_APICALL void GL_APIENTRY glGetnUniformuiv (GLuint program, GLint location, GLsizei bufSize, GLuint *params); GL_APICALL void GL_APIENTRY glMinSampleShading (GLfloat value); GL_APICALL void GL_APIENTRY glPatchParameteri (GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); GL_APICALL void GL_APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); GL_APICALL void GL_APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); GL_APICALL void GL_APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); GL_APICALL void GL_APIENTRY glTexBufferRange (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); GL_APICALL void GL_APIENTRY glTexStorage3DMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #endif # 1802 "../mesa/include/GLES3/gl32.h" #endif /* GL_ES_VERSION_3_2 */ # 1803 "../mesa/include/GLES3/gl32.h" #ifdef __cplusplus } #endif # 1807 "../mesa/include/GLES3/gl32.h" #endif # 1809 "../mesa/include/GLES3/gl32.h" #endif /* gl32.h expanded by -frewrite-includes */ # 75 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl3ext.h expanded by -frewrite-includes */ #include "GLES3/gl3ext.h" #else /* gl3ext.h expanded by -frewrite-includes */ # 75 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES3/gl3ext.h" 1 #ifndef __gl3ext_h_ #define __gl3ext_h_ /* $Revision: 17809 $ on $Date:: 2012-05-14 08:03:36 -0700 #$ */ /* * This document is licensed under the SGI Free Software B License Version * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ . */ /* OpenGL ES 3 Extensions * * After an OES extension's interactions with OpenGl ES 3.0 have been documented, * its tokens and function definitions should be added to this file in a manner * that does not conflict with gl2ext.h or gl3.h. * * Tokens and function definitions for extensions that have become standard * features in OpenGL ES 3.0 will not be added to this file. * * Applications using OpenGL-ES-2-only extensions should include gl2ext.h */ #endif /* __gl3ext_h_ */ # 24 "../mesa/include/GLES3/gl3ext.h" #endif /* gl3ext.h expanded by -frewrite-includes */ # 76 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl2.h expanded by -frewrite-includes */ #include "GLES2/gl2.h" #else /* gl2.h expanded by -frewrite-includes */ # 76 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES2/gl2.h" 1 #ifndef __gles2_gl2_h_ #define __gles2_gl2_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES2/gl2.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl2platform.h expanded by -frewrite-includes */ #include #else /* gl2platform.h expanded by -frewrite-includes */ # 18 "../mesa/include/GLES2/gl2.h" # 1 "../mesa/include/GLES2/gl2platform.h" 1 #ifndef __gl2platform_h_ #define __gl2platform_h_ /* ** Copyright 2017-2020 The Khronos Group Inc. ** SPDX-License-Identifier: Apache-2.0 */ /* Platform-specific types and definitions for OpenGL ES 2.X gl2.h * * Adopters may modify khrplatform.h and this file to suit their platform. * Please contribute modifications back to Khronos as pull requests on the * public github repository: * https://github.com/KhronosGroup/OpenGL-Registry */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 17 "../mesa/include/GLES2/gl2platform.h" # 18 "../mesa/include/GLES2/gl2platform.h" #ifndef GL_APICALL #define GL_APICALL KHRONOS_APICALL #endif # 22 "../mesa/include/GLES2/gl2platform.h" #ifndef GL_APIENTRY #define GL_APIENTRY KHRONOS_APIENTRY #endif # 26 "../mesa/include/GLES2/gl2platform.h" #endif /* __gl2platform_h_ */ # 28 "../mesa/include/GLES2/gl2platform.h" #endif /* gl2platform.h expanded by -frewrite-includes */ # 19 "../mesa/include/GLES2/gl2.h" 2 #ifndef GL_APIENTRYP #define GL_APIENTRYP GL_APIENTRY* #endif # 23 "../mesa/include/GLES2/gl2.h" #ifndef GL_GLES_PROTOTYPES #define GL_GLES_PROTOTYPES 1 #endif # 27 "../mesa/include/GLES2/gl2.h" /* Generated on date 20230220 */ /* Generated C header for: * API: gles2 * Profile: common * Versions considered: 2\.[0-9] * Versions emitted: .* * Default extensions included: None * Additional extensions included: _nomatch_^ * Extensions removed: _nomatch_^ */ #ifndef GL_ES_VERSION_2_0 #define GL_ES_VERSION_2_0 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../mesa/include/GLES2/gl2.h" # 43 "../mesa/include/GLES2/gl2.h" typedef khronos_int8_t GLbyte; typedef khronos_float_t GLclampf; typedef khronos_int32_t GLfixed; typedef khronos_int16_t GLshort; typedef khronos_uint16_t GLushort; typedef void GLvoid; typedef struct __GLsync *GLsync; typedef khronos_int64_t GLint64; typedef khronos_uint64_t GLuint64; typedef unsigned int GLenum; typedef unsigned int GLuint; typedef char GLchar; typedef khronos_float_t GLfloat; typedef khronos_ssize_t GLsizeiptr; typedef khronos_intptr_t GLintptr; typedef unsigned int GLbitfield; typedef int GLint; typedef unsigned char GLboolean; typedef int GLsizei; typedef khronos_uint8_t GLubyte; #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_FALSE 0 #define GL_TRUE 1 #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 #define GL_FUNC_ADD 0x8006 #define GL_BLEND_EQUATION 0x8009 #define GL_BLEND_EQUATION_RGB 0x8009 #define GL_BLEND_EQUATION_ALPHA 0x883D #define GL_FUNC_SUBTRACT 0x800A #define GL_FUNC_REVERSE_SUBTRACT 0x800B #define GL_BLEND_DST_RGB 0x80C8 #define GL_BLEND_SRC_RGB 0x80C9 #define GL_BLEND_DST_ALPHA 0x80CA #define GL_BLEND_SRC_ALPHA 0x80CB #define GL_CONSTANT_COLOR 0x8001 #define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 #define GL_CONSTANT_ALPHA 0x8003 #define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 #define GL_BLEND_COLOR 0x8005 #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_STREAM_DRAW 0x88E0 #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_CURRENT_VERTEX_ATTRIB 0x8626 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_BLEND 0x0BE2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_SCISSOR_TEST 0x0C11 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_OUT_OF_MEMORY 0x0505 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_LINE_WIDTH 0x0B21 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_STENCIL_BACK_FUNC 0x8800 #define GL_STENCIL_BACK_FAIL 0x8801 #define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 #define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 #define GL_STENCIL_BACK_REF 0x8CA3 #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 #define GL_VIEWPORT 0x0BA2 #define GL_SCISSOR_BOX 0x0C10 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 #define GL_GENERATE_MIPMAP_HINT 0x8192 #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_INT 0x1404 #define GL_UNSIGNED_INT 0x1405 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C #define GL_DEPTH_COMPONENT 0x1902 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_FRAGMENT_SHADER 0x8B30 #define GL_VERTEX_SHADER 0x8B31 #define GL_MAX_VERTEX_ATTRIBS 0x8869 #define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB #define GL_MAX_VARYING_VECTORS 0x8DFC #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #define GL_SHADER_TYPE 0x8B4F #define GL_DELETE_STATUS 0x8B80 #define GL_LINK_STATUS 0x8B82 #define GL_VALIDATE_STATUS 0x8B83 #define GL_ATTACHED_SHADERS 0x8B85 #define GL_ACTIVE_UNIFORMS 0x8B86 #define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A #define GL_SHADING_LANGUAGE_VERSION 0x8B8C #define GL_CURRENT_PROGRAM 0x8B8D #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_INVERT 0x150A #define GL_INCR_WRAP 0x8507 #define GL_DECR_WRAP 0x8508 #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_TEXTURE 0x1702 #define GL_TEXTURE_CUBE_MAP 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_MIRRORED_REPEAT 0x8370 #define GL_FLOAT_VEC2 0x8B50 #define GL_FLOAT_VEC3 0x8B51 #define GL_FLOAT_VEC4 0x8B52 #define GL_INT_VEC2 0x8B53 #define GL_INT_VEC3 0x8B54 #define GL_INT_VEC4 0x8B55 #define GL_BOOL 0x8B56 #define GL_BOOL_VEC2 0x8B57 #define GL_BOOL_VEC3 0x8B58 #define GL_BOOL_VEC4 0x8B59 #define GL_FLOAT_MAT2 0x8B5A #define GL_FLOAT_MAT3 0x8B5B #define GL_FLOAT_MAT4 0x8B5C #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_CUBE 0x8B60 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 #define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 #define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A #define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F #define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B #define GL_COMPILE_STATUS 0x8B81 #define GL_INFO_LOG_LENGTH 0x8B84 #define GL_SHADER_SOURCE_LENGTH 0x8B88 #define GL_SHADER_COMPILER 0x8DFA #define GL_SHADER_BINARY_FORMATS 0x8DF8 #define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 #define GL_LOW_FLOAT 0x8DF0 #define GL_MEDIUM_FLOAT 0x8DF1 #define GL_HIGH_FLOAT 0x8DF2 #define GL_LOW_INT 0x8DF3 #define GL_MEDIUM_INT 0x8DF4 #define GL_HIGH_INT 0x8DF5 #define GL_FRAMEBUFFER 0x8D40 #define GL_RENDERBUFFER 0x8D41 #define GL_RGBA4 0x8056 #define GL_RGB5_A1 0x8057 #define GL_RGB565 0x8D62 #define GL_DEPTH_COMPONENT16 0x81A5 #define GL_STENCIL_INDEX8 0x8D48 #define GL_RENDERBUFFER_WIDTH 0x8D42 #define GL_RENDERBUFFER_HEIGHT 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 #define GL_RENDERBUFFER_RED_SIZE 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 #define GL_COLOR_ATTACHMENT0 0x8CE0 #define GL_DEPTH_ATTACHMENT 0x8D00 #define GL_STENCIL_ATTACHMENT 0x8D20 #define GL_NONE 0 #define GL_FRAMEBUFFER_COMPLETE 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9 #define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD #define GL_FRAMEBUFFER_BINDING 0x8CA6 #define GL_RENDERBUFFER_BINDING 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 typedef void (GL_APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); typedef void (GL_APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); typedef void (GL_APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); typedef void (GL_APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); typedef void (GL_APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const void *data, GLenum usage); typedef void (GL_APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); typedef void (GL_APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFPROC) (GLfloat d); typedef void (GL_APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); typedef void (GL_APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); typedef void (GL_APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef GLuint (GL_APIENTRYP PFNGLCREATEPROGRAMPROC) (void); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); typedef void (GL_APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); typedef void (GL_APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); typedef void (GL_APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); typedef void (GL_APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFPROC) (GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GL_APIENTRYP PFNGLDISABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices); typedef void (GL_APIENTRYP PFNGLENABLEPROC) (GLenum cap); typedef void (GL_APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (GL_APIENTRYP PFNGLFINISHPROC) (void); typedef void (GL_APIENTRYP PFNGLFLUSHPROC) (void); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); typedef void (GL_APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); typedef void (GL_APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); typedef GLint (GL_APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *data); typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef GLenum (GL_APIENTRYP PFNGLGETERRORPROC) (void); typedef void (GL_APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *data); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *data); typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); typedef void (GL_APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); typedef const GLubyte *(GL_APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); typedef GLint (GL_APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, void **pointer); typedef void (GL_APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); typedef GLboolean (GL_APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); typedef GLboolean (GL_APIENTRYP PFNGLISSHADERPROC) (GLuint shader); typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); typedef void (GL_APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); typedef void (GL_APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); typedef void (GL_APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); typedef void (GL_APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLfloat value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); typedef void (GL_APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); typedef void (GL_APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); #if 0 /* disabled by -frewrite-includes */ #if GL_GLES_PROTOTYPES #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 507 "../mesa/include/GLES2/gl2.h" GL_APICALL void GL_APIENTRY glActiveTexture (GLenum texture); GL_APICALL void GL_APIENTRY glAttachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); GL_APICALL void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_APICALL void GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); GL_APICALL void GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_APICALL void GL_APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glBlendEquation (GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_APICALL void GL_APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); GL_APICALL void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); GL_APICALL void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus (GLenum target); GL_APICALL void GL_APIENTRY glClear (GLbitfield mask); GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_APICALL void GL_APIENTRY glClearDepthf (GLfloat d); GL_APICALL void GL_APIENTRY glClearStencil (GLint s); GL_APICALL void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_APICALL void GL_APIENTRY glCompileShader (GLuint shader); GL_APICALL void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_APICALL void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL GLuint GL_APIENTRY glCreateProgram (void); GL_APICALL GLuint GL_APIENTRY glCreateShader (GLenum type); GL_APICALL void GL_APIENTRY glCullFace (GLenum mode); GL_APICALL void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GL_APICALL void GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); GL_APICALL void GL_APIENTRY glDeleteProgram (GLuint program); GL_APICALL void GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glDeleteShader (GLuint shader); GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func); GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag); GL_APICALL void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glDetachShader (GLuint program, GLuint shader); GL_APICALL void GL_APIENTRY glDisable (GLenum cap); GL_APICALL void GL_APIENTRY glDisableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); GL_APICALL void GL_APIENTRY glEnable (GLenum cap); GL_APICALL void GL_APIENTRY glEnableVertexAttribArray (GLuint index); GL_APICALL void GL_APIENTRY glFinish (void); GL_APICALL void GL_APIENTRY glFlush (void); GL_APICALL void GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_APICALL void GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_APICALL void GL_APIENTRY glFrontFace (GLenum mode); GL_APICALL void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GL_APICALL void GL_APIENTRY glGenerateMipmap (GLenum target); GL_APICALL void GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); GL_APICALL void GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL GLenum GL_APIENTRY glGetError (void); GL_APICALL void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); GL_APICALL void GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); GL_APICALL void GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name); GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, void **pointer); GL_APICALL void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_APICALL GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_APICALL GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_APICALL GLboolean GL_APIENTRY glIsFramebuffer (GLuint framebuffer); GL_APICALL GLboolean GL_APIENTRY glIsProgram (GLuint program); GL_APICALL GLboolean GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer); GL_APICALL GLboolean GL_APIENTRY glIsShader (GLuint shader); GL_APICALL GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_APICALL void GL_APIENTRY glLineWidth (GLfloat width); GL_APICALL void GL_APIENTRY glLinkProgram (GLuint program); GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); GL_APICALL void GL_APIENTRY glReleaseShaderCompiler (void); GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask); GL_APICALL void GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); GL_APICALL void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_APICALL void GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_APICALL void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glUniform1f (GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform1i (GLint location, GLint v0); GL_APICALL void GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUseProgram (GLuint program); GL_APICALL void GL_APIENTRY glValidateProgram (GLuint program); GL_APICALL void GL_APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); GL_APICALL void GL_APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); GL_APICALL void GL_APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); GL_APICALL void GL_APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #endif # 650 "../mesa/include/GLES2/gl2.h" #endif /* GL_ES_VERSION_2_0 */ # 651 "../mesa/include/GLES2/gl2.h" #ifdef __cplusplus } #endif # 655 "../mesa/include/GLES2/gl2.h" #endif # 657 "../mesa/include/GLES2/gl2.h" #endif /* gl2.h expanded by -frewrite-includes */ # 77 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl2ext.h expanded by -frewrite-includes */ #include "GLES2/gl2ext.h" #else /* gl2ext.h expanded by -frewrite-includes */ # 77 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES2/gl2ext.h" 1 #ifndef __gles2_gl2ext_h_ #define __gles2_gl2ext_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES2/gl2ext.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #ifndef GL_APIENTRYP #define GL_APIENTRYP GL_APIENTRY* #endif # 21 "../mesa/include/GLES2/gl2ext.h" /* Generated on date 20230220 */ /* Generated C header for: * API: gles2 * Profile: common * Versions considered: 2\.[0-9] * Versions emitted: _nomatch_^ * Default extensions included: gles2 * Additional extensions included: _nomatch_^ * Extensions removed: _nomatch_^ */ #ifndef GL_KHR_blend_equation_advanced #define GL_KHR_blend_equation_advanced 1 #define GL_MULTIPLY_KHR 0x9294 #define GL_SCREEN_KHR 0x9295 #define GL_OVERLAY_KHR 0x9296 #define GL_DARKEN_KHR 0x9297 #define GL_LIGHTEN_KHR 0x9298 #define GL_COLORDODGE_KHR 0x9299 #define GL_COLORBURN_KHR 0x929A #define GL_HARDLIGHT_KHR 0x929B #define GL_SOFTLIGHT_KHR 0x929C #define GL_DIFFERENCE_KHR 0x929E #define GL_EXCLUSION_KHR 0x92A0 #define GL_HSL_HUE_KHR 0x92AD #define GL_HSL_SATURATION_KHR 0x92AE #define GL_HSL_COLOR_KHR 0x92AF #define GL_HSL_LUMINOSITY_KHR 0x92B0 typedef void (GL_APIENTRYP PFNGLBLENDBARRIERKHRPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBlendBarrierKHR (void); #endif # 55 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_KHR_blend_equation_advanced */ # 56 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_blend_equation_advanced_coherent #define GL_KHR_blend_equation_advanced_coherent 1 #define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 #endif /* GL_KHR_blend_equation_advanced_coherent */ # 61 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_context_flush_control #define GL_KHR_context_flush_control 1 #define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB #define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC #endif /* GL_KHR_context_flush_control */ # 67 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_debug #define GL_KHR_debug 1 typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); #define GL_SAMPLER 0x82E6 #define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 #define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243 #define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244 #define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245 #define GL_DEBUG_SOURCE_API_KHR 0x8246 #define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247 #define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248 #define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249 #define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A #define GL_DEBUG_SOURCE_OTHER_KHR 0x824B #define GL_DEBUG_TYPE_ERROR_KHR 0x824C #define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D #define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E #define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F #define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250 #define GL_DEBUG_TYPE_OTHER_KHR 0x8251 #define GL_DEBUG_TYPE_MARKER_KHR 0x8268 #define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269 #define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A #define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B #define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C #define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D #define GL_BUFFER_KHR 0x82E0 #define GL_SHADER_KHR 0x82E1 #define GL_PROGRAM_KHR 0x82E2 #define GL_VERTEX_ARRAY_KHR 0x8074 #define GL_QUERY_KHR 0x82E3 #define GL_PROGRAM_PIPELINE_KHR 0x82E4 #define GL_SAMPLER_KHR 0x82E6 #define GL_MAX_LABEL_LENGTH_KHR 0x82E8 #define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143 #define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144 #define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145 #define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146 #define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147 #define GL_DEBUG_SEVERITY_LOW_KHR 0x9148 #define GL_DEBUG_OUTPUT_KHR 0x92E0 #define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002 #define GL_STACK_OVERFLOW_KHR 0x0503 #define GL_STACK_UNDERFLOW_KHR 0x0504 typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); typedef void (GL_APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC) (GLDEBUGPROCKHR callback, const void *userParam); typedef GLuint (GL_APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC) (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); typedef void (GL_APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC) (GLenum source, GLuint id, GLsizei length, const GLchar *message); typedef void (GL_APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC) (void); typedef void (GL_APIENTRYP PFNGLOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELKHRPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (GL_APIENTRYP PFNGLOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); typedef void (GL_APIENTRYP PFNGLGETPOINTERVKHRPROC) (GLenum pname, void **params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); GL_APICALL void GL_APIENTRY glDebugMessageInsertKHR (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam); GL_APICALL GLuint GL_APIENTRY glGetDebugMessageLogKHR (GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); GL_APICALL void GL_APIENTRY glPushDebugGroupKHR (GLenum source, GLuint id, GLsizei length, const GLchar *message); GL_APICALL void GL_APIENTRY glPopDebugGroupKHR (void); GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectLabelKHR (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); GL_APICALL void GL_APIENTRY glObjectPtrLabelKHR (const void *ptr, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectPtrLabelKHR (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params); #endif # 136 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_KHR_debug */ # 137 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_no_error #define GL_KHR_no_error 1 #define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 #endif /* GL_KHR_no_error */ # 142 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_parallel_shader_compile #define GL_KHR_parallel_shader_compile 1 #define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 #define GL_COMPLETION_STATUS_KHR 0x91B1 typedef void (GL_APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count); #endif # 151 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_KHR_parallel_shader_compile */ # 152 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_robust_buffer_access_behavior #define GL_KHR_robust_buffer_access_behavior 1 #endif /* GL_KHR_robust_buffer_access_behavior */ # 156 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_robustness #define GL_KHR_robustness 1 #define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3 #define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252 #define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 #define GL_INNOCENT_CONTEXT_RESET_KHR 0x8254 #define GL_UNKNOWN_CONTEXT_RESET_KHR 0x8255 #define GL_RESET_NOTIFICATION_STRATEGY_KHR 0x8256 #define GL_NO_RESET_NOTIFICATION_KHR 0x8261 #define GL_CONTEXT_LOST_KHR 0x0507 typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC) (void); typedef void (GL_APIENTRYP PFNGLREADNPIXELSKHRPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVKHRPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusKHR (void); GL_APICALL void GL_APIENTRY glReadnPixelsKHR (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GL_APICALL void GL_APIENTRY glGetnUniformfvKHR (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); GL_APICALL void GL_APIENTRY glGetnUniformivKHR (GLuint program, GLint location, GLsizei bufSize, GLint *params); GL_APICALL void GL_APIENTRY glGetnUniformuivKHR (GLuint program, GLint location, GLsizei bufSize, GLuint *params); #endif # 179 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_KHR_robustness */ # 180 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_shader_subgroup #define GL_KHR_shader_subgroup 1 #define GL_SUBGROUP_SIZE_KHR 0x9532 #define GL_SUBGROUP_SUPPORTED_STAGES_KHR 0x9533 #define GL_SUBGROUP_SUPPORTED_FEATURES_KHR 0x9534 #define GL_SUBGROUP_QUAD_ALL_STAGES_KHR 0x9535 #define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR 0x00000001 #define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR 0x00000002 #define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR 0x00000004 #define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR 0x00000008 #define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR 0x00000010 #define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR 0x00000020 #define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR 0x00000040 #define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR 0x00000080 #endif /* GL_KHR_shader_subgroup */ # 196 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_texture_compression_astc_hdr #define GL_KHR_texture_compression_astc_hdr 1 #define GL_COMPRESSED_RGBA_ASTC_4x4_KHR 0x93B0 #define GL_COMPRESSED_RGBA_ASTC_5x4_KHR 0x93B1 #define GL_COMPRESSED_RGBA_ASTC_5x5_KHR 0x93B2 #define GL_COMPRESSED_RGBA_ASTC_6x5_KHR 0x93B3 #define GL_COMPRESSED_RGBA_ASTC_6x6_KHR 0x93B4 #define GL_COMPRESSED_RGBA_ASTC_8x5_KHR 0x93B5 #define GL_COMPRESSED_RGBA_ASTC_8x6_KHR 0x93B6 #define GL_COMPRESSED_RGBA_ASTC_8x8_KHR 0x93B7 #define GL_COMPRESSED_RGBA_ASTC_10x5_KHR 0x93B8 #define GL_COMPRESSED_RGBA_ASTC_10x6_KHR 0x93B9 #define GL_COMPRESSED_RGBA_ASTC_10x8_KHR 0x93BA #define GL_COMPRESSED_RGBA_ASTC_10x10_KHR 0x93BB #define GL_COMPRESSED_RGBA_ASTC_12x10_KHR 0x93BC #define GL_COMPRESSED_RGBA_ASTC_12x12_KHR 0x93BD #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR 0x93D0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR 0x93D1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR 0x93D2 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR 0x93D3 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR 0x93D4 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR 0x93D5 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR 0x93D6 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR 0x93D7 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR 0x93D8 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR 0x93D9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR 0x93DA #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93DB #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93DC #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93DD #endif /* GL_KHR_texture_compression_astc_hdr */ # 228 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_texture_compression_astc_ldr #define GL_KHR_texture_compression_astc_ldr 1 #endif /* GL_KHR_texture_compression_astc_ldr */ # 232 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_KHR_texture_compression_astc_sliced_3d #define GL_KHR_texture_compression_astc_sliced_3d 1 #endif /* GL_KHR_texture_compression_astc_sliced_3d */ # 236 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 typedef void *GLeglImageOES; typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif # 246 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_EGL_image */ # 247 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_EGL_image_external #define GL_OES_EGL_image_external 1 #define GL_TEXTURE_EXTERNAL_OES 0x8D65 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 #define GL_SAMPLER_EXTERNAL_OES 0x8D66 #endif /* GL_OES_EGL_image_external */ # 255 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_EGL_image_external_essl3 #define GL_OES_EGL_image_external_essl3 1 #endif /* GL_OES_EGL_image_external_essl3 */ # 259 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_compressed_ETC1_RGB8_sub_texture #define GL_OES_compressed_ETC1_RGB8_sub_texture 1 #endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ # 263 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_compressed_ETC1_RGB8_texture #define GL_OES_compressed_ETC1_RGB8_texture 1 #define GL_ETC1_RGB8_OES 0x8D64 #endif /* GL_OES_compressed_ETC1_RGB8_texture */ # 268 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_compressed_paletted_texture #define GL_OES_compressed_paletted_texture 1 #define GL_PALETTE4_RGB8_OES 0x8B90 #define GL_PALETTE4_RGBA8_OES 0x8B91 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92 #define GL_PALETTE4_RGBA4_OES 0x8B93 #define GL_PALETTE4_RGB5_A1_OES 0x8B94 #define GL_PALETTE8_RGB8_OES 0x8B95 #define GL_PALETTE8_RGBA8_OES 0x8B96 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97 #define GL_PALETTE8_RGBA4_OES 0x8B98 #define GL_PALETTE8_RGB5_A1_OES 0x8B99 #endif /* GL_OES_compressed_paletted_texture */ # 282 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_copy_image #define GL_OES_copy_image 1 typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAOESPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCopyImageSubDataOES (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); #endif # 289 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_copy_image */ # 290 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_depth24 #define GL_OES_depth24 1 #define GL_DEPTH_COMPONENT24_OES 0x81A6 #endif /* GL_OES_depth24 */ # 295 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_depth32 #define GL_OES_depth32 1 #define GL_DEPTH_COMPONENT32_OES 0x81A7 #endif /* GL_OES_depth32 */ # 300 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_depth_texture #define GL_OES_depth_texture 1 #endif /* GL_OES_depth_texture */ # 304 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_draw_buffers_indexed #define GL_OES_draw_buffers_indexed 1 #define GL_MIN 0x8007 #define GL_MAX 0x8008 typedef void (GL_APIENTRYP PFNGLENABLEIOESPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLDISABLEIOESPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIOESPROC) (GLuint buf, GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIOESPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCIOESPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIOESPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (GL_APIENTRYP PFNGLCOLORMASKIOESPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIOESPROC) (GLenum target, GLuint index); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glEnableiOES (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glDisableiOES (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glBlendEquationiOES (GLuint buf, GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparateiOES (GLuint buf, GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunciOES (GLuint buf, GLenum src, GLenum dst); GL_APICALL void GL_APIENTRY glBlendFuncSeparateiOES (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GL_APICALL void GL_APIENTRY glColorMaskiOES (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); GL_APICALL GLboolean GL_APIENTRY glIsEnablediOES (GLenum target, GLuint index); #endif # 327 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_draw_buffers_indexed */ # 328 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_draw_elements_base_vertex #define GL_OES_draw_elements_base_vertex 1 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); #endif # 341 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_draw_elements_base_vertex */ # 342 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_element_index_uint #define GL_OES_element_index_uint 1 #endif /* GL_OES_element_index_uint */ # 346 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_fbo_render_mipmap #define GL_OES_fbo_render_mipmap 1 #endif /* GL_OES_fbo_render_mipmap */ # 350 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_fragment_precision_high #define GL_OES_fragment_precision_high 1 #endif /* GL_OES_fragment_precision_high */ # 354 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_geometry_point_size #define GL_OES_geometry_point_size 1 #endif /* GL_OES_geometry_point_size */ # 358 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_geometry_shader #define GL_OES_geometry_shader 1 #define GL_GEOMETRY_SHADER_OES 0x8DD9 #define GL_GEOMETRY_SHADER_BIT_OES 0x00000004 #define GL_GEOMETRY_LINKED_VERTICES_OUT_OES 0x8916 #define GL_GEOMETRY_LINKED_INPUT_TYPE_OES 0x8917 #define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES 0x8918 #define GL_GEOMETRY_SHADER_INVOCATIONS_OES 0x887F #define GL_LAYER_PROVOKING_VERTEX_OES 0x825E #define GL_LINES_ADJACENCY_OES 0x000A #define GL_LINE_STRIP_ADJACENCY_OES 0x000B #define GL_TRIANGLES_ADJACENCY_OES 0x000C #define GL_TRIANGLE_STRIP_ADJACENCY_OES 0x000D #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8DDF #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES 0x8A2C #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES 0x8A32 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES 0x9123 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES 0x9124 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES 0x8DE1 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES 0x8E5A #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES 0x8C29 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES 0x92CF #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES 0x92D5 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES 0x90CD #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES 0x90D7 #define GL_FIRST_VERTEX_CONVENTION_OES 0x8E4D #define GL_LAST_VERTEX_CONVENTION_OES 0x8E4E #define GL_UNDEFINED_VERTEX_OES 0x8260 #define GL_PRIMITIVES_GENERATED_OES 0x8C87 #define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES 0x9312 #define GL_MAX_FRAMEBUFFER_LAYERS_OES 0x9317 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES 0x8DA8 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES 0x8DA7 #define GL_REFERENCED_BY_GEOMETRY_SHADER_OES 0x9309 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREOESPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferTextureOES (GLenum target, GLenum attachment, GLuint texture, GLint level); #endif # 398 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_geometry_shader */ # 399 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_get_program_binary #define GL_OES_get_program_binary 1 #define GL_PROGRAM_BINARY_LENGTH_OES 0x8741 #define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87FE #define GL_PROGRAM_BINARY_FORMATS_OES 0x87FF typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const void *binary, GLint length); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const void *binary, GLint length); #endif # 411 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_get_program_binary */ # 412 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_gpu_shader5 #define GL_OES_gpu_shader5 1 #endif /* GL_OES_gpu_shader5 */ # 416 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_mapbuffer #define GL_OES_mapbuffer 1 #define GL_WRITE_ONLY_OES 0x88B9 #define GL_BUFFER_ACCESS_OES 0x88BB #define GL_BUFFER_MAPPED_OES 0x88BC #define GL_BUFFER_MAP_POINTER_OES 0x88BD typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); #endif # 431 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_mapbuffer */ # 432 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_packed_depth_stencil #define GL_OES_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_OES 0x84F9 #define GL_UNSIGNED_INT_24_8_OES 0x84FA #define GL_DEPTH24_STENCIL8_OES 0x88F0 #endif /* GL_OES_packed_depth_stencil */ # 439 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_primitive_bounding_box #define GL_OES_primitive_bounding_box 1 #define GL_PRIMITIVE_BOUNDING_BOX_OES 0x92BE typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXOESPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxOES (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); #endif # 447 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_primitive_bounding_box */ # 448 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_required_internalformat #define GL_OES_required_internalformat 1 #define GL_ALPHA8_OES 0x803C #define GL_DEPTH_COMPONENT16_OES 0x81A5 #define GL_LUMINANCE4_ALPHA4_OES 0x8043 #define GL_LUMINANCE8_ALPHA8_OES 0x8045 #define GL_LUMINANCE8_OES 0x8040 #define GL_RGBA4_OES 0x8056 #define GL_RGB5_A1_OES 0x8057 #define GL_RGB565_OES 0x8D62 #define GL_RGB8_OES 0x8051 #define GL_RGBA8_OES 0x8058 #define GL_RGB10_EXT 0x8052 #define GL_RGB10_A2_EXT 0x8059 #endif /* GL_OES_required_internalformat */ # 464 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_rgb8_rgba8 #define GL_OES_rgb8_rgba8 1 #endif /* GL_OES_rgb8_rgba8 */ # 468 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_sample_shading #define GL_OES_sample_shading 1 #define GL_SAMPLE_SHADING_OES 0x8C36 #define GL_MIN_SAMPLE_SHADING_VALUE_OES 0x8C37 typedef void (GL_APIENTRYP PFNGLMINSAMPLESHADINGOESPROC) (GLfloat value); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glMinSampleShadingOES (GLfloat value); #endif # 477 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_sample_shading */ # 478 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_sample_variables #define GL_OES_sample_variables 1 #endif /* GL_OES_sample_variables */ # 482 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_shader_image_atomic #define GL_OES_shader_image_atomic 1 #endif /* GL_OES_shader_image_atomic */ # 486 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_shader_io_blocks #define GL_OES_shader_io_blocks 1 #endif /* GL_OES_shader_io_blocks */ # 490 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_shader_multisample_interpolation #define GL_OES_shader_multisample_interpolation 1 #define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5B #define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES 0x8E5C #define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES 0x8E5D #endif /* GL_OES_shader_multisample_interpolation */ # 497 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_standard_derivatives #define GL_OES_standard_derivatives 1 #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8B8B #endif /* GL_OES_standard_derivatives */ # 502 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_stencil1 #define GL_OES_stencil1 1 #define GL_STENCIL_INDEX1_OES 0x8D46 #endif /* GL_OES_stencil1 */ # 507 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_stencil4 #define GL_OES_stencil4 1 #define GL_STENCIL_INDEX4_OES 0x8D47 #endif /* GL_OES_stencil4 */ # 512 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_surfaceless_context #define GL_OES_surfaceless_context 1 #define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 #endif /* GL_OES_surfaceless_context */ # 517 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_tessellation_point_size #define GL_OES_tessellation_point_size 1 #endif /* GL_OES_tessellation_point_size */ # 521 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_tessellation_shader #define GL_OES_tessellation_shader 1 #define GL_PATCHES_OES 0x000E #define GL_PATCH_VERTICES_OES 0x8E72 #define GL_TESS_CONTROL_OUTPUT_VERTICES_OES 0x8E75 #define GL_TESS_GEN_MODE_OES 0x8E76 #define GL_TESS_GEN_SPACING_OES 0x8E77 #define GL_TESS_GEN_VERTEX_ORDER_OES 0x8E78 #define GL_TESS_GEN_POINT_MODE_OES 0x8E79 #define GL_ISOLINES_OES 0x8E7A #define GL_QUADS_OES 0x0007 #define GL_FRACTIONAL_ODD_OES 0x8E7B #define GL_FRACTIONAL_EVEN_OES 0x8E7C #define GL_MAX_PATCH_VERTICES_OES 0x8E7D #define GL_MAX_TESS_GEN_LEVEL_OES 0x8E7E #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E7F #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E80 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES 0x8E81 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES 0x8E82 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES 0x8E83 #define GL_MAX_TESS_PATCH_COMPONENTS_OES 0x8E84 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES 0x8E85 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES 0x8E86 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES 0x8E89 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES 0x8E8A #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES 0x886C #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES 0x886D #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES 0x8E1E #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES 0x8E1F #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES 0x92CD #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES 0x92CE #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES 0x92D3 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES 0x92D4 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES 0x90CB #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES 0x90CC #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES 0x90D8 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES 0x90D9 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES 0x8221 #define GL_IS_PER_PATCH_OES 0x92E7 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES 0x9307 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES 0x9308 #define GL_TESS_CONTROL_SHADER_OES 0x8E88 #define GL_TESS_EVALUATION_SHADER_OES 0x8E87 #define GL_TESS_CONTROL_SHADER_BIT_OES 0x00000008 #define GL_TESS_EVALUATION_SHADER_BIT_OES 0x00000010 typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIOESPROC) (GLenum pname, GLint value); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glPatchParameteriOES (GLenum pname, GLint value); #endif # 571 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_tessellation_shader */ # 572 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_3D #define GL_OES_texture_3D 1 #define GL_TEXTURE_WRAP_R_OES 0x8072 #define GL_TEXTURE_3D_OES 0x806F #define GL_TEXTURE_BINDING_3D_OES 0x806A #define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073 #define GL_SAMPLER_3D_OES 0x8B5F #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES 0x8CD4 typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); #endif # 595 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_texture_3D */ # 596 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_border_clamp #define GL_OES_texture_border_clamp 1 #define GL_TEXTURE_BORDER_COLOR_OES 0x1004 #define GL_CLAMP_TO_BORDER_OES 0x812D typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, const GLuint *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVOESPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVOESPROC) (GLenum target, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, const GLuint *param); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVOESPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVOESPROC) (GLuint sampler, GLenum pname, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexParameterIivOES (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexParameterIuivOES (GLenum target, GLenum pname, const GLuint *params); GL_APICALL void GL_APIENTRY glGetTexParameterIivOES (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetTexParameterIuivOES (GLenum target, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glSamplerParameterIivOES (GLuint sampler, GLenum pname, const GLint *param); GL_APICALL void GL_APIENTRY glSamplerParameterIuivOES (GLuint sampler, GLenum pname, const GLuint *param); GL_APICALL void GL_APIENTRY glGetSamplerParameterIivOES (GLuint sampler, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivOES (GLuint sampler, GLenum pname, GLuint *params); #endif # 619 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_texture_border_clamp */ # 620 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_buffer #define GL_OES_texture_buffer 1 #define GL_TEXTURE_BUFFER_OES 0x8C2A #define GL_TEXTURE_BUFFER_BINDING_OES 0x8C2A #define GL_MAX_TEXTURE_BUFFER_SIZE_OES 0x8C2B #define GL_TEXTURE_BINDING_BUFFER_OES 0x8C2C #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES 0x8C2D #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES 0x919F #define GL_SAMPLER_BUFFER_OES 0x8DC2 #define GL_INT_SAMPLER_BUFFER_OES 0x8DD0 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES 0x8DD8 #define GL_IMAGE_BUFFER_OES 0x9051 #define GL_INT_IMAGE_BUFFER_OES 0x905C #define GL_UNSIGNED_INT_IMAGE_BUFFER_OES 0x9067 #define GL_TEXTURE_BUFFER_OFFSET_OES 0x919D #define GL_TEXTURE_BUFFER_SIZE_OES 0x919E typedef void (GL_APIENTRYP PFNGLTEXBUFFEROESPROC) (GLenum target, GLenum internalformat, GLuint buffer); typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEOESPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexBufferOES (GLenum target, GLenum internalformat, GLuint buffer); GL_APICALL void GL_APIENTRY glTexBufferRangeOES (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); #endif # 643 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_texture_buffer */ # 644 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_compression_astc #define GL_OES_texture_compression_astc 1 #define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES 0x93C0 #define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES 0x93C1 #define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES 0x93C2 #define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES 0x93C3 #define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES 0x93C4 #define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES 0x93C5 #define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES 0x93C6 #define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES 0x93C7 #define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES 0x93C8 #define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES 0x93C9 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES 0x93E0 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES 0x93E1 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES 0x93E2 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES 0x93E3 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES 0x93E4 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES 0x93E5 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES 0x93E6 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES 0x93E7 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES 0x93E8 #define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES 0x93E9 #endif /* GL_OES_texture_compression_astc */ # 668 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_cube_map_array #define GL_OES_texture_cube_map_array 1 #define GL_TEXTURE_CUBE_MAP_ARRAY_OES 0x9009 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES 0x900A #define GL_SAMPLER_CUBE_MAP_ARRAY_OES 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES 0x900D #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900E #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES 0x900F #define GL_IMAGE_CUBE_MAP_ARRAY_OES 0x9054 #define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x905F #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES 0x906A #endif /* GL_OES_texture_cube_map_array */ # 681 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_float #define GL_OES_texture_float 1 #endif /* GL_OES_texture_float */ # 685 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_float_linear #define GL_OES_texture_float_linear 1 #endif /* GL_OES_texture_float_linear */ # 689 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_half_float #define GL_OES_texture_half_float 1 #define GL_HALF_FLOAT_OES 0x8D61 #endif /* GL_OES_texture_half_float */ # 694 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_half_float_linear #define GL_OES_texture_half_float_linear 1 #endif /* GL_OES_texture_half_float_linear */ # 698 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_npot #define GL_OES_texture_npot 1 #endif /* GL_OES_texture_npot */ # 702 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_stencil8 #define GL_OES_texture_stencil8 1 #define GL_STENCIL_INDEX_OES 0x1901 #define GL_STENCIL_INDEX8_OES 0x8D48 #endif /* GL_OES_texture_stencil8 */ # 708 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_storage_multisample_2d_array #define GL_OES_texture_storage_multisample_2d_array 1 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102 #define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexStorage3DMultisampleOES (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); #endif # 720 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_texture_storage_multisample_2d_array */ # 721 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_texture_view #define GL_OES_texture_view 1 #define GL_TEXTURE_VIEW_MIN_LEVEL_OES 0x82DB #define GL_TEXTURE_VIEW_NUM_LEVELS_OES 0x82DC #define GL_TEXTURE_VIEW_MIN_LAYER_OES 0x82DD #define GL_TEXTURE_VIEW_NUM_LAYERS_OES 0x82DE #define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWOESPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTextureViewOES (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); #endif # 733 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_texture_view */ # 734 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_vertex_array_object #define GL_OES_vertex_array_object 1 #define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array); GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); #endif # 748 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_vertex_array_object */ # 749 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_vertex_half_float #define GL_OES_vertex_half_float 1 #endif /* GL_OES_vertex_half_float */ # 753 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_vertex_type_10_10_10_2 #define GL_OES_vertex_type_10_10_10_2 1 #define GL_UNSIGNED_INT_10_10_10_2_OES 0x8DF6 #define GL_INT_10_10_10_2_OES 0x8DF7 #endif /* GL_OES_vertex_type_10_10_10_2 */ # 759 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OES_viewport_array #define GL_OES_viewport_array 1 #define GL_MAX_VIEWPORTS_OES 0x825B #define GL_VIEWPORT_SUBPIXEL_BITS_OES 0x825C #define GL_VIEWPORT_BOUNDS_RANGE_OES 0x825D #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES 0x825F typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFOESPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVOESPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVOESPROC) (GLuint first, GLsizei count, const GLint *v); typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDOESPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVOESPROC) (GLuint index, const GLint *v); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVOESPROC) (GLuint first, GLsizei count, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFOESPROC) (GLuint index, GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLGETFLOATI_VOESPROC) (GLenum target, GLuint index, GLfloat *data); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glViewportArrayvOES (GLuint first, GLsizei count, const GLfloat *v); GL_APICALL void GL_APIENTRY glViewportIndexedfOES (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); GL_APICALL void GL_APIENTRY glViewportIndexedfvOES (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glScissorArrayvOES (GLuint first, GLsizei count, const GLint *v); GL_APICALL void GL_APIENTRY glScissorIndexedOES (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glScissorIndexedvOES (GLuint index, const GLint *v); GL_APICALL void GL_APIENTRY glDepthRangeArrayfvOES (GLuint first, GLsizei count, const GLfloat *v); GL_APICALL void GL_APIENTRY glDepthRangeIndexedfOES (GLuint index, GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glGetFloati_vOES (GLenum target, GLuint index, GLfloat *data); #endif # 786 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OES_viewport_array */ # 787 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_AMD_compressed_3DC_texture #define GL_AMD_compressed_3DC_texture 1 #define GL_3DC_X_AMD 0x87F9 #define GL_3DC_XY_AMD 0x87FA #endif /* GL_AMD_compressed_3DC_texture */ # 793 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_AMD_compressed_ATC_texture #define GL_AMD_compressed_ATC_texture 1 #define GL_ATC_RGB_AMD 0x8C92 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE #endif /* GL_AMD_compressed_ATC_texture */ # 800 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_AMD_framebuffer_multisample_advanced #define GL_AMD_framebuffer_multisample_advanced 1 #define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2 #define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3 #define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4 #define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5 #define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6 #define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); #endif # 815 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_AMD_framebuffer_multisample_advanced */ # 816 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_AMD_performance_monitor #define GL_AMD_performance_monitor 1 #define GL_COUNTER_TYPE_AMD 0x8BC0 #define GL_COUNTER_RANGE_AMD 0x8BC1 #define GL_UNSIGNED_INT64_AMD 0x8BC2 #define GL_PERCENTAGE_AMD 0x8BC3 #define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 #define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 #define GL_PERFMON_RESULT_AMD 0x8BC6 typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void *data); typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, void *data); GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor); GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor); GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); #endif # 850 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_AMD_performance_monitor */ # 851 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_AMD_program_binary_Z400 #define GL_AMD_program_binary_Z400 1 #define GL_Z400_BINARY_AMD 0x8740 #endif /* GL_AMD_program_binary_Z400 */ # 856 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANDROID_extension_pack_es31a #define GL_ANDROID_extension_pack_es31a 1 #endif /* GL_ANDROID_extension_pack_es31a */ # 860 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_depth_texture #define GL_ANGLE_depth_texture 1 #endif /* GL_ANGLE_depth_texture */ # 864 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_framebuffer_blit #define GL_ANGLE_framebuffer_blit 1 #define GL_READ_FRAMEBUFFER_ANGLE 0x8CA8 #define GL_DRAW_FRAMEBUFFER_ANGLE 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8CAA typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #endif # 875 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_ANGLE_framebuffer_blit */ # 876 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_framebuffer_multisample #define GL_ANGLE_framebuffer_multisample 1 #define GL_RENDERBUFFER_SAMPLES_ANGLE 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8D56 #define GL_MAX_SAMPLES_ANGLE 0x8D57 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #endif # 886 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_ANGLE_framebuffer_multisample */ # 887 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_instanced_arrays #define GL_ANGLE_instanced_arrays 1 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount); GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor); #endif # 899 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_ANGLE_instanced_arrays */ # 900 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_pack_reverse_row_order #define GL_ANGLE_pack_reverse_row_order 1 #define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93A4 #endif /* GL_ANGLE_pack_reverse_row_order */ # 905 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_program_binary #define GL_ANGLE_program_binary 1 #define GL_PROGRAM_BINARY_ANGLE 0x93A6 #endif /* GL_ANGLE_program_binary */ # 910 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_texture_compression_dxt3 #define GL_ANGLE_texture_compression_dxt3 1 #define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 #endif /* GL_ANGLE_texture_compression_dxt3 */ # 915 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_texture_compression_dxt5 #define GL_ANGLE_texture_compression_dxt5 1 #define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 #endif /* GL_ANGLE_texture_compression_dxt5 */ # 920 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_texture_usage #define GL_ANGLE_texture_usage 1 #define GL_TEXTURE_USAGE_ANGLE 0x93A2 #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 #endif /* GL_ANGLE_texture_usage */ # 926 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ANGLE_translated_shader_source #define GL_ANGLE_translated_shader_source 1 #define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93A0 typedef void (GL_APIENTRYP PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetTranslatedShaderSourceANGLE (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); #endif # 934 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_ANGLE_translated_shader_source */ # 935 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_clip_distance #define GL_APPLE_clip_distance 1 #define GL_MAX_CLIP_DISTANCES_APPLE 0x0D32 #define GL_CLIP_DISTANCE0_APPLE 0x3000 #define GL_CLIP_DISTANCE1_APPLE 0x3001 #define GL_CLIP_DISTANCE2_APPLE 0x3002 #define GL_CLIP_DISTANCE3_APPLE 0x3003 #define GL_CLIP_DISTANCE4_APPLE 0x3004 #define GL_CLIP_DISTANCE5_APPLE 0x3005 #define GL_CLIP_DISTANCE6_APPLE 0x3006 #define GL_CLIP_DISTANCE7_APPLE 0x3007 #endif /* GL_APPLE_clip_distance */ # 948 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_color_buffer_packed_float #define GL_APPLE_color_buffer_packed_float 1 #endif /* GL_APPLE_color_buffer_packed_float */ # 952 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_copy_texture_levels #define GL_APPLE_copy_texture_levels 1 typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #endif # 959 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_APPLE_copy_texture_levels */ # 960 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_framebuffer_multisample #define GL_APPLE_framebuffer_multisample 1 #define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 #define GL_MAX_SAMPLES_APPLE 0x8D57 #define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 #define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); #endif # 976 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_APPLE_framebuffer_multisample */ # 977 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_rgb_422 #define GL_APPLE_rgb_422 1 #define GL_RGB_422_APPLE 0x8A1F #define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA #define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB #define GL_RGB_RAW_422_APPLE 0x8A51 #endif /* GL_APPLE_rgb_422 */ # 985 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_sync #define GL_APPLE_sync 1 #define GL_SYNC_OBJECT_APPLE 0x8A53 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 #define GL_OBJECT_TYPE_APPLE 0x9112 #define GL_SYNC_CONDITION_APPLE 0x9113 #define GL_SYNC_STATUS_APPLE 0x9114 #define GL_SYNC_FLAGS_APPLE 0x9115 #define GL_SYNC_FENCE_APPLE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 #define GL_UNSIGNALED_APPLE 0x9118 #define GL_SIGNALED_APPLE 0x9119 #define GL_ALREADY_SIGNALED_APPLE 0x911A #define GL_TIMEOUT_EXPIRED_APPLE 0x911B #define GL_CONDITION_SATISFIED_APPLE 0x911C #define GL_WAIT_FAILED_APPLE 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 #define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); GL_APICALL GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); GL_APICALL void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); GL_APICALL GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_APICALL void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); #endif # 1020 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_APPLE_sync */ # 1021 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_texture_format_BGRA8888 #define GL_APPLE_texture_format_BGRA8888 1 #define GL_BGRA_EXT 0x80E1 #define GL_BGRA8_EXT 0x93A1 #endif /* GL_APPLE_texture_format_BGRA8888 */ # 1027 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_texture_max_level #define GL_APPLE_texture_max_level 1 #define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D #endif /* GL_APPLE_texture_max_level */ # 1032 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_APPLE_texture_packed_float #define GL_APPLE_texture_packed_float 1 #define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE 0x8C3B #define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE 0x8C3E #define GL_R11F_G11F_B10F_APPLE 0x8C3A #define GL_RGB9_E5_APPLE 0x8C3D #endif /* GL_APPLE_texture_packed_float */ # 1040 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ARM_mali_program_binary #define GL_ARM_mali_program_binary 1 #define GL_MALI_PROGRAM_BINARY_ARM 0x8F61 #endif /* GL_ARM_mali_program_binary */ # 1045 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ARM_mali_shader_binary #define GL_ARM_mali_shader_binary 1 #define GL_MALI_SHADER_BINARY_ARM 0x8F60 #endif /* GL_ARM_mali_shader_binary */ # 1050 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ARM_rgba8 #define GL_ARM_rgba8 1 #endif /* GL_ARM_rgba8 */ # 1054 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ARM_shader_framebuffer_fetch #define GL_ARM_shader_framebuffer_fetch 1 #define GL_FETCH_PER_SAMPLE_ARM 0x8F65 #define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM 0x8F66 #endif /* GL_ARM_shader_framebuffer_fetch */ # 1060 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ARM_shader_framebuffer_fetch_depth_stencil #define GL_ARM_shader_framebuffer_fetch_depth_stencil 1 #endif /* GL_ARM_shader_framebuffer_fetch_depth_stencil */ # 1064 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_ARM_texture_unnormalized_coordinates #define GL_ARM_texture_unnormalized_coordinates 1 #define GL_TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A #endif /* GL_ARM_texture_unnormalized_coordinates */ # 1069 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_DMP_program_binary #define GL_DMP_program_binary 1 #define GL_SMAPHS30_PROGRAM_BINARY_DMP 0x9251 #define GL_SMAPHS_PROGRAM_BINARY_DMP 0x9252 #define GL_DMP_PROGRAM_BINARY_DMP 0x9253 #endif /* GL_DMP_program_binary */ # 1076 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_DMP_shader_binary #define GL_DMP_shader_binary 1 #define GL_SHADER_BINARY_DMP 0x9250 #endif /* GL_DMP_shader_binary */ # 1081 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_EGL_image_array #define GL_EXT_EGL_image_array 1 #endif /* GL_EXT_EGL_image_array */ # 1085 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_EGL_image_storage #define GL_EXT_EGL_image_storage 1 typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list); typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list); GL_APICALL void GL_APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list); #endif # 1094 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_EGL_image_storage */ # 1095 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_EGL_image_storage_compression #define GL_EXT_EGL_image_storage_compression 1 #define GL_SURFACE_COMPRESSION_EXT 0x96C0 #define GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT 0x96C1 #define GL_SURFACE_COMPRESSION_FIXED_RATE_DEFAULT_EXT 0x96C2 #endif /* GL_EXT_EGL_image_storage_compression */ # 1102 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_YUV_target #define GL_EXT_YUV_target 1 #define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7 #endif /* GL_EXT_YUV_target */ # 1107 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_base_instance #define GL_EXT_base_instance 1 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); #endif # 1118 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_base_instance */ # 1119 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_blend_func_extended #define GL_EXT_blend_func_extended 1 #define GL_SRC1_COLOR_EXT 0x88F9 #define GL_SRC1_ALPHA_EXT 0x8589 #define GL_ONE_MINUS_SRC1_COLOR_EXT 0x88FA #define GL_ONE_MINUS_SRC1_ALPHA_EXT 0x88FB #define GL_SRC_ALPHA_SATURATE_EXT 0x0308 #define GL_LOCATION_INDEX_EXT 0x930F #define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT 0x88FC typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); typedef void (GL_APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); typedef GLint (GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC) (GLuint program, GLenum programInterface, const GLchar *name); typedef GLint (GL_APIENTRYP PFNGLGETFRAGDATAINDEXEXTPROC) (GLuint program, const GLchar *name); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBindFragDataLocationIndexedEXT (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); GL_APICALL void GL_APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); GL_APICALL GLint GL_APIENTRY glGetProgramResourceLocationIndexEXT (GLuint program, GLenum programInterface, const GLchar *name); GL_APICALL GLint GL_APIENTRY glGetFragDataIndexEXT (GLuint program, const GLchar *name); #endif # 1139 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_blend_func_extended */ # 1140 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_blend_minmax #define GL_EXT_blend_minmax 1 #define GL_MIN_EXT 0x8007 #define GL_MAX_EXT 0x8008 #endif /* GL_EXT_blend_minmax */ # 1146 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_buffer_storage #define GL_EXT_buffer_storage 1 #define GL_MAP_READ_BIT 0x0001 #define GL_MAP_WRITE_BIT 0x0002 #define GL_MAP_PERSISTENT_BIT_EXT 0x0040 #define GL_MAP_COHERENT_BIT_EXT 0x0080 #define GL_DYNAMIC_STORAGE_BIT_EXT 0x0100 #define GL_CLIENT_STORAGE_BIT_EXT 0x0200 #define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT 0x00004000 #define GL_BUFFER_IMMUTABLE_STORAGE_EXT 0x821F #define GL_BUFFER_STORAGE_FLAGS_EXT 0x8220 typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTPROC) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBufferStorageEXT (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); #endif # 1162 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_buffer_storage */ # 1163 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_clear_texture #define GL_EXT_clear_texture 1 typedef void (GL_APIENTRYP PFNGLCLEARTEXIMAGEEXTPROC) (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); typedef void (GL_APIENTRYP PFNGLCLEARTEXSUBIMAGEEXTPROC) (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glClearTexImageEXT (GLuint texture, GLint level, GLenum format, GLenum type, const void *data); GL_APICALL void GL_APIENTRY glClearTexSubImageEXT (GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); #endif # 1172 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_clear_texture */ # 1173 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_clip_control #define GL_EXT_clip_control 1 #define GL_LOWER_LEFT_EXT 0x8CA1 #define GL_UPPER_LEFT_EXT 0x8CA2 #define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E #define GL_ZERO_TO_ONE_EXT 0x935F #define GL_CLIP_ORIGIN_EXT 0x935C #define GL_CLIP_DEPTH_MODE_EXT 0x935D typedef void (GL_APIENTRYP PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glClipControlEXT (GLenum origin, GLenum depth); #endif # 1186 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_clip_control */ # 1187 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_clip_cull_distance #define GL_EXT_clip_cull_distance 1 #define GL_MAX_CLIP_DISTANCES_EXT 0x0D32 #define GL_MAX_CULL_DISTANCES_EXT 0x82F9 #define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT 0x82FA #define GL_CLIP_DISTANCE0_EXT 0x3000 #define GL_CLIP_DISTANCE1_EXT 0x3001 #define GL_CLIP_DISTANCE2_EXT 0x3002 #define GL_CLIP_DISTANCE3_EXT 0x3003 #define GL_CLIP_DISTANCE4_EXT 0x3004 #define GL_CLIP_DISTANCE5_EXT 0x3005 #define GL_CLIP_DISTANCE6_EXT 0x3006 #define GL_CLIP_DISTANCE7_EXT 0x3007 #endif /* GL_EXT_clip_cull_distance */ # 1202 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_color_buffer_float #define GL_EXT_color_buffer_float 1 #endif /* GL_EXT_color_buffer_float */ # 1206 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_color_buffer_half_float #define GL_EXT_color_buffer_half_float 1 #define GL_RGBA16F_EXT 0x881A #define GL_RGB16F_EXT 0x881B #define GL_RG16F_EXT 0x822F #define GL_R16F_EXT 0x822D #define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211 #define GL_UNSIGNED_NORMALIZED_EXT 0x8C17 #endif /* GL_EXT_color_buffer_half_float */ # 1216 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_conservative_depth #define GL_EXT_conservative_depth 1 #endif /* GL_EXT_conservative_depth */ # 1220 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_copy_image #define GL_EXT_copy_image 1 typedef void (GL_APIENTRYP PFNGLCOPYIMAGESUBDATAEXTPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCopyImageSubDataEXT (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); #endif # 1227 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_copy_image */ # 1228 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_debug_label #define GL_EXT_debug_label 1 #define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F #define GL_PROGRAM_OBJECT_EXT 0x8B40 #define GL_SHADER_OBJECT_EXT 0x8B48 #define GL_BUFFER_OBJECT_EXT 0x9151 #define GL_QUERY_OBJECT_EXT 0x9153 #define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 #define GL_TRANSFORM_FEEDBACK 0x8E22 typedef void (GL_APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); typedef void (GL_APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); GL_APICALL void GL_APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); #endif # 1244 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_debug_label */ # 1245 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_debug_marker #define GL_EXT_debug_marker 1 typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); GL_APICALL void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); GL_APICALL void GL_APIENTRY glPopGroupMarkerEXT (void); #endif # 1256 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_debug_marker */ # 1257 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_depth_clamp #define GL_EXT_depth_clamp 1 #define GL_DEPTH_CLAMP_EXT 0x864F #endif /* GL_EXT_depth_clamp */ # 1262 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_discard_framebuffer #define GL_EXT_discard_framebuffer 1 #define GL_COLOR_EXT 0x1800 #define GL_DEPTH_EXT 0x1801 #define GL_STENCIL_EXT 0x1802 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); #endif # 1272 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_discard_framebuffer */ # 1273 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_disjoint_timer_query #define GL_EXT_disjoint_timer_query 1 #define GL_QUERY_COUNTER_BITS_EXT 0x8864 #define GL_CURRENT_QUERY_EXT 0x8865 #define GL_QUERY_RESULT_EXT 0x8866 #define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867 #define GL_TIME_ELAPSED_EXT 0x88BF #define GL_TIMESTAMP_EXT 0x8E28 #define GL_GPU_DISJOINT_EXT 0x8FBB typedef void (GL_APIENTRYP PFNGLGENQUERIESEXTPROC) (GLsizei n, GLuint *ids); typedef void (GL_APIENTRYP PFNGLDELETEQUERIESEXTPROC) (GLsizei n, const GLuint *ids); typedef GLboolean (GL_APIENTRYP PFNGLISQUERYEXTPROC) (GLuint id); typedef void (GL_APIENTRYP PFNGLBEGINQUERYEXTPROC) (GLenum target, GLuint id); typedef void (GL_APIENTRYP PFNGLENDQUERYEXTPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLQUERYCOUNTEREXTPROC) (GLuint id, GLenum target); typedef void (GL_APIENTRYP PFNGLGETQUERYIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVEXTPROC) (GLuint id, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVEXTPROC) (GLuint id, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64 *params); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64 *data); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGenQueriesEXT (GLsizei n, GLuint *ids); GL_APICALL void GL_APIENTRY glDeleteQueriesEXT (GLsizei n, const GLuint *ids); GL_APICALL GLboolean GL_APIENTRY glIsQueryEXT (GLuint id); GL_APICALL void GL_APIENTRY glBeginQueryEXT (GLenum target, GLuint id); GL_APICALL void GL_APIENTRY glEndQueryEXT (GLenum target); GL_APICALL void GL_APIENTRY glQueryCounterEXT (GLuint id, GLenum target); GL_APICALL void GL_APIENTRY glGetQueryivEXT (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetQueryObjectivEXT (GLuint id, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetQueryObjectuivEXT (GLuint id, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64 *params); GL_APICALL void GL_APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64 *params); GL_APICALL void GL_APIENTRY glGetInteger64vEXT (GLenum pname, GLint64 *data); #endif # 1309 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_disjoint_timer_query */ # 1310 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_draw_buffers #define GL_EXT_draw_buffers 1 #define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF #define GL_MAX_DRAW_BUFFERS_EXT 0x8824 #define GL_DRAW_BUFFER0_EXT 0x8825 #define GL_DRAW_BUFFER1_EXT 0x8826 #define GL_DRAW_BUFFER2_EXT 0x8827 #define GL_DRAW_BUFFER3_EXT 0x8828 #define GL_DRAW_BUFFER4_EXT 0x8829 #define GL_DRAW_BUFFER5_EXT 0x882A #define GL_DRAW_BUFFER6_EXT 0x882B #define GL_DRAW_BUFFER7_EXT 0x882C #define GL_DRAW_BUFFER8_EXT 0x882D #define GL_DRAW_BUFFER9_EXT 0x882E #define GL_DRAW_BUFFER10_EXT 0x882F #define GL_DRAW_BUFFER11_EXT 0x8830 #define GL_DRAW_BUFFER12_EXT 0x8831 #define GL_DRAW_BUFFER13_EXT 0x8832 #define GL_DRAW_BUFFER14_EXT 0x8833 #define GL_DRAW_BUFFER15_EXT 0x8834 #define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 #define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 #define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 #define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 #define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 #define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 #define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 #define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 #define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 #define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 #define GL_COLOR_ATTACHMENT10_EXT 0x8CEA #define GL_COLOR_ATTACHMENT11_EXT 0x8CEB #define GL_COLOR_ATTACHMENT12_EXT 0x8CEC #define GL_COLOR_ATTACHMENT13_EXT 0x8CED #define GL_COLOR_ATTACHMENT14_EXT 0x8CEE #define GL_COLOR_ATTACHMENT15_EXT 0x8CEF typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (GLsizei n, const GLenum *bufs); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs); #endif # 1351 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_draw_buffers */ # 1352 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_draw_buffers_indexed #define GL_EXT_draw_buffers_indexed 1 typedef void (GL_APIENTRYP PFNGLENABLEIEXTPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLDISABLEIEXTPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONIEXTPROC) (GLuint buf, GLenum mode); typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEIEXTPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); typedef void (GL_APIENTRYP PFNGLBLENDFUNCIEXTPROC) (GLuint buf, GLenum src, GLenum dst); typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEIEXTPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); typedef void (GL_APIENTRYP PFNGLCOLORMASKIEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDIEXTPROC) (GLenum target, GLuint index); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glEnableiEXT (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glDisableiEXT (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glBlendEquationiEXT (GLuint buf, GLenum mode); GL_APICALL void GL_APIENTRY glBlendEquationSeparateiEXT (GLuint buf, GLenum modeRGB, GLenum modeAlpha); GL_APICALL void GL_APIENTRY glBlendFunciEXT (GLuint buf, GLenum src, GLenum dst); GL_APICALL void GL_APIENTRY glBlendFuncSeparateiEXT (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); GL_APICALL void GL_APIENTRY glColorMaskiEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXT (GLenum target, GLuint index); #endif # 1373 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_draw_buffers_indexed */ # 1374 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_draw_elements_base_vertex #define GL_EXT_draw_elements_base_vertex 1 typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); #endif # 1385 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_draw_elements_base_vertex */ # 1386 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_draw_instanced #define GL_EXT_draw_instanced 1 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #endif # 1395 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_draw_instanced */ # 1396 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_draw_transform_feedback #define GL_EXT_draw_transform_feedback 1 typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKEXTPROC) (GLenum mode, GLuint id); typedef void (GL_APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC) (GLenum mode, GLuint id, GLsizei instancecount); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawTransformFeedbackEXT (GLenum mode, GLuint id); GL_APICALL void GL_APIENTRY glDrawTransformFeedbackInstancedEXT (GLenum mode, GLuint id, GLsizei instancecount); #endif # 1405 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_draw_transform_feedback */ # 1406 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_external_buffer #define GL_EXT_external_buffer 1 typedef void *GLeglClientBufferEXT; typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); GL_APICALL void GL_APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags); #endif # 1416 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_external_buffer */ # 1417 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_float_blend #define GL_EXT_float_blend 1 #endif /* GL_EXT_float_blend */ # 1421 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_fragment_shading_rate #define GL_EXT_fragment_shading_rate 1 #define GL_SHADING_RATE_1X1_PIXELS_EXT 0x96A6 #define GL_SHADING_RATE_1X2_PIXELS_EXT 0x96A7 #define GL_SHADING_RATE_2X1_PIXELS_EXT 0x96A8 #define GL_SHADING_RATE_2X2_PIXELS_EXT 0x96A9 #define GL_SHADING_RATE_1X4_PIXELS_EXT 0x96AA #define GL_SHADING_RATE_4X1_PIXELS_EXT 0x96AB #define GL_SHADING_RATE_4X2_PIXELS_EXT 0x96AC #define GL_SHADING_RATE_2X4_PIXELS_EXT 0x96AD #define GL_SHADING_RATE_4X4_PIXELS_EXT 0x96AE #define GL_SHADING_RATE_EXT 0x96D0 #define GL_SHADING_RATE_ATTACHMENT_EXT 0x96D1 #define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_EXT 0x96D2 #define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_EXT 0x96D3 #define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_EXT 0x96D4 #define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_EXT 0x96D5 #define GL_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_EXT 0x96D6 #define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D7 #define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_WIDTH_EXT 0x96D8 #define GL_MIN_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96D9 #define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_HEIGHT_EXT 0x96DA #define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_TEXEL_ASPECT_RATIO_EXT 0x96DB #define GL_MAX_FRAGMENT_SHADING_RATE_ATTACHMENT_LAYERS_EXT 0x96DC #define GL_FRAGMENT_SHADING_RATE_WITH_SHADER_DEPTH_STENCIL_WRITES_SUPPORTED_EXT 0x96DD #define GL_FRAGMENT_SHADING_RATE_WITH_SAMPLE_MASK_SUPPORTED_EXT 0x96DE #define GL_FRAGMENT_SHADING_RATE_ATTACHMENT_WITH_DEFAULT_FRAMEBUFFER_SUPPORTED_EXT 0x96DF #define GL_FRAGMENT_SHADING_RATE_NON_TRIVIAL_COMBINERS_SUPPORTED_EXT 0x8F6F typedef void (GL_APIENTRYP PFNGLGETFRAGMENTSHADINGRATESEXTPROC) (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates); typedef void (GL_APIENTRYP PFNGLSHADINGRATEEXTPROC) (GLenum rate); typedef void (GL_APIENTRYP PFNGLSHADINGRATECOMBINEROPSEXTPROC) (GLenum combinerOp0, GLenum combinerOp1); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSHADINGRATEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetFragmentShadingRatesEXT (GLsizei samples, GLsizei maxCount, GLsizei *count, GLenum *shadingRates); GL_APICALL void GL_APIENTRY glShadingRateEXT (GLenum rate); GL_APICALL void GL_APIENTRY glShadingRateCombinerOpsEXT (GLenum combinerOp0, GLenum combinerOp1); GL_APICALL void GL_APIENTRY glFramebufferShadingRateEXT (GLenum target, GLenum attachment, GLuint texture, GLint baseLayer, GLsizei numLayers, GLsizei texelWidth, GLsizei texelHeight); #endif # 1460 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_fragment_shading_rate */ # 1461 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_framebuffer_blit_layers #define GL_EXT_framebuffer_blit_layers 1 typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERLAYERSEXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERLAYEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBlitFramebufferLayersEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GL_APICALL void GL_APIENTRY glBlitFramebufferLayerEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint srcLayer, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLint dstLayer, GLbitfield mask, GLenum filter); #endif # 1470 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_framebuffer_blit_layers */ # 1471 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_geometry_point_size #define GL_EXT_geometry_point_size 1 #endif /* GL_EXT_geometry_point_size */ # 1475 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_geometry_shader #define GL_EXT_geometry_shader 1 #define GL_GEOMETRY_SHADER_EXT 0x8DD9 #define GL_GEOMETRY_SHADER_BIT_EXT 0x00000004 #define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT 0x8916 #define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT 0x8917 #define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT 0x8918 #define GL_GEOMETRY_SHADER_INVOCATIONS_EXT 0x887F #define GL_LAYER_PROVOKING_VERTEX_EXT 0x825E #define GL_LINES_ADJACENCY_EXT 0x000A #define GL_LINE_STRIP_ADJACENCY_EXT 0x000B #define GL_TRIANGLES_ADJACENCY_EXT 0x000C #define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D #define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF #define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT 0x8A2C #define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8A32 #define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT 0x9123 #define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT 0x9124 #define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 #define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 #define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT 0x8E5A #define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 #define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT 0x92CF #define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT 0x92D5 #define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT 0x90CD #define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT 0x90D7 #define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D #define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E #define GL_UNDEFINED_VERTEX_EXT 0x8260 #define GL_PRIMITIVES_GENERATED_EXT 0x8C87 #define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT 0x9312 #define GL_MAX_FRAMEBUFFER_LAYERS_EXT 0x9317 #define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 #define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 #define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT 0x9309 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); #endif # 1515 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_geometry_shader */ # 1516 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_gpu_shader5 #define GL_EXT_gpu_shader5 1 #endif /* GL_EXT_gpu_shader5 */ # 1520 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_instanced_arrays #define GL_EXT_instanced_arrays 1 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT 0x88FE typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXT (GLuint index, GLuint divisor); #endif # 1528 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_instanced_arrays */ # 1529 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_map_buffer_range #define GL_EXT_map_buffer_range 1 #define GL_MAP_READ_BIT_EXT 0x0001 #define GL_MAP_WRITE_BIT_EXT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_APICALL void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); #endif # 1544 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_map_buffer_range */ # 1545 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_memory_object #define GL_EXT_memory_object 1 #define GL_TEXTURE_TILING_EXT 0x9580 #define GL_DEDICATED_MEMORY_OBJECT_EXT 0x9581 #define GL_PROTECTED_MEMORY_OBJECT_EXT 0x959B #define GL_NUM_TILING_TYPES_EXT 0x9582 #define GL_TILING_TYPES_EXT 0x9583 #define GL_OPTIMAL_TILING_EXT 0x9584 #define GL_LINEAR_TILING_EXT 0x9585 #define GL_NUM_DEVICE_UUIDS_EXT 0x9596 #define GL_DEVICE_UUID_EXT 0x9597 #define GL_DRIVER_UUID_EXT 0x9598 #define GL_UUID_SIZE_EXT 16 typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEVEXTPROC) (GLenum pname, GLubyte *data); typedef void (GL_APIENTRYP PFNGLGETUNSIGNEDBYTEI_VEXTPROC) (GLenum target, GLuint index, GLubyte *data); typedef void (GL_APIENTRYP PFNGLDELETEMEMORYOBJECTSEXTPROC) (GLsizei n, const GLuint *memoryObjects); typedef GLboolean (GL_APIENTRYP PFNGLISMEMORYOBJECTEXTPROC) (GLuint memoryObject); typedef void (GL_APIENTRYP PFNGLCREATEMEMORYOBJECTSEXTPROC) (GLsizei n, GLuint *memoryObjects); typedef void (GL_APIENTRYP PFNGLMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC) (GLuint memoryObject, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEMEMEXTPROC) (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DEXTPROC) (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC) (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC) (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetUnsignedBytevEXT (GLenum pname, GLubyte *data); GL_APICALL void GL_APIENTRY glGetUnsignedBytei_vEXT (GLenum target, GLuint index, GLubyte *data); GL_APICALL void GL_APIENTRY glDeleteMemoryObjectsEXT (GLsizei n, const GLuint *memoryObjects); GL_APICALL GLboolean GL_APIENTRY glIsMemoryObjectEXT (GLuint memoryObject); GL_APICALL void GL_APIENTRY glCreateMemoryObjectsEXT (GLsizei n, GLuint *memoryObjects); GL_APICALL void GL_APIENTRY glMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glGetMemoryObjectParameterivEXT (GLuint memoryObject, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glTexStorageMem2DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTexStorageMem2DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTexStorageMem3DEXT (GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTexStorageMem3DMultisampleEXT (GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glBufferStorageMemEXT (GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTextureStorageMem2DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTextureStorageMem2DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTextureStorageMem3DEXT (GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTextureStorageMem3DMultisampleEXT (GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glNamedBufferStorageMemEXT (GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); #endif # 1595 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_memory_object */ # 1596 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_memory_object_fd #define GL_EXT_memory_object_fd 1 #define GL_HANDLE_TYPE_OPAQUE_FD_EXT 0x9586 typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYFDEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glImportMemoryFdEXT (GLuint memory, GLuint64 size, GLenum handleType, GLint fd); #endif # 1604 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_memory_object_fd */ # 1605 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_memory_object_win32 #define GL_EXT_memory_object_win32 1 #define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT 0x9587 #define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT 0x9588 #define GL_DEVICE_LUID_EXT 0x9599 #define GL_DEVICE_NODE_MASK_EXT 0x959A #define GL_LUID_SIZE_EXT 8 #define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT 0x9589 #define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT 0x958A #define GL_HANDLE_TYPE_D3D11_IMAGE_EXT 0x958B #define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT 0x958C typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, void *handle); typedef void (GL_APIENTRYP PFNGLIMPORTMEMORYWIN32NAMEEXTPROC) (GLuint memory, GLuint64 size, GLenum handleType, const void *name); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glImportMemoryWin32HandleEXT (GLuint memory, GLuint64 size, GLenum handleType, void *handle); GL_APICALL void GL_APIENTRY glImportMemoryWin32NameEXT (GLuint memory, GLuint64 size, GLenum handleType, const void *name); #endif # 1623 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_memory_object_win32 */ # 1624 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); #endif # 1633 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_multi_draw_arrays */ # 1634 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multi_draw_indirect #define GL_EXT_multi_draw_indirect 1 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC) (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC) (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glMultiDrawArraysIndirectEXT (GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); GL_APICALL void GL_APIENTRY glMultiDrawElementsIndirectEXT (GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); #endif # 1643 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_multi_draw_indirect */ # 1644 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multisampled_compatibility #define GL_EXT_multisampled_compatibility 1 #define GL_MULTISAMPLE_EXT 0x809D #define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F #endif /* GL_EXT_multisampled_compatibility */ # 1650 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multisampled_render_to_texture #define GL_EXT_multisampled_render_to_texture 1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 #define GL_MAX_SAMPLES_EXT 0x8D57 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif # 1663 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_multisampled_render_to_texture */ # 1664 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multisampled_render_to_texture2 #define GL_EXT_multisampled_render_to_texture2 1 #endif /* GL_EXT_multisampled_render_to_texture2 */ # 1668 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multiview_draw_buffers #define GL_EXT_multiview_draw_buffers 1 #define GL_COLOR_ATTACHMENT_EXT 0x90F0 #define GL_MULTIVIEW_EXT 0x90F1 #define GL_DRAW_BUFFER_EXT 0x0C01 #define GL_READ_BUFFER_EXT 0x0C02 #define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90F2 typedef void (GL_APIENTRYP PFNGLREADBUFFERINDEXEDEXTPROC) (GLenum src, GLint index); typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSINDEXEDEXTPROC) (GLint n, const GLenum *location, const GLint *indices); typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VEXTPROC) (GLenum target, GLuint index, GLint *data); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glReadBufferIndexedEXT (GLenum src, GLint index); GL_APICALL void GL_APIENTRY glDrawBuffersIndexedEXT (GLint n, const GLenum *location, const GLint *indices); GL_APICALL void GL_APIENTRY glGetIntegeri_vEXT (GLenum target, GLuint index, GLint *data); #endif # 1684 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_multiview_draw_buffers */ # 1685 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multiview_tessellation_geometry_shader #define GL_EXT_multiview_tessellation_geometry_shader 1 #endif /* GL_EXT_multiview_tessellation_geometry_shader */ # 1689 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multiview_texture_multisample #define GL_EXT_multiview_texture_multisample 1 #endif /* GL_EXT_multiview_texture_multisample */ # 1693 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_multiview_timer_query #define GL_EXT_multiview_timer_query 1 #endif /* GL_EXT_multiview_timer_query */ # 1697 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_occlusion_query_boolean #define GL_EXT_occlusion_query_boolean 1 #define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F #define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A #endif /* GL_EXT_occlusion_query_boolean */ # 1703 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_polygon_offset_clamp #define GL_EXT_polygon_offset_clamp 1 #define GL_POLYGON_OFFSET_CLAMP_EXT 0x8E1B typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETCLAMPEXTPROC) (GLfloat factor, GLfloat units, GLfloat clamp); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glPolygonOffsetClampEXT (GLfloat factor, GLfloat units, GLfloat clamp); #endif # 1711 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_polygon_offset_clamp */ # 1712 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_post_depth_coverage #define GL_EXT_post_depth_coverage 1 #endif /* GL_EXT_post_depth_coverage */ # 1716 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_primitive_bounding_box #define GL_EXT_primitive_bounding_box 1 #define GL_PRIMITIVE_BOUNDING_BOX_EXT 0x92BE typedef void (GL_APIENTRYP PFNGLPRIMITIVEBOUNDINGBOXEXTPROC) (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glPrimitiveBoundingBoxEXT (GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); #endif # 1724 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_primitive_bounding_box */ # 1725 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_protected_textures #define GL_EXT_protected_textures 1 #define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT 0x00000010 #define GL_TEXTURE_PROTECTED_EXT 0x8BFA #endif /* GL_EXT_protected_textures */ # 1731 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_pvrtc_sRGB #define GL_EXT_pvrtc_sRGB 1 #define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT 0x8A54 #define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT 0x8A55 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT 0x8A56 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT 0x8A57 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG 0x93F0 #define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG 0x93F1 #endif /* GL_EXT_pvrtc_sRGB */ # 1741 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_raster_multisample #define GL_EXT_raster_multisample 1 #define GL_RASTER_MULTISAMPLE_EXT 0x9327 #define GL_RASTER_SAMPLES_EXT 0x9328 #define GL_MAX_RASTER_SAMPLES_EXT 0x9329 #define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT 0x932A #define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT 0x932B #define GL_EFFECTIVE_RASTER_SAMPLES_EXT 0x932C typedef void (GL_APIENTRYP PFNGLRASTERSAMPLESEXTPROC) (GLuint samples, GLboolean fixedsamplelocations); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRasterSamplesEXT (GLuint samples, GLboolean fixedsamplelocations); #endif # 1754 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_raster_multisample */ # 1755 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_read_format_bgra #define GL_EXT_read_format_bgra 1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 #endif /* GL_EXT_read_format_bgra */ # 1761 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_render_snorm #define GL_EXT_render_snorm 1 #define GL_R8_SNORM 0x8F94 #define GL_RG8_SNORM 0x8F95 #define GL_RGBA8_SNORM 0x8F97 #define GL_R16_SNORM_EXT 0x8F98 #define GL_RG16_SNORM_EXT 0x8F99 #define GL_RGBA16_SNORM_EXT 0x8F9B #endif /* GL_EXT_render_snorm */ # 1771 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_robustness #define GL_EXT_robustness 1 #define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 #define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 #define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 #define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 #define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 #define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 #define GL_NO_RESET_NOTIFICATION_EXT 0x8261 typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); GL_APICALL void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GL_APICALL void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); #endif # 1791 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_robustness */ # 1792 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_sRGB #define GL_EXT_sRGB 1 #define GL_SRGB_EXT 0x8C40 #define GL_SRGB_ALPHA_EXT 0x8C42 #define GL_SRGB8_ALPHA8_EXT 0x8C43 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 #endif /* GL_EXT_sRGB */ # 1800 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_sRGB_write_control #define GL_EXT_sRGB_write_control 1 #define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 #endif /* GL_EXT_sRGB_write_control */ # 1805 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_semaphore #define GL_EXT_semaphore 1 #define GL_LAYOUT_GENERAL_EXT 0x958D #define GL_LAYOUT_COLOR_ATTACHMENT_EXT 0x958E #define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT 0x958F #define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT 0x9590 #define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591 #define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592 #define GL_LAYOUT_TRANSFER_DST_EXT 0x9593 #define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530 #define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531 typedef void (GL_APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores); typedef void (GL_APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores); typedef GLboolean (GL_APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore); typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, const GLuint64 *params); typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC) (GLuint semaphore, GLenum pname, GLuint64 *params); typedef void (GL_APIENTRYP PFNGLWAITSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); typedef void (GL_APIENTRYP PFNGLSIGNALSEMAPHOREEXTPROC) (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGenSemaphoresEXT (GLsizei n, GLuint *semaphores); GL_APICALL void GL_APIENTRY glDeleteSemaphoresEXT (GLsizei n, const GLuint *semaphores); GL_APICALL GLboolean GL_APIENTRY glIsSemaphoreEXT (GLuint semaphore); GL_APICALL void GL_APIENTRY glSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, const GLuint64 *params); GL_APICALL void GL_APIENTRY glGetSemaphoreParameterui64vEXT (GLuint semaphore, GLenum pname, GLuint64 *params); GL_APICALL void GL_APIENTRY glWaitSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); GL_APICALL void GL_APIENTRY glSignalSemaphoreEXT (GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); #endif # 1833 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_semaphore */ # 1834 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_semaphore_fd #define GL_EXT_semaphore_fd 1 typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREFDEXTPROC) (GLuint semaphore, GLenum handleType, GLint fd); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glImportSemaphoreFdEXT (GLuint semaphore, GLenum handleType, GLint fd); #endif # 1841 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_semaphore_fd */ # 1842 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_semaphore_win32 #define GL_EXT_semaphore_win32 1 #define GL_HANDLE_TYPE_D3D12_FENCE_EXT 0x9594 #define GL_D3D12_FENCE_VALUE_EXT 0x9595 typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC) (GLuint semaphore, GLenum handleType, void *handle); typedef void (GL_APIENTRYP PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC) (GLuint semaphore, GLenum handleType, const void *name); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glImportSemaphoreWin32HandleEXT (GLuint semaphore, GLenum handleType, void *handle); GL_APICALL void GL_APIENTRY glImportSemaphoreWin32NameEXT (GLuint semaphore, GLenum handleType, const void *name); #endif # 1853 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_semaphore_win32 */ # 1854 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_separate_depth_stencil #define GL_EXT_separate_depth_stencil 1 #endif /* GL_EXT_separate_depth_stencil */ # 1858 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_separate_shader_objects #define GL_EXT_separate_shader_objects 1 #define GL_ACTIVE_PROGRAM_EXT 0x8259 #define GL_VERTEX_SHADER_BIT_EXT 0x00000001 #define GL_FRAGMENT_SHADER_BIT_EXT 0x00000002 #define GL_ALL_SHADER_BITS_EXT 0xFFFFFFFF #define GL_PROGRAM_SEPARABLE_EXT 0x8258 #define GL_PROGRAM_PIPELINE_BINDING_EXT 0x825A typedef void (GL_APIENTRYP PFNGLACTIVESHADERPROGRAMEXTPROC) (GLuint pipeline, GLuint program); typedef void (GL_APIENTRYP PFNGLBINDPROGRAMPIPELINEEXTPROC) (GLuint pipeline); typedef GLuint (GL_APIENTRYP PFNGLCREATESHADERPROGRAMVEXTPROC) (GLenum type, GLsizei count, const GLchar *const*strings); typedef void (GL_APIENTRYP PFNGLDELETEPROGRAMPIPELINESEXTPROC) (GLsizei n, const GLuint *pipelines); typedef void (GL_APIENTRYP PFNGLGENPROGRAMPIPELINESEXTPROC) (GLsizei n, GLuint *pipelines); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); typedef void (GL_APIENTRYP PFNGLGETPROGRAMPIPELINEIVEXTPROC) (GLuint pipeline, GLenum pname, GLint *params); typedef GLboolean (GL_APIENTRYP PFNGLISPROGRAMPIPELINEEXTPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUSEPROGRAMSTAGESEXTPROC) (GLuint pipeline, GLbitfield stages, GLuint program); typedef void (GL_APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEEXTPROC) (GLuint pipeline); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glActiveShaderProgramEXT (GLuint pipeline, GLuint program); GL_APICALL void GL_APIENTRY glBindProgramPipelineEXT (GLuint pipeline); GL_APICALL GLuint GL_APIENTRY glCreateShaderProgramvEXT (GLenum type, GLsizei count, const GLchar *const*strings); GL_APICALL void GL_APIENTRY glDeleteProgramPipelinesEXT (GLsizei n, const GLuint *pipelines); GL_APICALL void GL_APIENTRY glGenProgramPipelinesEXT (GLsizei n, GLuint *pipelines); GL_APICALL void GL_APIENTRY glGetProgramPipelineInfoLogEXT (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); GL_APICALL void GL_APIENTRY glGetProgramPipelineivEXT (GLuint pipeline, GLenum pname, GLint *params); GL_APICALL GLboolean GL_APIENTRY glIsProgramPipelineEXT (GLuint pipeline); GL_APICALL void GL_APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); GL_APICALL void GL_APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); GL_APICALL void GL_APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); GL_APICALL void GL_APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); GL_APICALL void GL_APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); GL_APICALL void GL_APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); GL_APICALL void GL_APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); GL_APICALL void GL_APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); GL_APICALL void GL_APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUseProgramStagesEXT (GLuint pipeline, GLbitfield stages, GLuint program); GL_APICALL void GL_APIENTRY glValidateProgramPipelineEXT (GLuint pipeline); GL_APICALL void GL_APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); GL_APICALL void GL_APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); GL_APICALL void GL_APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); GL_APICALL void GL_APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); GL_APICALL void GL_APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #endif # 1957 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_separate_shader_objects */ # 1958 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_framebuffer_fetch #define GL_EXT_shader_framebuffer_fetch 1 #define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52 #endif /* GL_EXT_shader_framebuffer_fetch */ # 1963 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_framebuffer_fetch_non_coherent #define GL_EXT_shader_framebuffer_fetch_non_coherent 1 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierEXT (void); #endif # 1970 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */ # 1971 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_group_vote #define GL_EXT_shader_group_vote 1 #endif /* GL_EXT_shader_group_vote */ # 1975 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_implicit_conversions #define GL_EXT_shader_implicit_conversions 1 #endif /* GL_EXT_shader_implicit_conversions */ # 1979 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_integer_mix #define GL_EXT_shader_integer_mix 1 #endif /* GL_EXT_shader_integer_mix */ # 1983 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_io_blocks #define GL_EXT_shader_io_blocks 1 #endif /* GL_EXT_shader_io_blocks */ # 1987 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_non_constant_global_initializers #define GL_EXT_shader_non_constant_global_initializers 1 #endif /* GL_EXT_shader_non_constant_global_initializers */ # 1991 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_pixel_local_storage #define GL_EXT_shader_pixel_local_storage 1 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT 0x8F63 #define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT 0x8F67 #define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT 0x8F64 #endif /* GL_EXT_shader_pixel_local_storage */ # 1998 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_pixel_local_storage2 #define GL_EXT_shader_pixel_local_storage2 1 #define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT 0x9650 #define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT 0x9651 #define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT 0x9652 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target, GLsizei size); typedef GLsizei (GL_APIENTRYP PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC) (GLuint target); typedef void (GL_APIENTRYP PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC) (GLsizei offset, GLsizei n, const GLuint *values); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferPixelLocalStorageSizeEXT (GLuint target, GLsizei size); GL_APICALL GLsizei GL_APIENTRY glGetFramebufferPixelLocalStorageSizeEXT (GLuint target); GL_APICALL void GL_APIENTRY glClearPixelLocalStorageuiEXT (GLsizei offset, GLsizei n, const GLuint *values); #endif # 2012 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_shader_pixel_local_storage2 */ # 2013 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_samples_identical #define GL_EXT_shader_samples_identical 1 #endif /* GL_EXT_shader_samples_identical */ # 2017 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shader_texture_lod #define GL_EXT_shader_texture_lod 1 #endif /* GL_EXT_shader_texture_lod */ # 2021 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_shadow_samplers #define GL_EXT_shadow_samplers 1 #define GL_TEXTURE_COMPARE_MODE_EXT 0x884C #define GL_TEXTURE_COMPARE_FUNC_EXT 0x884D #define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884E #define GL_SAMPLER_2D_SHADOW_EXT 0x8B62 #endif /* GL_EXT_shadow_samplers */ # 2029 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_sparse_texture #define GL_EXT_sparse_texture 1 #define GL_TEXTURE_SPARSE_EXT 0x91A6 #define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT 0x91A7 #define GL_NUM_SPARSE_LEVELS_EXT 0x91AA #define GL_NUM_VIRTUAL_PAGE_SIZES_EXT 0x91A8 #define GL_VIRTUAL_PAGE_SIZE_X_EXT 0x9195 #define GL_VIRTUAL_PAGE_SIZE_Y_EXT 0x9196 #define GL_VIRTUAL_PAGE_SIZE_Z_EXT 0x9197 #define GL_TEXTURE_2D_ARRAY 0x8C1A #define GL_TEXTURE_3D 0x806F #define GL_MAX_SPARSE_TEXTURE_SIZE_EXT 0x9198 #define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT 0x9199 #define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT 0x919A #define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT 0x91A9 typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexPageCommitmentEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); #endif # 2049 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_sparse_texture */ # 2050 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_sparse_texture2 #define GL_EXT_sparse_texture2 1 #endif /* GL_EXT_sparse_texture2 */ # 2054 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_tessellation_point_size #define GL_EXT_tessellation_point_size 1 #endif /* GL_EXT_tessellation_point_size */ # 2058 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_tessellation_shader #define GL_EXT_tessellation_shader 1 #define GL_PATCHES_EXT 0x000E #define GL_PATCH_VERTICES_EXT 0x8E72 #define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT 0x8E75 #define GL_TESS_GEN_MODE_EXT 0x8E76 #define GL_TESS_GEN_SPACING_EXT 0x8E77 #define GL_TESS_GEN_VERTEX_ORDER_EXT 0x8E78 #define GL_TESS_GEN_POINT_MODE_EXT 0x8E79 #define GL_ISOLINES_EXT 0x8E7A #define GL_QUADS_EXT 0x0007 #define GL_FRACTIONAL_ODD_EXT 0x8E7B #define GL_FRACTIONAL_EVEN_EXT 0x8E7C #define GL_MAX_PATCH_VERTICES_EXT 0x8E7D #define GL_MAX_TESS_GEN_LEVEL_EXT 0x8E7E #define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E7F #define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E80 #define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT 0x8E81 #define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT 0x8E82 #define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT 0x8E83 #define GL_MAX_TESS_PATCH_COMPONENTS_EXT 0x8E84 #define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT 0x8E85 #define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT 0x8E86 #define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT 0x8E89 #define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT 0x8E8A #define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT 0x886C #define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT 0x886D #define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT 0x8E1E #define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT 0x8E1F #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT 0x92CD #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT 0x92CE #define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT 0x92D3 #define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT 0x92D4 #define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT 0x90CB #define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT 0x90CC #define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT 0x90D8 #define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT 0x90D9 #define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 #define GL_IS_PER_PATCH_EXT 0x92E7 #define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT 0x9307 #define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT 0x9308 #define GL_TESS_CONTROL_SHADER_EXT 0x8E88 #define GL_TESS_EVALUATION_SHADER_EXT 0x8E87 #define GL_TESS_CONTROL_SHADER_BIT_EXT 0x00000008 #define GL_TESS_EVALUATION_SHADER_BIT_EXT 0x00000010 typedef void (GL_APIENTRYP PFNGLPATCHPARAMETERIEXTPROC) (GLenum pname, GLint value); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glPatchParameteriEXT (GLenum pname, GLint value); #endif # 2108 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_tessellation_shader */ # 2109 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_border_clamp #define GL_EXT_texture_border_clamp 1 #define GL_TEXTURE_BORDER_COLOR_EXT 0x1004 #define GL_CLAMP_TO_BORDER_EXT 0x812D typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, const GLint *param); typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, const GLuint *param); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVEXTPROC) (GLuint sampler, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVEXTPROC) (GLuint sampler, GLenum pname, GLuint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); GL_APICALL void GL_APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); GL_APICALL void GL_APIENTRY glSamplerParameterIivEXT (GLuint sampler, GLenum pname, const GLint *param); GL_APICALL void GL_APIENTRY glSamplerParameterIuivEXT (GLuint sampler, GLenum pname, const GLuint *param); GL_APICALL void GL_APIENTRY glGetSamplerParameterIivEXT (GLuint sampler, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivEXT (GLuint sampler, GLenum pname, GLuint *params); #endif # 2132 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_texture_border_clamp */ # 2133 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_buffer #define GL_EXT_texture_buffer 1 #define GL_TEXTURE_BUFFER_EXT 0x8C2A #define GL_TEXTURE_BUFFER_BINDING_EXT 0x8C2A #define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B #define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C #define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D #define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F #define GL_SAMPLER_BUFFER_EXT 0x8DC2 #define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 #define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 #define GL_IMAGE_BUFFER_EXT 0x9051 #define GL_INT_IMAGE_BUFFER_EXT 0x905C #define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 #define GL_TEXTURE_BUFFER_OFFSET_EXT 0x919D #define GL_TEXTURE_BUFFER_SIZE_EXT 0x919E typedef void (GL_APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); typedef void (GL_APIENTRYP PFNGLTEXBUFFERRANGEEXTPROC) (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); #endif # 2156 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_texture_buffer */ # 2157 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_compression_astc_decode_mode #define GL_EXT_texture_compression_astc_decode_mode 1 #define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69 #endif /* GL_EXT_texture_compression_astc_decode_mode */ # 2162 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_compression_bptc #define GL_EXT_texture_compression_bptc 1 #define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C #define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D #define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E #define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F #endif /* GL_EXT_texture_compression_bptc */ # 2170 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_compression_dxt1 #define GL_EXT_texture_compression_dxt1 1 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 #endif /* GL_EXT_texture_compression_dxt1 */ # 2176 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_compression_rgtc #define GL_EXT_texture_compression_rgtc 1 #define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB #define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC #define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD #define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE #endif /* GL_EXT_texture_compression_rgtc */ # 2184 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_compression_s3tc #define GL_EXT_texture_compression_s3tc 1 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 #endif /* GL_EXT_texture_compression_s3tc */ # 2190 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_compression_s3tc_srgb #define GL_EXT_texture_compression_s3tc_srgb 1 #define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F #endif /* GL_EXT_texture_compression_s3tc_srgb */ # 2198 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_cube_map_array #define GL_EXT_texture_cube_map_array 1 #define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009 #define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT 0x900A #define GL_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900C #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT 0x900D #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900E #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT 0x900F #define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 #define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A #endif /* GL_EXT_texture_cube_map_array */ # 2211 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF #endif /* GL_EXT_texture_filter_anisotropic */ # 2217 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_filter_minmax #define GL_EXT_texture_filter_minmax 1 #define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366 #define GL_WEIGHTED_AVERAGE_EXT 0x9367 #endif /* GL_EXT_texture_filter_minmax */ # 2223 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_format_BGRA8888 #define GL_EXT_texture_format_BGRA8888 1 #endif /* GL_EXT_texture_format_BGRA8888 */ # 2227 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_format_sRGB_override #define GL_EXT_texture_format_sRGB_override 1 #define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF #endif /* GL_EXT_texture_format_sRGB_override */ # 2232 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_mirror_clamp_to_edge #define GL_EXT_texture_mirror_clamp_to_edge 1 #define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 #endif /* GL_EXT_texture_mirror_clamp_to_edge */ # 2237 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_norm16 #define GL_EXT_texture_norm16 1 #define GL_R16_EXT 0x822A #define GL_RG16_EXT 0x822C #define GL_RGBA16_EXT 0x805B #define GL_RGB16_EXT 0x8054 #define GL_RGB16_SNORM_EXT 0x8F9A #endif /* GL_EXT_texture_norm16 */ # 2246 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_query_lod #define GL_EXT_texture_query_lod 1 #endif /* GL_EXT_texture_query_lod */ # 2250 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_rg #define GL_EXT_texture_rg 1 #define GL_RED_EXT 0x1903 #define GL_RG_EXT 0x8227 #define GL_R8_EXT 0x8229 #define GL_RG8_EXT 0x822B #endif /* GL_EXT_texture_rg */ # 2258 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_sRGB_R8 #define GL_EXT_texture_sRGB_R8 1 #define GL_SR8_EXT 0x8FBD #endif /* GL_EXT_texture_sRGB_R8 */ # 2263 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_sRGB_RG8 #define GL_EXT_texture_sRGB_RG8 1 #define GL_SRG8_EXT 0x8FBE #endif /* GL_EXT_texture_sRGB_RG8 */ # 2268 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_sRGB_decode #define GL_EXT_texture_sRGB_decode 1 #define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 #define GL_DECODE_EXT 0x8A49 #define GL_SKIP_DECODE_EXT 0x8A4A #endif /* GL_EXT_texture_sRGB_decode */ # 2275 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_shadow_lod #define GL_EXT_texture_shadow_lod 1 #endif /* GL_EXT_texture_shadow_lod */ # 2279 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_storage #define GL_EXT_texture_storage 1 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F #define GL_ALPHA8_EXT 0x803C #define GL_LUMINANCE8_EXT 0x8040 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 #define GL_RGBA32F_EXT 0x8814 #define GL_RGB32F_EXT 0x8815 #define GL_ALPHA32F_EXT 0x8816 #define GL_LUMINANCE32F_EXT 0x8818 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819 #define GL_ALPHA16F_EXT 0x881C #define GL_LUMINANCE16F_EXT 0x881E #define GL_LUMINANCE_ALPHA16F_EXT 0x881F #define GL_R32F_EXT 0x822E #define GL_RG32F_EXT 0x8230 typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_APICALL void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_APICALL void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_APICALL void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif # 2310 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_texture_storage */ # 2311 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_storage_compression #define GL_EXT_texture_storage_compression 1 #define GL_NUM_SURFACE_COMPRESSION_FIXED_RATES_EXT 0x8F6E #define GL_SURFACE_COMPRESSION_FIXED_RATE_1BPC_EXT 0x96C4 #define GL_SURFACE_COMPRESSION_FIXED_RATE_2BPC_EXT 0x96C5 #define GL_SURFACE_COMPRESSION_FIXED_RATE_3BPC_EXT 0x96C6 #define GL_SURFACE_COMPRESSION_FIXED_RATE_4BPC_EXT 0x96C7 #define GL_SURFACE_COMPRESSION_FIXED_RATE_5BPC_EXT 0x96C8 #define GL_SURFACE_COMPRESSION_FIXED_RATE_6BPC_EXT 0x96C9 #define GL_SURFACE_COMPRESSION_FIXED_RATE_7BPC_EXT 0x96CA #define GL_SURFACE_COMPRESSION_FIXED_RATE_8BPC_EXT 0x96CB #define GL_SURFACE_COMPRESSION_FIXED_RATE_9BPC_EXT 0x96CC #define GL_SURFACE_COMPRESSION_FIXED_RATE_10BPC_EXT 0x96CD #define GL_SURFACE_COMPRESSION_FIXED_RATE_11BPC_EXT 0x96CE #define GL_SURFACE_COMPRESSION_FIXED_RATE_12BPC_EXT 0x96CF typedef void (GL_APIENTRYP PFNGLTEXSTORAGEATTRIBS2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); typedef void (GL_APIENTRYP PFNGLTEXSTORAGEATTRIBS3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexStorageAttribs2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, const GLint* attrib_list); GL_APICALL void GL_APIENTRY glTexStorageAttribs3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, const GLint* attrib_list); #endif # 2333 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_texture_storage_compression */ # 2334 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_type_2_10_10_10_REV #define GL_EXT_texture_type_2_10_10_10_REV 1 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 #endif /* GL_EXT_texture_type_2_10_10_10_REV */ # 2339 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_texture_view #define GL_EXT_texture_view 1 #define GL_TEXTURE_VIEW_MIN_LEVEL_EXT 0x82DB #define GL_TEXTURE_VIEW_NUM_LEVELS_EXT 0x82DC #define GL_TEXTURE_VIEW_MIN_LAYER_EXT 0x82DD #define GL_TEXTURE_VIEW_NUM_LAYERS_EXT 0x82DE typedef void (GL_APIENTRYP PFNGLTEXTUREVIEWEXTPROC) (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTextureViewEXT (GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); #endif # 2350 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_texture_view */ # 2351 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_unpack_subimage #define GL_EXT_unpack_subimage 1 #define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2 #define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3 #define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4 #endif /* GL_EXT_unpack_subimage */ # 2358 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_win32_keyed_mutex #define GL_EXT_win32_keyed_mutex 1 typedef GLboolean (GL_APIENTRYP PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key, GLuint timeout); typedef GLboolean (GL_APIENTRYP PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC) (GLuint memory, GLuint64 key); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLboolean GL_APIENTRY glAcquireKeyedMutexWin32EXT (GLuint memory, GLuint64 key, GLuint timeout); GL_APICALL GLboolean GL_APIENTRY glReleaseKeyedMutexWin32EXT (GLuint memory, GLuint64 key); #endif # 2367 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_win32_keyed_mutex */ # 2368 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_EXT_window_rectangles #define GL_EXT_window_rectangles 1 #define GL_INCLUSIVE_EXT 0x8F10 #define GL_EXCLUSIVE_EXT 0x8F11 #define GL_WINDOW_RECTANGLE_EXT 0x8F12 #define GL_WINDOW_RECTANGLE_MODE_EXT 0x8F13 #define GL_MAX_WINDOW_RECTANGLES_EXT 0x8F14 #define GL_NUM_WINDOW_RECTANGLES_EXT 0x8F15 typedef void (GL_APIENTRYP PFNGLWINDOWRECTANGLESEXTPROC) (GLenum mode, GLsizei count, const GLint *box); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLint *box); #endif # 2381 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_EXT_window_rectangles */ # 2382 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_FJ_shader_binary_GCCSO #define GL_FJ_shader_binary_GCCSO 1 #define GL_GCCSO_SHADER_BINARY_FJ 0x9260 #endif /* GL_FJ_shader_binary_GCCSO */ # 2387 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_bindless_texture #define GL_IMG_bindless_texture 1 typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLEIMGPROC) (GLuint texture); typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLEIMGPROC) (GLuint texture, GLuint sampler); typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64IMGPROC) (GLint location, GLuint64 value); typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VIMGPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC) (GLuint program, GLint location, GLuint64 value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleIMG (GLuint texture); GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleIMG (GLuint texture, GLuint sampler); GL_APICALL void GL_APIENTRY glUniformHandleui64IMG (GLint location, GLuint64 value); GL_APICALL void GL_APIENTRY glUniformHandleui64vIMG (GLint location, GLsizei count, const GLuint64 *value); GL_APICALL void GL_APIENTRY glProgramUniformHandleui64IMG (GLuint program, GLint location, GLuint64 value); GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vIMG (GLuint program, GLint location, GLsizei count, const GLuint64 *values); #endif # 2404 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_IMG_bindless_texture */ # 2405 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_framebuffer_downsample #define GL_IMG_framebuffer_downsample 1 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG 0x913C #define GL_NUM_DOWNSAMPLE_SCALES_IMG 0x913D #define GL_DOWNSAMPLE_SCALES_IMG 0x913E #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG 0x913F typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferTexture2DDownsampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale); GL_APICALL void GL_APIENTRY glFramebufferTextureLayerDownsampleIMG (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale); #endif # 2418 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_IMG_framebuffer_downsample */ # 2419 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_multisampled_render_to_texture #define GL_IMG_multisampled_render_to_texture 1 #define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 #define GL_MAX_SAMPLES_IMG 0x9135 #define GL_TEXTURE_SAMPLES_IMG 0x9136 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif # 2432 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_IMG_multisampled_render_to_texture */ # 2433 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_program_binary #define GL_IMG_program_binary 1 #define GL_SGX_PROGRAM_BINARY_IMG 0x9130 #endif /* GL_IMG_program_binary */ # 2438 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_read_format #define GL_IMG_read_format 1 #define GL_BGRA_IMG 0x80E1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 #endif /* GL_IMG_read_format */ # 2444 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_shader_binary #define GL_IMG_shader_binary 1 #define GL_SGX_BINARY_IMG 0x8C0A #endif /* GL_IMG_shader_binary */ # 2449 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_texture_compression_pvrtc #define GL_IMG_texture_compression_pvrtc 1 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 #endif /* GL_IMG_texture_compression_pvrtc */ # 2457 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_texture_compression_pvrtc2 #define GL_IMG_texture_compression_pvrtc2 1 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138 #endif /* GL_IMG_texture_compression_pvrtc2 */ # 2463 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_IMG_texture_filter_cubic #define GL_IMG_texture_filter_cubic 1 #define GL_CUBIC_IMG 0x9139 #define GL_CUBIC_MIPMAP_NEAREST_IMG 0x913A #define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B #endif /* GL_IMG_texture_filter_cubic */ # 2470 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_INTEL_blackhole_render #define GL_INTEL_blackhole_render 1 #define GL_BLACKHOLE_RENDER_INTEL 0x83FC #endif /* GL_INTEL_blackhole_render */ # 2475 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_INTEL_conservative_rasterization #define GL_INTEL_conservative_rasterization 1 #define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE #endif /* GL_INTEL_conservative_rasterization */ # 2480 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_INTEL_framebuffer_CMAA #define GL_INTEL_framebuffer_CMAA 1 typedef void (GL_APIENTRYP PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glApplyFramebufferAttachmentCMAAINTEL (void); #endif # 2487 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_INTEL_framebuffer_CMAA */ # 2488 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_INTEL_performance_query #define GL_INTEL_performance_query 1 #define GL_PERFQUERY_SINGLE_CONTEXT_INTEL 0x00000000 #define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL 0x00000001 #define GL_PERFQUERY_WAIT_INTEL 0x83FB #define GL_PERFQUERY_FLUSH_INTEL 0x83FA #define GL_PERFQUERY_DONOT_FLUSH_INTEL 0x83F9 #define GL_PERFQUERY_COUNTER_EVENT_INTEL 0x94F0 #define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL 0x94F1 #define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL 0x94F2 #define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL 0x94F3 #define GL_PERFQUERY_COUNTER_RAW_INTEL 0x94F4 #define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL 0x94F5 #define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL 0x94F8 #define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL 0x94F9 #define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL 0x94FA #define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL 0x94FB #define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL 0x94FC #define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL 0x94FD #define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL 0x94FE #define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL 0x94FF #define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL 0x9500 typedef void (GL_APIENTRYP PFNGLBEGINPERFQUERYINTELPROC) (GLuint queryHandle); typedef void (GL_APIENTRYP PFNGLCREATEPERFQUERYINTELPROC) (GLuint queryId, GLuint *queryHandle); typedef void (GL_APIENTRYP PFNGLDELETEPERFQUERYINTELPROC) (GLuint queryHandle); typedef void (GL_APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle); typedef void (GL_APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId); typedef void (GL_APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId); typedef void (GL_APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); typedef void (GL_APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId); typedef void (GL_APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBeginPerfQueryINTEL (GLuint queryHandle); GL_APICALL void GL_APIENTRY glCreatePerfQueryINTEL (GLuint queryId, GLuint *queryHandle); GL_APICALL void GL_APIENTRY glDeletePerfQueryINTEL (GLuint queryHandle); GL_APICALL void GL_APIENTRY glEndPerfQueryINTEL (GLuint queryHandle); GL_APICALL void GL_APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId); GL_APICALL void GL_APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId); GL_APICALL void GL_APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten); GL_APICALL void GL_APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId); GL_APICALL void GL_APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); #endif # 2533 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_INTEL_performance_query */ # 2534 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_MESA_bgra #define GL_MESA_bgra 1 #define GL_BGR_EXT 0x80E0 #endif /* GL_MESA_bgra */ # 2539 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_MESA_framebuffer_flip_x #define GL_MESA_framebuffer_flip_x 1 #define GL_FRAMEBUFFER_FLIP_X_MESA 0x8BBC #endif /* GL_MESA_framebuffer_flip_x */ # 2544 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_MESA_framebuffer_flip_y #define GL_MESA_framebuffer_flip_y 1 #define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERPARAMETERIMESAPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC) (GLenum target, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferParameteriMESA (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glGetFramebufferParameterivMESA (GLenum target, GLenum pname, GLint *params); #endif # 2554 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_MESA_framebuffer_flip_y */ # 2555 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_MESA_framebuffer_swap_xy #define GL_MESA_framebuffer_swap_xy 1 #define GL_FRAMEBUFFER_SWAP_XY_MESA 0x8BBD #endif /* GL_MESA_framebuffer_swap_xy */ # 2560 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_MESA_program_binary_formats #define GL_MESA_program_binary_formats 1 #define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F #endif /* GL_MESA_program_binary_formats */ # 2565 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_MESA_shader_integer_functions #define GL_MESA_shader_integer_functions 1 #endif /* GL_MESA_shader_integer_functions */ # 2569 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NVX_blend_equation_advanced_multi_draw_buffers #define GL_NVX_blend_equation_advanced_multi_draw_buffers 1 #endif /* GL_NVX_blend_equation_advanced_multi_draw_buffers */ # 2573 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_bindless_texture #define GL_NV_bindless_texture 1 typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTUREHANDLENVPROC) (GLuint texture); typedef GLuint64 (GL_APIENTRYP PFNGLGETTEXTURESAMPLERHANDLENVPROC) (GLuint texture, GLuint sampler); typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); typedef void (GL_APIENTRYP PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC) (GLuint64 handle); typedef GLuint64 (GL_APIENTRYP PFNGLGETIMAGEHANDLENVPROC) (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle, GLenum access); typedef void (GL_APIENTRYP PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC) (GLuint64 handle); typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64NVPROC) (GLint location, GLuint64 value); typedef void (GL_APIENTRYP PFNGLUNIFORMHANDLEUI64VNVPROC) (GLint location, GLsizei count, const GLuint64 *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC) (GLuint program, GLint location, GLuint64 value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64 *values); typedef GLboolean (GL_APIENTRYP PFNGLISTEXTUREHANDLERESIDENTNVPROC) (GLuint64 handle); typedef GLboolean (GL_APIENTRYP PFNGLISIMAGEHANDLERESIDENTNVPROC) (GLuint64 handle); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLuint64 GL_APIENTRY glGetTextureHandleNV (GLuint texture); GL_APICALL GLuint64 GL_APIENTRY glGetTextureSamplerHandleNV (GLuint texture, GLuint sampler); GL_APICALL void GL_APIENTRY glMakeTextureHandleResidentNV (GLuint64 handle); GL_APICALL void GL_APIENTRY glMakeTextureHandleNonResidentNV (GLuint64 handle); GL_APICALL GLuint64 GL_APIENTRY glGetImageHandleNV (GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); GL_APICALL void GL_APIENTRY glMakeImageHandleResidentNV (GLuint64 handle, GLenum access); GL_APICALL void GL_APIENTRY glMakeImageHandleNonResidentNV (GLuint64 handle); GL_APICALL void GL_APIENTRY glUniformHandleui64NV (GLint location, GLuint64 value); GL_APICALL void GL_APIENTRY glUniformHandleui64vNV (GLint location, GLsizei count, const GLuint64 *value); GL_APICALL void GL_APIENTRY glProgramUniformHandleui64NV (GLuint program, GLint location, GLuint64 value); GL_APICALL void GL_APIENTRY glProgramUniformHandleui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64 *values); GL_APICALL GLboolean GL_APIENTRY glIsTextureHandleResidentNV (GLuint64 handle); GL_APICALL GLboolean GL_APIENTRY glIsImageHandleResidentNV (GLuint64 handle); #endif # 2604 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_bindless_texture */ # 2605 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_blend_equation_advanced #define GL_NV_blend_equation_advanced 1 #define GL_BLEND_OVERLAP_NV 0x9281 #define GL_BLEND_PREMULTIPLIED_SRC_NV 0x9280 #define GL_BLUE_NV 0x1905 #define GL_COLORBURN_NV 0x929A #define GL_COLORDODGE_NV 0x9299 #define GL_CONJOINT_NV 0x9284 #define GL_CONTRAST_NV 0x92A1 #define GL_DARKEN_NV 0x9297 #define GL_DIFFERENCE_NV 0x929E #define GL_DISJOINT_NV 0x9283 #define GL_DST_ATOP_NV 0x928F #define GL_DST_IN_NV 0x928B #define GL_DST_NV 0x9287 #define GL_DST_OUT_NV 0x928D #define GL_DST_OVER_NV 0x9289 #define GL_EXCLUSION_NV 0x92A0 #define GL_GREEN_NV 0x1904 #define GL_HARDLIGHT_NV 0x929B #define GL_HARDMIX_NV 0x92A9 #define GL_HSL_COLOR_NV 0x92AF #define GL_HSL_HUE_NV 0x92AD #define GL_HSL_LUMINOSITY_NV 0x92B0 #define GL_HSL_SATURATION_NV 0x92AE #define GL_INVERT_OVG_NV 0x92B4 #define GL_INVERT_RGB_NV 0x92A3 #define GL_LIGHTEN_NV 0x9298 #define GL_LINEARBURN_NV 0x92A5 #define GL_LINEARDODGE_NV 0x92A4 #define GL_LINEARLIGHT_NV 0x92A7 #define GL_MINUS_CLAMPED_NV 0x92B3 #define GL_MINUS_NV 0x929F #define GL_MULTIPLY_NV 0x9294 #define GL_OVERLAY_NV 0x9296 #define GL_PINLIGHT_NV 0x92A8 #define GL_PLUS_CLAMPED_ALPHA_NV 0x92B2 #define GL_PLUS_CLAMPED_NV 0x92B1 #define GL_PLUS_DARKER_NV 0x9292 #define GL_PLUS_NV 0x9291 #define GL_RED_NV 0x1903 #define GL_SCREEN_NV 0x9295 #define GL_SOFTLIGHT_NV 0x929C #define GL_SRC_ATOP_NV 0x928E #define GL_SRC_IN_NV 0x928A #define GL_SRC_NV 0x9286 #define GL_SRC_OUT_NV 0x928C #define GL_SRC_OVER_NV 0x9288 #define GL_UNCORRELATED_NV 0x9282 #define GL_VIVIDLIGHT_NV 0x92A6 #define GL_XOR_NV 0x1506 typedef void (GL_APIENTRYP PFNGLBLENDPARAMETERINVPROC) (GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLBLENDBARRIERNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBlendParameteriNV (GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glBlendBarrierNV (void); #endif # 2663 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_blend_equation_advanced */ # 2664 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_blend_equation_advanced_coherent #define GL_NV_blend_equation_advanced_coherent 1 #define GL_BLEND_ADVANCED_COHERENT_NV 0x9285 #endif /* GL_NV_blend_equation_advanced_coherent */ # 2669 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_blend_minmax_factor #define GL_NV_blend_minmax_factor 1 #define GL_FACTOR_MIN_AMD 0x901C #define GL_FACTOR_MAX_AMD 0x901D #endif /* GL_NV_blend_minmax_factor */ # 2675 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_clip_space_w_scaling #define GL_NV_clip_space_w_scaling 1 #define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C #define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D #define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E typedef void (GL_APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff); #endif # 2685 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_clip_space_w_scaling */ # 2686 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_compute_shader_derivatives #define GL_NV_compute_shader_derivatives 1 #endif /* GL_NV_compute_shader_derivatives */ # 2690 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_conditional_render #define GL_NV_conditional_render 1 #define GL_QUERY_WAIT_NV 0x8E13 #define GL_QUERY_NO_WAIT_NV 0x8E14 #define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 #define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 typedef void (GL_APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); typedef void (GL_APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); GL_APICALL void GL_APIENTRY glEndConditionalRenderNV (void); #endif # 2703 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_conditional_render */ # 2704 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_conservative_raster #define GL_NV_conservative_raster 1 #define GL_CONSERVATIVE_RASTERIZATION_NV 0x9346 #define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV 0x9347 #define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV 0x9348 #define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV 0x9349 typedef void (GL_APIENTRYP PFNGLSUBPIXELPRECISIONBIASNVPROC) (GLuint xbits, GLuint ybits); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybits); #endif # 2715 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_conservative_raster */ # 2716 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_conservative_raster_pre_snap #define GL_NV_conservative_raster_pre_snap 1 #define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550 #endif /* GL_NV_conservative_raster_pre_snap */ # 2721 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_conservative_raster_pre_snap_triangles #define GL_NV_conservative_raster_pre_snap_triangles 1 #define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D #define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV 0x954E #define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV 0x954F typedef void (GL_APIENTRYP PFNGLCONSERVATIVERASTERPARAMETERINVPROC) (GLenum pname, GLint param); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param); #endif # 2731 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_conservative_raster_pre_snap_triangles */ # 2732 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_copy_buffer #define GL_NV_copy_buffer 1 #define GL_COPY_READ_BUFFER_NV 0x8F36 #define GL_COPY_WRITE_BUFFER_NV 0x8F37 typedef void (GL_APIENTRYP PFNGLCOPYBUFFERSUBDATANVPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCopyBufferSubDataNV (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); #endif # 2741 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_copy_buffer */ # 2742 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_coverage_sample #define GL_NV_coverage_sample 1 #define GL_COVERAGE_COMPONENT_NV 0x8ED0 #define GL_COVERAGE_COMPONENT4_NV 0x8ED1 #define GL_COVERAGE_ATTACHMENT_NV 0x8ED2 #define GL_COVERAGE_BUFFERS_NV 0x8ED3 #define GL_COVERAGE_SAMPLES_NV 0x8ED4 #define GL_COVERAGE_ALL_FRAGMENTS_NV 0x8ED5 #define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ED6 #define GL_COVERAGE_AUTOMATIC_NV 0x8ED7 #define GL_COVERAGE_BUFFER_BIT_NV 0x00008000 typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask); typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask); GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation); #endif # 2760 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_coverage_sample */ # 2761 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_depth_nonlinear #define GL_NV_depth_nonlinear 1 #define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8E2C #endif /* GL_NV_depth_nonlinear */ # 2766 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_draw_buffers #define GL_NV_draw_buffers 1 #define GL_MAX_DRAW_BUFFERS_NV 0x8824 #define GL_DRAW_BUFFER0_NV 0x8825 #define GL_DRAW_BUFFER1_NV 0x8826 #define GL_DRAW_BUFFER2_NV 0x8827 #define GL_DRAW_BUFFER3_NV 0x8828 #define GL_DRAW_BUFFER4_NV 0x8829 #define GL_DRAW_BUFFER5_NV 0x882A #define GL_DRAW_BUFFER6_NV 0x882B #define GL_DRAW_BUFFER7_NV 0x882C #define GL_DRAW_BUFFER8_NV 0x882D #define GL_DRAW_BUFFER9_NV 0x882E #define GL_DRAW_BUFFER10_NV 0x882F #define GL_DRAW_BUFFER11_NV 0x8830 #define GL_DRAW_BUFFER12_NV 0x8831 #define GL_DRAW_BUFFER13_NV 0x8832 #define GL_DRAW_BUFFER14_NV 0x8833 #define GL_DRAW_BUFFER15_NV 0x8834 #define GL_COLOR_ATTACHMENT0_NV 0x8CE0 #define GL_COLOR_ATTACHMENT1_NV 0x8CE1 #define GL_COLOR_ATTACHMENT2_NV 0x8CE2 #define GL_COLOR_ATTACHMENT3_NV 0x8CE3 #define GL_COLOR_ATTACHMENT4_NV 0x8CE4 #define GL_COLOR_ATTACHMENT5_NV 0x8CE5 #define GL_COLOR_ATTACHMENT6_NV 0x8CE6 #define GL_COLOR_ATTACHMENT7_NV 0x8CE7 #define GL_COLOR_ATTACHMENT8_NV 0x8CE8 #define GL_COLOR_ATTACHMENT9_NV 0x8CE9 #define GL_COLOR_ATTACHMENT10_NV 0x8CEA #define GL_COLOR_ATTACHMENT11_NV 0x8CEB #define GL_COLOR_ATTACHMENT12_NV 0x8CEC #define GL_COLOR_ATTACHMENT13_NV 0x8CED #define GL_COLOR_ATTACHMENT14_NV 0x8CEE #define GL_COLOR_ATTACHMENT15_NV 0x8CEF typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSNVPROC) (GLsizei n, const GLenum *bufs); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawBuffersNV (GLsizei n, const GLenum *bufs); #endif # 2806 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_draw_buffers */ # 2807 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_draw_instanced #define GL_NV_draw_instanced 1 typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDNVPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDNVPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount); GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount); #endif # 2816 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_draw_instanced */ # 2817 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_draw_vulkan_image #define GL_NV_draw_vulkan_image 1 typedef void (GL_APIENTRY *GLVULKANPROCNV)(void); typedef void (GL_APIENTRYP PFNGLDRAWVKIMAGENVPROC) (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); typedef GLVULKANPROCNV (GL_APIENTRYP PFNGLGETVKPROCADDRNVPROC) (const GLchar *name); typedef void (GL_APIENTRYP PFNGLWAITVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); typedef void (GL_APIENTRYP PFNGLSIGNALVKSEMAPHORENVPROC) (GLuint64 vkSemaphore); typedef void (GL_APIENTRYP PFNGLSIGNALVKFENCENVPROC) (GLuint64 vkFence); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawVkImageNV (GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1); GL_APICALL GLVULKANPROCNV GL_APIENTRY glGetVkProcAddrNV (const GLchar *name); GL_APICALL void GL_APIENTRY glWaitVkSemaphoreNV (GLuint64 vkSemaphore); GL_APICALL void GL_APIENTRY glSignalVkSemaphoreNV (GLuint64 vkSemaphore); GL_APICALL void GL_APIENTRY glSignalVkFenceNV (GLuint64 vkFence); #endif # 2833 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_draw_vulkan_image */ # 2834 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_explicit_attrib_location #define GL_NV_explicit_attrib_location 1 #endif /* GL_NV_explicit_attrib_location */ # 2838 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_fbo_color_attachments #define GL_NV_fbo_color_attachments 1 #define GL_MAX_COLOR_ATTACHMENTS_NV 0x8CDF #endif /* GL_NV_fbo_color_attachments */ # 2843 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_fence #define GL_NV_fence 1 #define GL_ALL_COMPLETED_NV 0x84F2 #define GL_FENCE_STATUS_NV 0x84F3 #define GL_FENCE_CONDITION_NV 0x84F4 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint fence); GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); #endif # 2865 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_fence */ # 2866 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_fill_rectangle #define GL_NV_fill_rectangle 1 #define GL_FILL_RECTANGLE_NV 0x933C #endif /* GL_NV_fill_rectangle */ # 2871 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_fragment_coverage_to_color #define GL_NV_fragment_coverage_to_color 1 #define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD #define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE typedef void (GL_APIENTRYP PFNGLFRAGMENTCOVERAGECOLORNVPROC) (GLuint color); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFragmentCoverageColorNV (GLuint color); #endif # 2880 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_fragment_coverage_to_color */ # 2881 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_fragment_shader_barycentric #define GL_NV_fragment_shader_barycentric 1 #endif /* GL_NV_fragment_shader_barycentric */ # 2885 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_fragment_shader_interlock #define GL_NV_fragment_shader_interlock 1 #endif /* GL_NV_fragment_shader_interlock */ # 2889 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_framebuffer_blit #define GL_NV_framebuffer_blit 1 #define GL_READ_FRAMEBUFFER_NV 0x8CA8 #define GL_DRAW_FRAMEBUFFER_NV 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_NV 0x8CAA typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBlitFramebufferNV (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); #endif # 2900 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_framebuffer_blit */ # 2901 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_framebuffer_mixed_samples #define GL_NV_framebuffer_mixed_samples 1 #define GL_COVERAGE_MODULATION_TABLE_NV 0x9331 #define GL_COLOR_SAMPLES_NV 0x8E20 #define GL_DEPTH_SAMPLES_NV 0x932D #define GL_STENCIL_SAMPLES_NV 0x932E #define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV 0x932F #define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV 0x9330 #define GL_COVERAGE_MODULATION_NV 0x9332 #define GL_COVERAGE_MODULATION_TABLE_SIZE_NV 0x9333 typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONTABLENVPROC) (GLsizei n, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLGETCOVERAGEMODULATIONTABLENVPROC) (GLsizei bufSize, GLfloat *v); typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONNVPROC) (GLenum components); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCoverageModulationTableNV (GLsizei n, const GLfloat *v); GL_APICALL void GL_APIENTRY glGetCoverageModulationTableNV (GLsizei bufSize, GLfloat *v); GL_APICALL void GL_APIENTRY glCoverageModulationNV (GLenum components); #endif # 2920 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_framebuffer_mixed_samples */ # 2921 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_framebuffer_multisample #define GL_NV_framebuffer_multisample 1 #define GL_RENDERBUFFER_SAMPLES_NV 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8D56 #define GL_MAX_SAMPLES_NV 0x8D57 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleNV (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #endif # 2931 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_framebuffer_multisample */ # 2932 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_generate_mipmap_sRGB #define GL_NV_generate_mipmap_sRGB 1 #endif /* GL_NV_generate_mipmap_sRGB */ # 2936 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_geometry_shader_passthrough #define GL_NV_geometry_shader_passthrough 1 #endif /* GL_NV_geometry_shader_passthrough */ # 2940 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_gpu_shader5 #define GL_NV_gpu_shader5 1 typedef khronos_int64_t GLint64EXT; typedef khronos_uint64_t GLuint64EXT; #define GL_INT64_NV 0x140E #define GL_UNSIGNED_INT64_NV 0x140F #define GL_INT8_NV 0x8FE0 #define GL_INT8_VEC2_NV 0x8FE1 #define GL_INT8_VEC3_NV 0x8FE2 #define GL_INT8_VEC4_NV 0x8FE3 #define GL_INT16_NV 0x8FE4 #define GL_INT16_VEC2_NV 0x8FE5 #define GL_INT16_VEC3_NV 0x8FE6 #define GL_INT16_VEC4_NV 0x8FE7 #define GL_INT64_VEC2_NV 0x8FE9 #define GL_INT64_VEC3_NV 0x8FEA #define GL_INT64_VEC4_NV 0x8FEB #define GL_UNSIGNED_INT8_NV 0x8FEC #define GL_UNSIGNED_INT8_VEC2_NV 0x8FED #define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE #define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF #define GL_UNSIGNED_INT16_NV 0x8FF0 #define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 #define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 #define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 #define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 #define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 #define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 #define GL_FLOAT16_NV 0x8FF8 #define GL_FLOAT16_VEC2_NV 0x8FF9 #define GL_FLOAT16_VEC3_NV 0x8FFA #define GL_FLOAT16_VEC4_NV 0x8FFB #define GL_PATCHES 0x000E typedef void (GL_APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); typedef void (GL_APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); typedef void (GL_APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (GL_APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (GL_APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (GL_APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); typedef void (GL_APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); GL_APICALL void GL_APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); GL_APICALL void GL_APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); GL_APICALL void GL_APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); GL_APICALL void GL_APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); GL_APICALL void GL_APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); GL_APICALL void GL_APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); GL_APICALL void GL_APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); GL_APICALL void GL_APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); GL_APICALL void GL_APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); GL_APICALL void GL_APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); GL_APICALL void GL_APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); GL_APICALL void GL_APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); GL_APICALL void GL_APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); GL_APICALL void GL_APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); GL_APICALL void GL_APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); GL_APICALL void GL_APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); GL_APICALL void GL_APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); GL_APICALL void GL_APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); #endif # 3042 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_gpu_shader5 */ # 3043 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_image_formats #define GL_NV_image_formats 1 #endif /* GL_NV_image_formats */ # 3047 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_instanced_arrays #define GL_NV_instanced_arrays 1 #define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88FE typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORNVPROC) (GLuint index, GLuint divisor); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor); #endif # 3055 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_instanced_arrays */ # 3056 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_internalformat_sample_query #define GL_NV_internalformat_sample_query 1 #define GL_TEXTURE_2D_MULTISAMPLE 0x9100 #define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 #define GL_MULTISAMPLES_NV 0x9371 #define GL_SUPERSAMPLE_SCALE_X_NV 0x9372 #define GL_SUPERSAMPLE_SCALE_Y_NV 0x9373 #define GL_CONFORMANT_NV 0x9374 typedef void (GL_APIENTRYP PFNGLGETINTERNALFORMATSAMPLEIVNVPROC) (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetInternalformatSampleivNV (GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei count, GLint *params); #endif # 3069 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_internalformat_sample_query */ # 3070 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_memory_attachment #define GL_NV_memory_attachment 1 #define GL_ATTACHED_MEMORY_OBJECT_NV 0x95A4 #define GL_ATTACHED_MEMORY_OFFSET_NV 0x95A5 #define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV 0x95A6 #define GL_MEMORY_ATTACHABLE_SIZE_NV 0x95A7 #define GL_MEMORY_ATTACHABLE_NV 0x95A8 #define GL_DETACHED_MEMORY_INCARNATION_NV 0x95A9 #define GL_DETACHED_TEXTURES_NV 0x95AA #define GL_DETACHED_BUFFERS_NV 0x95AB #define GL_MAX_DETACHED_TEXTURES_NV 0x95AC #define GL_MAX_DETACHED_BUFFERS_NV 0x95AD typedef void (GL_APIENTRYP PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC) (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); typedef void (GL_APIENTRYP PFNGLRESETMEMORYOBJECTPARAMETERNVPROC) (GLuint memory, GLenum pname); typedef void (GL_APIENTRYP PFNGLTEXATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLBUFFERATTACHMEMORYNVPROC) (GLenum target, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLTEXTUREATTACHMEMORYNVPROC) (GLuint texture, GLuint memory, GLuint64 offset); typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERATTACHMEMORYNVPROC) (GLuint buffer, GLuint memory, GLuint64 offset); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetMemoryObjectDetachedResourcesuivNV (GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint *params); GL_APICALL void GL_APIENTRY glResetMemoryObjectParameterNV (GLuint memory, GLenum pname); GL_APICALL void GL_APIENTRY glTexAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glBufferAttachMemoryNV (GLenum target, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glTextureAttachMemoryNV (GLuint texture, GLuint memory, GLuint64 offset); GL_APICALL void GL_APIENTRY glNamedBufferAttachMemoryNV (GLuint buffer, GLuint memory, GLuint64 offset); #endif # 3097 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_memory_attachment */ # 3098 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_memory_object_sparse #define GL_NV_memory_object_sparse 1 typedef void (GL_APIENTRYP PFNGLBUFFERPAGECOMMITMENTMEMNVPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); typedef void (GL_APIENTRYP PFNGLTEXPAGECOMMITMENTMEMNVPROC) (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERPAGECOMMITMENTMEMNVPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); typedef void (GL_APIENTRYP PFNGLTEXTUREPAGECOMMITMENTMEMNVPROC) (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBufferPageCommitmentMemNV (GLenum target, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); GL_APICALL void GL_APIENTRY glTexPageCommitmentMemNV (GLenum target, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); GL_APICALL void GL_APIENTRY glNamedBufferPageCommitmentMemNV (GLuint buffer, GLintptr offset, GLsizeiptr size, GLuint memory, GLuint64 memOffset, GLboolean commit); GL_APICALL void GL_APIENTRY glTexturePageCommitmentMemNV (GLuint texture, GLint layer, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset, GLboolean commit); #endif # 3111 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_memory_object_sparse */ # 3112 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_mesh_shader #define GL_NV_mesh_shader 1 #define GL_MESH_SHADER_NV 0x9559 #define GL_TASK_SHADER_NV 0x955A #define GL_MAX_MESH_UNIFORM_BLOCKS_NV 0x8E60 #define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV 0x8E61 #define GL_MAX_MESH_IMAGE_UNIFORMS_NV 0x8E62 #define GL_MAX_MESH_UNIFORM_COMPONENTS_NV 0x8E63 #define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV 0x8E64 #define GL_MAX_MESH_ATOMIC_COUNTERS_NV 0x8E65 #define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV 0x8E66 #define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV 0x8E67 #define GL_MAX_TASK_UNIFORM_BLOCKS_NV 0x8E68 #define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV 0x8E69 #define GL_MAX_TASK_IMAGE_UNIFORMS_NV 0x8E6A #define GL_MAX_TASK_UNIFORM_COMPONENTS_NV 0x8E6B #define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV 0x8E6C #define GL_MAX_TASK_ATOMIC_COUNTERS_NV 0x8E6D #define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV 0x8E6E #define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV 0x8E6F #define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV 0x95A2 #define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV 0x95A3 #define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV 0x9536 #define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV 0x9537 #define GL_MAX_MESH_OUTPUT_VERTICES_NV 0x9538 #define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV 0x9539 #define GL_MAX_TASK_OUTPUT_COUNT_NV 0x953A #define GL_MAX_DRAW_MESH_TASKS_COUNT_NV 0x953D #define GL_MAX_MESH_VIEWS_NV 0x9557 #define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV 0x92DF #define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV 0x9543 #define GL_MAX_MESH_WORK_GROUP_SIZE_NV 0x953B #define GL_MAX_TASK_WORK_GROUP_SIZE_NV 0x953C #define GL_MESH_WORK_GROUP_SIZE_NV 0x953E #define GL_TASK_WORK_GROUP_SIZE_NV 0x953F #define GL_MESH_VERTICES_OUT_NV 0x9579 #define GL_MESH_PRIMITIVES_OUT_NV 0x957A #define GL_MESH_OUTPUT_TYPE_NV 0x957B #define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C #define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D #define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 #define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 #define GL_MESH_SHADER_BIT_NV 0x00000040 #define GL_TASK_SHADER_BIT_NV 0x00000080 #define GL_MESH_SUBROUTINE_NV 0x957C #define GL_TASK_SUBROUTINE_NV 0x957D #define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E #define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E #define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSNVPROC) (GLuint first, GLuint count); typedef void (GL_APIENTRYP PFNGLDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect); typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC) (GLintptr indirect, GLsizei drawcount, GLsizei stride); typedef void (GL_APIENTRYP PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC) (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glDrawMeshTasksNV (GLuint first, GLuint count); GL_APICALL void GL_APIENTRY glDrawMeshTasksIndirectNV (GLintptr indirect); GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectNV (GLintptr indirect, GLsizei drawcount, GLsizei stride); GL_APICALL void GL_APIENTRY glMultiDrawMeshTasksIndirectCountNV (GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); #endif # 3173 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_mesh_shader */ # 3174 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_non_square_matrices #define GL_NV_non_square_matrices 1 #define GL_FLOAT_MAT2x3_NV 0x8B65 #define GL_FLOAT_MAT2x4_NV 0x8B66 #define GL_FLOAT_MAT3x2_NV 0x8B67 #define GL_FLOAT_MAT3x4_NV 0x8B68 #define GL_FLOAT_MAT4x2_NV 0x8B69 #define GL_FLOAT_MAT4x3_NV 0x8B6A typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX2X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X2FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX3X4FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLUNIFORMMATRIX4X3FVNVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glUniformMatrix2x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix2x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x2fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix3x4fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvNV (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); #endif # 3197 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_non_square_matrices */ # 3198 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_pack_subimage #define GL_NV_pack_subimage 1 #define GL_PACK_ROW_LENGTH_NV 0x0D02 #define GL_PACK_SKIP_ROWS_NV 0x0D03 #define GL_PACK_SKIP_PIXELS_NV 0x0D04 #endif /* GL_NV_pack_subimage */ # 3205 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_path_rendering #define GL_NV_path_rendering 1 typedef double GLdouble; #define GL_PATH_FORMAT_SVG_NV 0x9070 #define GL_PATH_FORMAT_PS_NV 0x9071 #define GL_STANDARD_FONT_NAME_NV 0x9072 #define GL_SYSTEM_FONT_NAME_NV 0x9073 #define GL_FILE_NAME_NV 0x9074 #define GL_PATH_STROKE_WIDTH_NV 0x9075 #define GL_PATH_END_CAPS_NV 0x9076 #define GL_PATH_INITIAL_END_CAP_NV 0x9077 #define GL_PATH_TERMINAL_END_CAP_NV 0x9078 #define GL_PATH_JOIN_STYLE_NV 0x9079 #define GL_PATH_MITER_LIMIT_NV 0x907A #define GL_PATH_DASH_CAPS_NV 0x907B #define GL_PATH_INITIAL_DASH_CAP_NV 0x907C #define GL_PATH_TERMINAL_DASH_CAP_NV 0x907D #define GL_PATH_DASH_OFFSET_NV 0x907E #define GL_PATH_CLIENT_LENGTH_NV 0x907F #define GL_PATH_FILL_MODE_NV 0x9080 #define GL_PATH_FILL_MASK_NV 0x9081 #define GL_PATH_FILL_COVER_MODE_NV 0x9082 #define GL_PATH_STROKE_COVER_MODE_NV 0x9083 #define GL_PATH_STROKE_MASK_NV 0x9084 #define GL_COUNT_UP_NV 0x9088 #define GL_COUNT_DOWN_NV 0x9089 #define GL_PATH_OBJECT_BOUNDING_BOX_NV 0x908A #define GL_CONVEX_HULL_NV 0x908B #define GL_BOUNDING_BOX_NV 0x908D #define GL_TRANSLATE_X_NV 0x908E #define GL_TRANSLATE_Y_NV 0x908F #define GL_TRANSLATE_2D_NV 0x9090 #define GL_TRANSLATE_3D_NV 0x9091 #define GL_AFFINE_2D_NV 0x9092 #define GL_AFFINE_3D_NV 0x9094 #define GL_TRANSPOSE_AFFINE_2D_NV 0x9096 #define GL_TRANSPOSE_AFFINE_3D_NV 0x9098 #define GL_UTF8_NV 0x909A #define GL_UTF16_NV 0x909B #define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C #define GL_PATH_COMMAND_COUNT_NV 0x909D #define GL_PATH_COORD_COUNT_NV 0x909E #define GL_PATH_DASH_ARRAY_COUNT_NV 0x909F #define GL_PATH_COMPUTED_LENGTH_NV 0x90A0 #define GL_PATH_FILL_BOUNDING_BOX_NV 0x90A1 #define GL_PATH_STROKE_BOUNDING_BOX_NV 0x90A2 #define GL_SQUARE_NV 0x90A3 #define GL_ROUND_NV 0x90A4 #define GL_TRIANGULAR_NV 0x90A5 #define GL_BEVEL_NV 0x90A6 #define GL_MITER_REVERT_NV 0x90A7 #define GL_MITER_TRUNCATE_NV 0x90A8 #define GL_SKIP_MISSING_GLYPH_NV 0x90A9 #define GL_USE_MISSING_GLYPH_NV 0x90AA #define GL_PATH_ERROR_POSITION_NV 0x90AB #define GL_ACCUM_ADJACENT_PAIRS_NV 0x90AD #define GL_ADJACENT_PAIRS_NV 0x90AE #define GL_FIRST_TO_REST_NV 0x90AF #define GL_PATH_GEN_MODE_NV 0x90B0 #define GL_PATH_GEN_COEFF_NV 0x90B1 #define GL_PATH_GEN_COMPONENTS_NV 0x90B3 #define GL_PATH_STENCIL_FUNC_NV 0x90B7 #define GL_PATH_STENCIL_REF_NV 0x90B8 #define GL_PATH_STENCIL_VALUE_MASK_NV 0x90B9 #define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD #define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE #define GL_PATH_COVER_DEPTH_FUNC_NV 0x90BF #define GL_PATH_DASH_OFFSET_RESET_NV 0x90B4 #define GL_MOVE_TO_RESETS_NV 0x90B5 #define GL_MOVE_TO_CONTINUES_NV 0x90B6 #define GL_CLOSE_PATH_NV 0x00 #define GL_MOVE_TO_NV 0x02 #define GL_RELATIVE_MOVE_TO_NV 0x03 #define GL_LINE_TO_NV 0x04 #define GL_RELATIVE_LINE_TO_NV 0x05 #define GL_HORIZONTAL_LINE_TO_NV 0x06 #define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 #define GL_VERTICAL_LINE_TO_NV 0x08 #define GL_RELATIVE_VERTICAL_LINE_TO_NV 0x09 #define GL_QUADRATIC_CURVE_TO_NV 0x0A #define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B #define GL_CUBIC_CURVE_TO_NV 0x0C #define GL_RELATIVE_CUBIC_CURVE_TO_NV 0x0D #define GL_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0E #define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F #define GL_SMOOTH_CUBIC_CURVE_TO_NV 0x10 #define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 #define GL_SMALL_CCW_ARC_TO_NV 0x12 #define GL_RELATIVE_SMALL_CCW_ARC_TO_NV 0x13 #define GL_SMALL_CW_ARC_TO_NV 0x14 #define GL_RELATIVE_SMALL_CW_ARC_TO_NV 0x15 #define GL_LARGE_CCW_ARC_TO_NV 0x16 #define GL_RELATIVE_LARGE_CCW_ARC_TO_NV 0x17 #define GL_LARGE_CW_ARC_TO_NV 0x18 #define GL_RELATIVE_LARGE_CW_ARC_TO_NV 0x19 #define GL_RESTART_PATH_NV 0xF0 #define GL_DUP_FIRST_CUBIC_CURVE_TO_NV 0xF2 #define GL_DUP_LAST_CUBIC_CURVE_TO_NV 0xF4 #define GL_RECT_NV 0xF6 #define GL_CIRCULAR_CCW_ARC_TO_NV 0xF8 #define GL_CIRCULAR_CW_ARC_TO_NV 0xFA #define GL_CIRCULAR_TANGENT_ARC_TO_NV 0xFC #define GL_ARC_TO_NV 0xFE #define GL_RELATIVE_ARC_TO_NV 0xFF #define GL_BOLD_BIT_NV 0x01 #define GL_ITALIC_BIT_NV 0x02 #define GL_GLYPH_WIDTH_BIT_NV 0x01 #define GL_GLYPH_HEIGHT_BIT_NV 0x02 #define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 #define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 #define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 #define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 #define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 #define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 #define GL_GLYPH_HAS_KERNING_BIT_NV 0x100 #define GL_FONT_X_MIN_BOUNDS_BIT_NV 0x00010000 #define GL_FONT_Y_MIN_BOUNDS_BIT_NV 0x00020000 #define GL_FONT_X_MAX_BOUNDS_BIT_NV 0x00040000 #define GL_FONT_Y_MAX_BOUNDS_BIT_NV 0x00080000 #define GL_FONT_UNITS_PER_EM_BIT_NV 0x00100000 #define GL_FONT_ASCENDER_BIT_NV 0x00200000 #define GL_FONT_DESCENDER_BIT_NV 0x00400000 #define GL_FONT_HEIGHT_BIT_NV 0x00800000 #define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV 0x01000000 #define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 #define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 #define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 #define GL_FONT_HAS_KERNING_BIT_NV 0x10000000 #define GL_ROUNDED_RECT_NV 0xE8 #define GL_RELATIVE_ROUNDED_RECT_NV 0xE9 #define GL_ROUNDED_RECT2_NV 0xEA #define GL_RELATIVE_ROUNDED_RECT2_NV 0xEB #define GL_ROUNDED_RECT4_NV 0xEC #define GL_RELATIVE_ROUNDED_RECT4_NV 0xED #define GL_ROUNDED_RECT8_NV 0xEE #define GL_RELATIVE_ROUNDED_RECT8_NV 0xEF #define GL_RELATIVE_RECT_NV 0xF7 #define GL_FONT_GLYPHS_AVAILABLE_NV 0x9368 #define GL_FONT_TARGET_UNAVAILABLE_NV 0x9369 #define GL_FONT_UNAVAILABLE_NV 0x936A #define GL_FONT_UNINTELLIGIBLE_NV 0x936B #define GL_CONIC_CURVE_TO_NV 0x1A #define GL_RELATIVE_CONIC_CURVE_TO_NV 0x1B #define GL_FONT_NUM_GLYPH_INDICES_BIT_NV 0x20000000 #define GL_STANDARD_FONT_FORMAT_NV 0x936C #define GL_PATH_PROJECTION_NV 0x1701 #define GL_PATH_MODELVIEW_NV 0x1700 #define GL_PATH_MODELVIEW_STACK_DEPTH_NV 0x0BA3 #define GL_PATH_MODELVIEW_MATRIX_NV 0x0BA6 #define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 #define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 #define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 #define GL_PATH_PROJECTION_MATRIX_NV 0x0BA7 #define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 #define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 #define GL_FRAGMENT_INPUT_NV 0x936D typedef GLuint (GL_APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); typedef void (GL_APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); typedef GLboolean (GL_APIENTRYP PFNGLISPATHNVPROC) (GLuint path); typedef void (GL_APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (GL_APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (GL_APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (GL_APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); typedef void (GL_APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); typedef void (GL_APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef void (GL_APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef void (GL_APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); typedef void (GL_APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); typedef void (GL_APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); typedef void (GL_APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); typedef void (GL_APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); typedef void (GL_APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); typedef void (GL_APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); typedef void (GL_APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); typedef void (GL_APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); typedef void (GL_APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); typedef void (GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); typedef void (GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); typedef void (GL_APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); typedef void (GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef void (GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); typedef void (GL_APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); typedef void (GL_APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); typedef void (GL_APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); typedef void (GL_APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); typedef void (GL_APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); typedef void (GL_APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); typedef void (GL_APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); typedef GLboolean (GL_APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); typedef GLfloat (GL_APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); typedef GLboolean (GL_APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef void (GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef GLenum (GL_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); typedef void (GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); typedef void (GL_APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); typedef void (GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); typedef void (GL_APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); typedef void (GL_APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); typedef void (GL_APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); typedef void (GL_APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); typedef void (GL_APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL GLuint GL_APIENTRY glGenPathsNV (GLsizei range); GL_APICALL void GL_APIENTRY glDeletePathsNV (GLuint path, GLsizei range); GL_APICALL GLboolean GL_APIENTRY glIsPathNV (GLuint path); GL_APICALL void GL_APIENTRY glPathCommandsNV (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); GL_APICALL void GL_APIENTRY glPathCoordsNV (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); GL_APICALL void GL_APIENTRY glPathSubCommandsNV (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); GL_APICALL void GL_APIENTRY glPathSubCoordsNV (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); GL_APICALL void GL_APIENTRY glPathStringNV (GLuint path, GLenum format, GLsizei length, const void *pathString); GL_APICALL void GL_APIENTRY glPathGlyphsNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GL_APICALL void GL_APIENTRY glPathGlyphRangeNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GL_APICALL void GL_APIENTRY glWeightPathsNV (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); GL_APICALL void GL_APIENTRY glCopyPathNV (GLuint resultPath, GLuint srcPath); GL_APICALL void GL_APIENTRY glInterpolatePathsNV (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); GL_APICALL void GL_APIENTRY glTransformPathNV (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); GL_APICALL void GL_APIENTRY glPathParameterivNV (GLuint path, GLenum pname, const GLint *value); GL_APICALL void GL_APIENTRY glPathParameteriNV (GLuint path, GLenum pname, GLint value); GL_APICALL void GL_APIENTRY glPathParameterfvNV (GLuint path, GLenum pname, const GLfloat *value); GL_APICALL void GL_APIENTRY glPathParameterfNV (GLuint path, GLenum pname, GLfloat value); GL_APICALL void GL_APIENTRY glPathDashArrayNV (GLuint path, GLsizei dashCount, const GLfloat *dashArray); GL_APICALL void GL_APIENTRY glPathStencilFuncNV (GLenum func, GLint ref, GLuint mask); GL_APICALL void GL_APIENTRY glPathStencilDepthOffsetNV (GLfloat factor, GLfloat units); GL_APICALL void GL_APIENTRY glStencilFillPathNV (GLuint path, GLenum fillMode, GLuint mask); GL_APICALL void GL_APIENTRY glStencilStrokePathNV (GLuint path, GLint reference, GLuint mask); GL_APICALL void GL_APIENTRY glStencilFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); GL_APICALL void GL_APIENTRY glPathCoverDepthFuncNV (GLenum func); GL_APICALL void GL_APIENTRY glCoverFillPathNV (GLuint path, GLenum coverMode); GL_APICALL void GL_APIENTRY glCoverStrokePathNV (GLuint path, GLenum coverMode); GL_APICALL void GL_APIENTRY glCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GL_APICALL void GL_APIENTRY glGetPathParameterivNV (GLuint path, GLenum pname, GLint *value); GL_APICALL void GL_APIENTRY glGetPathParameterfvNV (GLuint path, GLenum pname, GLfloat *value); GL_APICALL void GL_APIENTRY glGetPathCommandsNV (GLuint path, GLubyte *commands); GL_APICALL void GL_APIENTRY glGetPathCoordsNV (GLuint path, GLfloat *coords); GL_APICALL void GL_APIENTRY glGetPathDashArrayNV (GLuint path, GLfloat *dashArray); GL_APICALL void GL_APIENTRY glGetPathMetricsNV (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); GL_APICALL void GL_APIENTRY glGetPathMetricRangeNV (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); GL_APICALL void GL_APIENTRY glGetPathSpacingNV (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); GL_APICALL GLboolean GL_APIENTRY glIsPointInFillPathNV (GLuint path, GLuint mask, GLfloat x, GLfloat y); GL_APICALL GLboolean GL_APIENTRY glIsPointInStrokePathNV (GLuint path, GLfloat x, GLfloat y); GL_APICALL GLfloat GL_APIENTRY glGetPathLengthNV (GLuint path, GLsizei startSegment, GLsizei numSegments); GL_APICALL GLboolean GL_APIENTRY glPointAlongPathNV (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); GL_APICALL void GL_APIENTRY glMatrixLoad3x2fNV (GLenum matrixMode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixLoad3x3fNV (GLenum matrixMode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixLoadTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixMult3x2fNV (GLenum matrixMode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixMult3x3fNV (GLenum matrixMode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixMultTranspose3x3fNV (GLenum matrixMode, const GLfloat *m); GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathNV (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathNV (GLuint path, GLint reference, GLuint mask, GLenum coverMode); GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathInstancedNV (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexRangeNV (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint *baseAndCount); GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GL_APICALL GLenum GL_APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLfloat *params); GL_APICALL void GL_APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT (GLenum mode); GL_APICALL void GL_APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); GL_APICALL void GL_APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); GL_APICALL void GL_APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); GL_APICALL void GL_APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); GL_APICALL void GL_APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); GL_APICALL void GL_APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); GL_APICALL void GL_APIENTRY glMatrixPopEXT (GLenum mode); GL_APICALL void GL_APIENTRY glMatrixPushEXT (GLenum mode); GL_APICALL void GL_APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); GL_APICALL void GL_APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); GL_APICALL void GL_APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); GL_APICALL void GL_APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); #endif # 3516 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_path_rendering */ # 3517 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_path_rendering_shared_edge #define GL_NV_path_rendering_shared_edge 1 #define GL_SHARED_EDGE_NV 0xC0 #endif /* GL_NV_path_rendering_shared_edge */ # 3522 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_pixel_buffer_object #define GL_NV_pixel_buffer_object 1 #define GL_PIXEL_PACK_BUFFER_NV 0x88EB #define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF #endif /* GL_NV_pixel_buffer_object */ # 3530 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_polygon_mode #define GL_NV_polygon_mode 1 #define GL_POLYGON_MODE_NV 0x0B40 #define GL_POLYGON_OFFSET_POINT_NV 0x2A01 #define GL_POLYGON_OFFSET_LINE_NV 0x2A02 #define GL_POINT_NV 0x1B00 #define GL_LINE_NV 0x1B01 #define GL_FILL_NV 0x1B02 typedef void (GL_APIENTRYP PFNGLPOLYGONMODENVPROC) (GLenum face, GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glPolygonModeNV (GLenum face, GLenum mode); #endif # 3543 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_polygon_mode */ # 3544 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_primitive_shading_rate #define GL_NV_primitive_shading_rate 1 #define GL_SHADING_RATE_IMAGE_PER_PRIMITIVE_NV 0x95B1 #define GL_SHADING_RATE_IMAGE_PALETTE_COUNT_NV 0x95B2 #endif /* GL_NV_primitive_shading_rate */ # 3550 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_read_buffer #define GL_NV_read_buffer 1 #define GL_READ_BUFFER_NV 0x0C02 typedef void (GL_APIENTRYP PFNGLREADBUFFERNVPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glReadBufferNV (GLenum mode); #endif # 3558 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_read_buffer */ # 3559 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_read_buffer_front #define GL_NV_read_buffer_front 1 #endif /* GL_NV_read_buffer_front */ # 3563 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_read_depth #define GL_NV_read_depth 1 #endif /* GL_NV_read_depth */ # 3567 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_read_depth_stencil #define GL_NV_read_depth_stencil 1 #endif /* GL_NV_read_depth_stencil */ # 3571 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_read_stencil #define GL_NV_read_stencil 1 #endif /* GL_NV_read_stencil */ # 3575 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_representative_fragment_test #define GL_NV_representative_fragment_test 1 #define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F #endif /* GL_NV_representative_fragment_test */ # 3580 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_sRGB_formats #define GL_NV_sRGB_formats 1 #define GL_SLUMINANCE_NV 0x8C46 #define GL_SLUMINANCE_ALPHA_NV 0x8C44 #define GL_SRGB8_NV 0x8C41 #define GL_SLUMINANCE8_NV 0x8C47 #define GL_SLUMINANCE8_ALPHA8_NV 0x8C45 #define GL_COMPRESSED_SRGB_S3TC_DXT1_NV 0x8C4C #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8C4D #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8C4E #define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8C4F #define GL_ETC1_SRGB8_NV 0x88EE #endif /* GL_NV_sRGB_formats */ # 3594 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_sample_locations #define GL_NV_sample_locations 1 #define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV 0x933D #define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV 0x933E #define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV 0x933F #define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV 0x9340 #define GL_SAMPLE_LOCATION_NV 0x8E50 #define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9341 #define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV 0x9342 #define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV 0x9343 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLenum target, GLuint start, GLsizei count, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC) (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLRESOLVEDEPTHVALUESNVPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferSampleLocationsfvNV (GLenum target, GLuint start, GLsizei count, const GLfloat *v); GL_APICALL void GL_APIENTRY glNamedFramebufferSampleLocationsfvNV (GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void); #endif # 3613 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_sample_locations */ # 3614 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_sample_mask_override_coverage #define GL_NV_sample_mask_override_coverage 1 #endif /* GL_NV_sample_mask_override_coverage */ # 3618 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_scissor_exclusive #define GL_NV_scissor_exclusive 1 #define GL_SCISSOR_TEST_EXCLUSIVE_NV 0x9555 #define GL_SCISSOR_BOX_EXCLUSIVE_NV 0x9556 typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVENVPROC) (GLint x, GLint y, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSCISSOREXCLUSIVEARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glScissorExclusiveNV (GLint x, GLint y, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glScissorExclusiveArrayvNV (GLuint first, GLsizei count, const GLint *v); #endif # 3629 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_scissor_exclusive */ # 3630 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shader_atomic_fp16_vector #define GL_NV_shader_atomic_fp16_vector 1 #endif /* GL_NV_shader_atomic_fp16_vector */ # 3634 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shader_noperspective_interpolation #define GL_NV_shader_noperspective_interpolation 1 #endif /* GL_NV_shader_noperspective_interpolation */ # 3638 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shader_subgroup_partitioned #define GL_NV_shader_subgroup_partitioned 1 #define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV 0x00000100 #endif /* GL_NV_shader_subgroup_partitioned */ # 3643 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shader_texture_footprint #define GL_NV_shader_texture_footprint 1 #endif /* GL_NV_shader_texture_footprint */ # 3647 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shading_rate_image #define GL_NV_shading_rate_image 1 #define GL_SHADING_RATE_IMAGE_NV 0x9563 #define GL_SHADING_RATE_NO_INVOCATIONS_NV 0x9564 #define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV 0x9565 #define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV 0x9566 #define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV 0x9567 #define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV 0x9568 #define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV 0x9569 #define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV 0x956A #define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV 0x956B #define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV 0x956C #define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV 0x956D #define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV 0x956E #define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV 0x956F #define GL_SHADING_RATE_IMAGE_BINDING_NV 0x955B #define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV 0x955C #define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV 0x955D #define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV 0x955E #define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV 0x955F #define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV 0x95AE #define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV 0x95AF #define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV 0x95B0 typedef void (GL_APIENTRYP PFNGLBINDSHADINGRATEIMAGENVPROC) (GLuint texture); typedef void (GL_APIENTRYP PFNGLGETSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint entry, GLenum *rate); typedef void (GL_APIENTRYP PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC) (GLenum rate, GLuint samples, GLuint index, GLint *location); typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEBARRIERNVPROC) (GLboolean synchronize); typedef void (GL_APIENTRYP PFNGLSHADINGRATEIMAGEPALETTENVPROC) (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERNVPROC) (GLenum order); typedef void (GL_APIENTRYP PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC) (GLenum rate, GLuint samples, const GLint *locations); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glBindShadingRateImageNV (GLuint texture); GL_APICALL void GL_APIENTRY glGetShadingRateImagePaletteNV (GLuint viewport, GLuint entry, GLenum *rate); GL_APICALL void GL_APIENTRY glGetShadingRateSampleLocationivNV (GLenum rate, GLuint samples, GLuint index, GLint *location); GL_APICALL void GL_APIENTRY glShadingRateImageBarrierNV (GLboolean synchronize); GL_APICALL void GL_APIENTRY glShadingRateImagePaletteNV (GLuint viewport, GLuint first, GLsizei count, const GLenum *rates); GL_APICALL void GL_APIENTRY glShadingRateSampleOrderNV (GLenum order); GL_APICALL void GL_APIENTRY glShadingRateSampleOrderCustomNV (GLenum rate, GLuint samples, const GLint *locations); #endif # 3687 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_shading_rate_image */ # 3688 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shadow_samplers_array #define GL_NV_shadow_samplers_array 1 #define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8DC4 #endif /* GL_NV_shadow_samplers_array */ # 3693 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_shadow_samplers_cube #define GL_NV_shadow_samplers_cube 1 #define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5 #endif /* GL_NV_shadow_samplers_cube */ # 3698 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_stereo_view_rendering #define GL_NV_stereo_view_rendering 1 #endif /* GL_NV_stereo_view_rendering */ # 3702 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_texture_border_clamp #define GL_NV_texture_border_clamp 1 #define GL_TEXTURE_BORDER_COLOR_NV 0x1004 #define GL_CLAMP_TO_BORDER_NV 0x812D #endif /* GL_NV_texture_border_clamp */ # 3708 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_texture_compression_s3tc_update #define GL_NV_texture_compression_s3tc_update 1 #endif /* GL_NV_texture_compression_s3tc_update */ # 3712 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_texture_npot_2D_mipmap #define GL_NV_texture_npot_2D_mipmap 1 #endif /* GL_NV_texture_npot_2D_mipmap */ # 3716 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_timeline_semaphore #define GL_NV_timeline_semaphore 1 #define GL_TIMELINE_SEMAPHORE_VALUE_NV 0x9595 #define GL_SEMAPHORE_TYPE_NV 0x95B3 #define GL_SEMAPHORE_TYPE_BINARY_NV 0x95B4 #define GL_SEMAPHORE_TYPE_TIMELINE_NV 0x95B5 #define GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV 0x95B6 typedef void (GL_APIENTRYP PFNGLCREATESEMAPHORESNVPROC) (GLsizei n, GLuint *semaphores); typedef void (GL_APIENTRYP PFNGLSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLGETSEMAPHOREPARAMETERIVNVPROC) (GLuint semaphore, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glCreateSemaphoresNV (GLsizei n, GLuint *semaphores); GL_APICALL void GL_APIENTRY glSemaphoreParameterivNV (GLuint semaphore, GLenum pname, const GLint *params); GL_APICALL void GL_APIENTRY glGetSemaphoreParameterivNV (GLuint semaphore, GLenum pname, GLint *params); #endif # 3732 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_timeline_semaphore */ # 3733 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_viewport_array #define GL_NV_viewport_array 1 #define GL_MAX_VIEWPORTS_NV 0x825B #define GL_VIEWPORT_SUBPIXEL_BITS_NV 0x825C #define GL_VIEWPORT_BOUNDS_RANGE_NV 0x825D #define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV 0x825F typedef void (GL_APIENTRYP PFNGLVIEWPORTARRAYVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); typedef void (GL_APIENTRYP PFNGLVIEWPORTINDEXEDFVNVPROC) (GLuint index, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLSCISSORARRAYVNVPROC) (GLuint first, GLsizei count, const GLint *v); typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDNVPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLSCISSORINDEXEDVNVPROC) (GLuint index, const GLint *v); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEARRAYFVNVPROC) (GLuint first, GLsizei count, const GLfloat *v); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEINDEXEDFNVPROC) (GLuint index, GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLGETFLOATI_VNVPROC) (GLenum target, GLuint index, GLfloat *data); typedef void (GL_APIENTRYP PFNGLENABLEINVPROC) (GLenum target, GLuint index); typedef void (GL_APIENTRYP PFNGLDISABLEINVPROC) (GLenum target, GLuint index); typedef GLboolean (GL_APIENTRYP PFNGLISENABLEDINVPROC) (GLenum target, GLuint index); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glViewportArrayvNV (GLuint first, GLsizei count, const GLfloat *v); GL_APICALL void GL_APIENTRY glViewportIndexedfNV (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); GL_APICALL void GL_APIENTRY glViewportIndexedfvNV (GLuint index, const GLfloat *v); GL_APICALL void GL_APIENTRY glScissorArrayvNV (GLuint first, GLsizei count, const GLint *v); GL_APICALL void GL_APIENTRY glScissorIndexedNV (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); GL_APICALL void GL_APIENTRY glScissorIndexedvNV (GLuint index, const GLint *v); GL_APICALL void GL_APIENTRY glDepthRangeArrayfvNV (GLuint first, GLsizei count, const GLfloat *v); GL_APICALL void GL_APIENTRY glDepthRangeIndexedfNV (GLuint index, GLfloat n, GLfloat f); GL_APICALL void GL_APIENTRY glGetFloati_vNV (GLenum target, GLuint index, GLfloat *data); GL_APICALL void GL_APIENTRY glEnableiNV (GLenum target, GLuint index); GL_APICALL void GL_APIENTRY glDisableiNV (GLenum target, GLuint index); GL_APICALL GLboolean GL_APIENTRY glIsEnablediNV (GLenum target, GLuint index); #endif # 3766 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_viewport_array */ # 3767 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_viewport_array2 #define GL_NV_viewport_array2 1 #endif /* GL_NV_viewport_array2 */ # 3771 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_NV_viewport_swizzle #define GL_NV_viewport_swizzle 1 #define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV 0x9350 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV 0x9351 #define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV 0x9352 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV 0x9353 #define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV 0x9354 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV 0x9355 #define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV 0x9356 #define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV 0x9357 #define GL_VIEWPORT_SWIZZLE_X_NV 0x9358 #define GL_VIEWPORT_SWIZZLE_Y_NV 0x9359 #define GL_VIEWPORT_SWIZZLE_Z_NV 0x935A #define GL_VIEWPORT_SWIZZLE_W_NV 0x935B typedef void (GL_APIENTRYP PFNGLVIEWPORTSWIZZLENVPROC) (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glViewportSwizzleNV (GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); #endif # 3790 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_NV_viewport_swizzle */ # 3791 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OVR_multiview #define GL_OVR_multiview 1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 0x9630 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 0x9632 #define GL_MAX_VIEWS_OVR 0x9631 #define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR 0x9633 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews); #endif # 3802 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OVR_multiview */ # 3803 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OVR_multiview2 #define GL_OVR_multiview2 1 #endif /* GL_OVR_multiview2 */ # 3807 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_OVR_multiview_multisampled_render_to_texture #define GL_OVR_multiview_multisampled_render_to_texture 1 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferTextureMultisampleMultiviewOVR (GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews); #endif # 3814 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_OVR_multiview_multisampled_render_to_texture */ # 3815 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_YUV_texture_gather #define GL_QCOM_YUV_texture_gather 1 #endif /* GL_QCOM_YUV_texture_gather */ # 3819 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_alpha_test #define GL_QCOM_alpha_test 1 #define GL_ALPHA_TEST_QCOM 0x0BC0 #define GL_ALPHA_TEST_FUNC_QCOM 0x0BC1 #define GL_ALPHA_TEST_REF_QCOM 0x0BC2 typedef void (GL_APIENTRYP PFNGLALPHAFUNCQCOMPROC) (GLenum func, GLclampf ref); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glAlphaFuncQCOM (GLenum func, GLclampf ref); #endif # 3829 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_alpha_test */ # 3830 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_binning_control #define GL_QCOM_binning_control 1 #define GL_BINNING_CONTROL_HINT_QCOM 0x8FB0 #define GL_CPU_OPTIMIZED_QCOM 0x8FB1 #define GL_GPU_OPTIMIZED_QCOM 0x8FB2 #define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8FB3 #endif /* GL_QCOM_binning_control */ # 3838 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_driver_control #define GL_QCOM_driver_control 1 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); #endif # 3851 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_driver_control */ # 3852 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_extended_get #define GL_QCOM_extended_get 1 #define GL_TEXTURE_WIDTH_QCOM 0x8BD2 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6 #define GL_TEXTURE_TYPE_QCOM 0x8BD7 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 #define GL_TEXTURE_TARGET_QCOM 0x8BDA #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB #define GL_STATE_RESTORE 0x8BDC typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); #endif # 3884 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_extended_get */ # 3885 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_extended_get2 #define GL_QCOM_extended_get2 1 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #endif # 3898 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_extended_get2 */ # 3899 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_frame_extrapolation #define GL_QCOM_frame_extrapolation 1 typedef void (GL_APIENTRYP PFNGLEXTRAPOLATETEX2DQCOMPROC) (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glExtrapolateTex2DQCOM (GLuint src1, GLuint src2, GLuint output, GLfloat scaleFactor); #endif # 3906 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_frame_extrapolation */ # 3907 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_framebuffer_foveated #define GL_QCOM_framebuffer_foveated 1 #define GL_FOVEATION_ENABLE_BIT_QCOM 0x00000001 #define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM 0x00000002 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC) (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC) (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferFoveationConfigQCOM (GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint *providedFeatures); GL_APICALL void GL_APIENTRY glFramebufferFoveationParametersQCOM (GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); #endif # 3918 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_framebuffer_foveated */ # 3919 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_motion_estimation #define GL_QCOM_motion_estimation 1 #define GL_MOTION_ESTIMATION_SEARCH_BLOCK_X_QCOM 0x8C90 #define GL_MOTION_ESTIMATION_SEARCH_BLOCK_Y_QCOM 0x8C91 typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONQCOMPROC) (GLuint ref, GLuint target, GLuint output); typedef void (GL_APIENTRYP PFNGLTEXESTIMATEMOTIONREGIONSQCOMPROC) (GLuint ref, GLuint target, GLuint output, GLuint mask); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTexEstimateMotionQCOM (GLuint ref, GLuint target, GLuint output); GL_APICALL void GL_APIENTRY glTexEstimateMotionRegionsQCOM (GLuint ref, GLuint target, GLuint output, GLuint mask); #endif # 3930 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_motion_estimation */ # 3931 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_perfmon_global_mode #define GL_QCOM_perfmon_global_mode 1 #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 #endif /* GL_QCOM_perfmon_global_mode */ # 3936 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_render_shared_exponent #define GL_QCOM_render_shared_exponent 1 #endif /* GL_QCOM_render_shared_exponent */ # 3940 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_shader_framebuffer_fetch_noncoherent #define GL_QCOM_shader_framebuffer_fetch_noncoherent 1 #define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM 0x96A2 typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierQCOM (void); #endif # 3948 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ # 3949 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_shader_framebuffer_fetch_rate #define GL_QCOM_shader_framebuffer_fetch_rate 1 #endif /* GL_QCOM_shader_framebuffer_fetch_rate */ # 3953 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_shading_rate #define GL_QCOM_shading_rate 1 #define GL_SHADING_RATE_QCOM 0x96A4 #define GL_SHADING_RATE_PRESERVE_ASPECT_RATIO_QCOM 0x96A5 #define GL_SHADING_RATE_1X1_PIXELS_QCOM 0x96A6 #define GL_SHADING_RATE_1X2_PIXELS_QCOM 0x96A7 #define GL_SHADING_RATE_2X1_PIXELS_QCOM 0x96A8 #define GL_SHADING_RATE_2X2_PIXELS_QCOM 0x96A9 #define GL_SHADING_RATE_4X2_PIXELS_QCOM 0x96AC #define GL_SHADING_RATE_4X4_PIXELS_QCOM 0x96AE typedef void (GL_APIENTRYP PFNGLSHADINGRATEQCOMPROC) (GLenum rate); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glShadingRateQCOM (GLenum rate); #endif # 3968 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_shading_rate */ # 3969 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_texture_foveated #define GL_QCOM_texture_foveated 1 #define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB #define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC #define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD #define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE #define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF typedef void (GL_APIENTRYP PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glTextureFoveationParametersQCOM (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea); #endif # 3981 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_texture_foveated */ # 3982 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_texture_foveated2 #define GL_QCOM_texture_foveated2 1 #define GL_TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM 0x96A0 #endif /* GL_QCOM_texture_foveated2 */ # 3987 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_texture_foveated_subsampled_layout #define GL_QCOM_texture_foveated_subsampled_layout 1 #define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM 0x00000004 #define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM 0x8FA1 #endif /* GL_QCOM_texture_foveated_subsampled_layout */ # 3993 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_tiled_rendering #define GL_QCOM_tiled_rendering 1 #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); #ifdef GL_GLEXT_PROTOTYPES GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); #endif # 4034 "../mesa/include/GLES2/gl2ext.h" #endif /* GL_QCOM_tiled_rendering */ # 4035 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_QCOM_writeonly_rendering #define GL_QCOM_writeonly_rendering 1 #define GL_WRITEONLY_RENDERING_QCOM 0x8823 #endif /* GL_QCOM_writeonly_rendering */ # 4040 "../mesa/include/GLES2/gl2ext.h" #ifndef GL_VIV_shader_binary #define GL_VIV_shader_binary 1 #define GL_SHADER_BINARY_VIV 0x8FC4 #endif /* GL_VIV_shader_binary */ # 4045 "../mesa/include/GLES2/gl2ext.h" #ifdef __cplusplus } #endif # 4049 "../mesa/include/GLES2/gl2ext.h" #endif # 4051 "../mesa/include/GLES2/gl2ext.h" #endif /* gl2ext.h expanded by -frewrite-includes */ # 78 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* gl.h expanded by -frewrite-includes */ #include "GLES/gl.h" #else /* gl.h expanded by -frewrite-includes */ # 78 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES/gl.h" 1 #ifndef __gles1_gl_h_ #define __gles1_gl_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES/gl.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* glplatform.h expanded by -frewrite-includes */ #include #else /* glplatform.h expanded by -frewrite-includes */ # 18 "../mesa/include/GLES/gl.h" # 1 "../mesa/include/GLES/glplatform.h" 1 #ifndef __glplatform_h_ #define __glplatform_h_ /* ** Copyright 2017-2020 The Khronos Group Inc. ** SPDX-License-Identifier: Apache-2.0 */ /* Platform-specific types and definitions for OpenGL ES 1.X gl.h * * Adopters may modify khrplatform.h and this file to suit their platform. * Please contribute modifications back to Khronos as pull requests on the * public github repository: * https://github.com/KhronosGroup/OpenGL-Registry */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 17 "../mesa/include/GLES/glplatform.h" # 18 "../mesa/include/GLES/glplatform.h" #ifndef GL_API #define GL_API KHRONOS_APICALL #endif # 22 "../mesa/include/GLES/glplatform.h" #ifndef GL_APIENTRY #define GL_APIENTRY KHRONOS_APIENTRY #endif # 26 "../mesa/include/GLES/glplatform.h" #endif /* __glplatform_h_ */ # 28 "../mesa/include/GLES/glplatform.h" #endif /* glplatform.h expanded by -frewrite-includes */ # 19 "../mesa/include/GLES/gl.h" 2 /* Generated on date 20230220 */ /* Generated C header for: * API: gles1 * Profile: common * Versions considered: .* * Versions emitted: .* * Default extensions included: None * Additional extensions included: ^(GL_OES_read_format|GL_OES_compressed_paletted_texture|GL_OES_point_size_array|GL_OES_point_sprite)$ * Extensions removed: _nomatch_^ */ #ifndef GL_VERSION_ES_CM_1_0 #define GL_VERSION_ES_CM_1_0 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/include/GLES/gl.h" # 35 "../mesa/include/GLES/gl.h" typedef khronos_int8_t GLbyte; typedef khronos_float_t GLclampf; typedef khronos_int16_t GLshort; typedef khronos_uint16_t GLushort; typedef void GLvoid; typedef unsigned int GLenum; typedef khronos_float_t GLfloat; typedef khronos_int32_t GLfixed; typedef unsigned int GLuint; typedef khronos_ssize_t GLsizeiptr; typedef khronos_intptr_t GLintptr; typedef unsigned int GLbitfield; typedef int GLint; typedef khronos_uint8_t GLubyte; typedef unsigned char GLboolean; typedef int GLsizei; typedef khronos_int32_t GLclampx; #define GL_VERSION_ES_CL_1_0 1 #define GL_VERSION_ES_CM_1_1 1 #define GL_VERSION_ES_CL_1_1 1 #define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_COLOR_BUFFER_BIT 0x00004000 #define GL_FALSE 0 #define GL_TRUE 1 #define GL_POINTS 0x0000 #define GL_LINES 0x0001 #define GL_LINE_LOOP 0x0002 #define GL_LINE_STRIP 0x0003 #define GL_TRIANGLES 0x0004 #define GL_TRIANGLE_STRIP 0x0005 #define GL_TRIANGLE_FAN 0x0006 #define GL_NEVER 0x0200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 #define GL_GREATER 0x0204 #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 #define GL_ZERO 0 #define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 #define GL_ONE_MINUS_SRC_ALPHA 0x0303 #define GL_DST_ALPHA 0x0304 #define GL_ONE_MINUS_DST_ALPHA 0x0305 #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 #define GL_CLIP_PLANE0 0x3000 #define GL_CLIP_PLANE1 0x3001 #define GL_CLIP_PLANE2 0x3002 #define GL_CLIP_PLANE3 0x3003 #define GL_CLIP_PLANE4 0x3004 #define GL_CLIP_PLANE5 0x3005 #define GL_FRONT 0x0404 #define GL_BACK 0x0405 #define GL_FRONT_AND_BACK 0x0408 #define GL_FOG 0x0B60 #define GL_LIGHTING 0x0B50 #define GL_TEXTURE_2D 0x0DE1 #define GL_CULL_FACE 0x0B44 #define GL_ALPHA_TEST 0x0BC0 #define GL_BLEND 0x0BE2 #define GL_COLOR_LOGIC_OP 0x0BF2 #define GL_DITHER 0x0BD0 #define GL_STENCIL_TEST 0x0B90 #define GL_DEPTH_TEST 0x0B71 #define GL_POINT_SMOOTH 0x0B10 #define GL_LINE_SMOOTH 0x0B20 #define GL_SCISSOR_TEST 0x0C11 #define GL_COLOR_MATERIAL 0x0B57 #define GL_NORMALIZE 0x0BA1 #define GL_RESCALE_NORMAL 0x803A #define GL_VERTEX_ARRAY 0x8074 #define GL_NORMAL_ARRAY 0x8075 #define GL_COLOR_ARRAY 0x8076 #define GL_TEXTURE_COORD_ARRAY 0x8078 #define GL_MULTISAMPLE 0x809D #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_ONE 0x809F #define GL_SAMPLE_COVERAGE 0x80A0 #define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 #define GL_STACK_OVERFLOW 0x0503 #define GL_STACK_UNDERFLOW 0x0504 #define GL_OUT_OF_MEMORY 0x0505 #define GL_EXP 0x0800 #define GL_EXP2 0x0801 #define GL_FOG_DENSITY 0x0B62 #define GL_FOG_START 0x0B63 #define GL_FOG_END 0x0B64 #define GL_FOG_MODE 0x0B65 #define GL_FOG_COLOR 0x0B66 #define GL_CW 0x0900 #define GL_CCW 0x0901 #define GL_CURRENT_COLOR 0x0B00 #define GL_CURRENT_NORMAL 0x0B02 #define GL_CURRENT_TEXTURE_COORDS 0x0B03 #define GL_POINT_SIZE 0x0B11 #define GL_POINT_SIZE_MIN 0x8126 #define GL_POINT_SIZE_MAX 0x8127 #define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 #define GL_POINT_DISTANCE_ATTENUATION 0x8129 #define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 #define GL_LINE_WIDTH 0x0B21 #define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 #define GL_ALIASED_POINT_SIZE_RANGE 0x846D #define GL_ALIASED_LINE_WIDTH_RANGE 0x846E #define GL_CULL_FACE_MODE 0x0B45 #define GL_FRONT_FACE 0x0B46 #define GL_SHADE_MODEL 0x0B54 #define GL_DEPTH_RANGE 0x0B70 #define GL_DEPTH_WRITEMASK 0x0B72 #define GL_DEPTH_CLEAR_VALUE 0x0B73 #define GL_DEPTH_FUNC 0x0B74 #define GL_STENCIL_CLEAR_VALUE 0x0B91 #define GL_STENCIL_FUNC 0x0B92 #define GL_STENCIL_VALUE_MASK 0x0B93 #define GL_STENCIL_FAIL 0x0B94 #define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 #define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 #define GL_STENCIL_REF 0x0B97 #define GL_STENCIL_WRITEMASK 0x0B98 #define GL_MATRIX_MODE 0x0BA0 #define GL_VIEWPORT 0x0BA2 #define GL_MODELVIEW_STACK_DEPTH 0x0BA3 #define GL_PROJECTION_STACK_DEPTH 0x0BA4 #define GL_TEXTURE_STACK_DEPTH 0x0BA5 #define GL_MODELVIEW_MATRIX 0x0BA6 #define GL_PROJECTION_MATRIX 0x0BA7 #define GL_TEXTURE_MATRIX 0x0BA8 #define GL_ALPHA_TEST_FUNC 0x0BC1 #define GL_ALPHA_TEST_REF 0x0BC2 #define GL_BLEND_DST 0x0BE0 #define GL_BLEND_SRC 0x0BE1 #define GL_LOGIC_OP_MODE 0x0BF0 #define GL_SCISSOR_BOX 0x0C10 #define GL_COLOR_CLEAR_VALUE 0x0C22 #define GL_COLOR_WRITEMASK 0x0C23 #define GL_MAX_LIGHTS 0x0D31 #define GL_MAX_CLIP_PLANES 0x0D32 #define GL_MAX_TEXTURE_SIZE 0x0D33 #define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 #define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 #define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 #define GL_MAX_VIEWPORT_DIMS 0x0D3A #define GL_MAX_TEXTURE_UNITS 0x84E2 #define GL_SUBPIXEL_BITS 0x0D50 #define GL_RED_BITS 0x0D52 #define GL_GREEN_BITS 0x0D53 #define GL_BLUE_BITS 0x0D54 #define GL_ALPHA_BITS 0x0D55 #define GL_DEPTH_BITS 0x0D56 #define GL_STENCIL_BITS 0x0D57 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_VERTEX_ARRAY_SIZE 0x807A #define GL_VERTEX_ARRAY_TYPE 0x807B #define GL_VERTEX_ARRAY_STRIDE 0x807C #define GL_NORMAL_ARRAY_TYPE 0x807E #define GL_NORMAL_ARRAY_STRIDE 0x807F #define GL_COLOR_ARRAY_SIZE 0x8081 #define GL_COLOR_ARRAY_TYPE 0x8082 #define GL_COLOR_ARRAY_STRIDE 0x8083 #define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 #define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 #define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A #define GL_VERTEX_ARRAY_POINTER 0x808E #define GL_NORMAL_ARRAY_POINTER 0x808F #define GL_COLOR_ARRAY_POINTER 0x8090 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 #define GL_SAMPLE_BUFFERS 0x80A8 #define GL_SAMPLES 0x80A9 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA #define GL_SAMPLE_COVERAGE_INVERT 0x80AB #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 #define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 #define GL_POINT_SMOOTH_HINT 0x0C51 #define GL_LINE_SMOOTH_HINT 0x0C52 #define GL_FOG_HINT 0x0C54 #define GL_GENERATE_MIPMAP_HINT 0x8192 #define GL_LIGHT_MODEL_AMBIENT 0x0B53 #define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 #define GL_AMBIENT 0x1200 #define GL_DIFFUSE 0x1201 #define GL_SPECULAR 0x1202 #define GL_POSITION 0x1203 #define GL_SPOT_DIRECTION 0x1204 #define GL_SPOT_EXPONENT 0x1205 #define GL_SPOT_CUTOFF 0x1206 #define GL_CONSTANT_ATTENUATION 0x1207 #define GL_LINEAR_ATTENUATION 0x1208 #define GL_QUADRATIC_ATTENUATION 0x1209 #define GL_BYTE 0x1400 #define GL_UNSIGNED_BYTE 0x1401 #define GL_SHORT 0x1402 #define GL_UNSIGNED_SHORT 0x1403 #define GL_FLOAT 0x1406 #define GL_FIXED 0x140C #define GL_CLEAR 0x1500 #define GL_AND 0x1501 #define GL_AND_REVERSE 0x1502 #define GL_COPY 0x1503 #define GL_AND_INVERTED 0x1504 #define GL_NOOP 0x1505 #define GL_XOR 0x1506 #define GL_OR 0x1507 #define GL_NOR 0x1508 #define GL_EQUIV 0x1509 #define GL_INVERT 0x150A #define GL_OR_REVERSE 0x150B #define GL_COPY_INVERTED 0x150C #define GL_OR_INVERTED 0x150D #define GL_NAND 0x150E #define GL_SET 0x150F #define GL_EMISSION 0x1600 #define GL_SHININESS 0x1601 #define GL_AMBIENT_AND_DIFFUSE 0x1602 #define GL_MODELVIEW 0x1700 #define GL_PROJECTION 0x1701 #define GL_TEXTURE 0x1702 #define GL_ALPHA 0x1906 #define GL_RGB 0x1907 #define GL_RGBA 0x1908 #define GL_LUMINANCE 0x1909 #define GL_LUMINANCE_ALPHA 0x190A #define GL_UNPACK_ALIGNMENT 0x0CF5 #define GL_PACK_ALIGNMENT 0x0D05 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 #define GL_FLAT 0x1D00 #define GL_SMOOTH 0x1D01 #define GL_KEEP 0x1E00 #define GL_REPLACE 0x1E01 #define GL_INCR 0x1E02 #define GL_DECR 0x1E03 #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 #define GL_MODULATE 0x2100 #define GL_DECAL 0x2101 #define GL_ADD 0x0104 #define GL_TEXTURE_ENV_MODE 0x2200 #define GL_TEXTURE_ENV_COLOR 0x2201 #define GL_TEXTURE_ENV 0x2300 #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 #define GL_NEAREST_MIPMAP_NEAREST 0x2700 #define GL_LINEAR_MIPMAP_NEAREST 0x2701 #define GL_NEAREST_MIPMAP_LINEAR 0x2702 #define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 #define GL_GENERATE_MIPMAP 0x8191 #define GL_TEXTURE0 0x84C0 #define GL_TEXTURE1 0x84C1 #define GL_TEXTURE2 0x84C2 #define GL_TEXTURE3 0x84C3 #define GL_TEXTURE4 0x84C4 #define GL_TEXTURE5 0x84C5 #define GL_TEXTURE6 0x84C6 #define GL_TEXTURE7 0x84C7 #define GL_TEXTURE8 0x84C8 #define GL_TEXTURE9 0x84C9 #define GL_TEXTURE10 0x84CA #define GL_TEXTURE11 0x84CB #define GL_TEXTURE12 0x84CC #define GL_TEXTURE13 0x84CD #define GL_TEXTURE14 0x84CE #define GL_TEXTURE15 0x84CF #define GL_TEXTURE16 0x84D0 #define GL_TEXTURE17 0x84D1 #define GL_TEXTURE18 0x84D2 #define GL_TEXTURE19 0x84D3 #define GL_TEXTURE20 0x84D4 #define GL_TEXTURE21 0x84D5 #define GL_TEXTURE22 0x84D6 #define GL_TEXTURE23 0x84D7 #define GL_TEXTURE24 0x84D8 #define GL_TEXTURE25 0x84D9 #define GL_TEXTURE26 0x84DA #define GL_TEXTURE27 0x84DB #define GL_TEXTURE28 0x84DC #define GL_TEXTURE29 0x84DD #define GL_TEXTURE30 0x84DE #define GL_TEXTURE31 0x84DF #define GL_ACTIVE_TEXTURE 0x84E0 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 #define GL_REPEAT 0x2901 #define GL_CLAMP_TO_EDGE 0x812F #define GL_LIGHT0 0x4000 #define GL_LIGHT1 0x4001 #define GL_LIGHT2 0x4002 #define GL_LIGHT3 0x4003 #define GL_LIGHT4 0x4004 #define GL_LIGHT5 0x4005 #define GL_LIGHT6 0x4006 #define GL_LIGHT7 0x4007 #define GL_ARRAY_BUFFER 0x8892 #define GL_ELEMENT_ARRAY_BUFFER 0x8893 #define GL_ARRAY_BUFFER_BINDING 0x8894 #define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 #define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 #define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 #define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A #define GL_STATIC_DRAW 0x88E4 #define GL_DYNAMIC_DRAW 0x88E8 #define GL_BUFFER_SIZE 0x8764 #define GL_BUFFER_USAGE 0x8765 #define GL_SUBTRACT 0x84E7 #define GL_COMBINE 0x8570 #define GL_COMBINE_RGB 0x8571 #define GL_COMBINE_ALPHA 0x8572 #define GL_RGB_SCALE 0x8573 #define GL_ADD_SIGNED 0x8574 #define GL_INTERPOLATE 0x8575 #define GL_CONSTANT 0x8576 #define GL_PRIMARY_COLOR 0x8577 #define GL_PREVIOUS 0x8578 #define GL_OPERAND0_RGB 0x8590 #define GL_OPERAND1_RGB 0x8591 #define GL_OPERAND2_RGB 0x8592 #define GL_OPERAND0_ALPHA 0x8598 #define GL_OPERAND1_ALPHA 0x8599 #define GL_OPERAND2_ALPHA 0x859A #define GL_ALPHA_SCALE 0x0D1C #define GL_SRC0_RGB 0x8580 #define GL_SRC1_RGB 0x8581 #define GL_SRC2_RGB 0x8582 #define GL_SRC0_ALPHA 0x8588 #define GL_SRC1_ALPHA 0x8589 #define GL_SRC2_ALPHA 0x858A #define GL_DOT3_RGB 0x86AE #define GL_DOT3_RGBA 0x86AF GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLfloat ref); GL_API void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_API void GL_APIENTRY glClearDepthf (GLfloat d); GL_API void GL_APIENTRY glClipPlanef (GLenum p, const GLfloat *eqn); GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); GL_API void GL_APIENTRY glDepthRangef (GLfloat n, GLfloat f); GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param); GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glFrustumf (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); GL_API void GL_APIENTRY glGetClipPlanef (GLenum plane, GLfloat *equation); GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *data); GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param); GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glLineWidth (GLfloat width); GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m); GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m); GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); GL_API void GL_APIENTRY glOrthof (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param); GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glPointSize (GLfloat size); GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); GL_API void GL_APIENTRY glActiveTexture (GLenum texture); GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLfixed ref); GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer); GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture); GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage); GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data); GL_API void GL_APIENTRY glClear (GLbitfield mask); GL_API void GL_APIENTRY glClearColorx (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GL_API void GL_APIENTRY glClearDepthx (GLfixed depth); GL_API void GL_APIENTRY glClearStencil (GLint s); GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture); GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation); GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glCullFace (GLenum mode); GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); GL_API void GL_APIENTRY glDepthFunc (GLenum func); GL_API void GL_APIENTRY glDepthMask (GLboolean flag); GL_API void GL_APIENTRY glDepthRangex (GLfixed n, GLfixed f); GL_API void GL_APIENTRY glDisable (GLenum cap); GL_API void GL_APIENTRY glDisableClientState (GLenum array); GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices); GL_API void GL_APIENTRY glEnable (GLenum cap); GL_API void GL_APIENTRY glEnableClientState (GLenum array); GL_API void GL_APIENTRY glFinish (void); GL_API void GL_APIENTRY glFlush (void); GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *param); GL_API void GL_APIENTRY glFrontFace (GLenum mode); GL_API void GL_APIENTRY glFrustumx (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *data); GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetClipPlanex (GLenum plane, GLfixed *equation); GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures); GL_API GLenum GL_APIENTRY glGetError (void); GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data); GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetPointerv (GLenum pname, void **params); GL_API const GLubyte *GL_APIENTRY glGetString (GLenum name); GL_API void GL_APIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetTexEnvxv (GLenum target, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode); GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer); GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap); GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture); GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *param); GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glLineWidthx (GLfixed width); GL_API void GL_APIENTRY glLoadIdentity (void); GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m); GL_API void GL_APIENTRY glLogicOp (GLenum opcode); GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *param); GL_API void GL_APIENTRY glMatrixMode (GLenum mode); GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m); GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz); GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const void *pointer); GL_API void GL_APIENTRY glOrthox (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param); GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glPointSizex (GLfixed size); GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units); GL_API void GL_APIENTRY glPopMatrix (void); GL_API void GL_APIENTRY glPushMatrix (void); GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glSampleCoverage (GLfloat value, GLboolean invert); GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert); GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glShadeModel (GLenum mode); GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); GL_API void GL_APIENTRY glStencilMask (GLuint mask); GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer); GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); #endif /* GL_VERSION_ES_CM_1_0 */ # 530 "../mesa/include/GLES/gl.h" #ifndef GL_OES_compressed_paletted_texture #define GL_OES_compressed_paletted_texture 1 #define GL_PALETTE4_RGB8_OES 0x8B90 #define GL_PALETTE4_RGBA8_OES 0x8B91 #define GL_PALETTE4_R5_G6_B5_OES 0x8B92 #define GL_PALETTE4_RGBA4_OES 0x8B93 #define GL_PALETTE4_RGB5_A1_OES 0x8B94 #define GL_PALETTE8_RGB8_OES 0x8B95 #define GL_PALETTE8_RGBA8_OES 0x8B96 #define GL_PALETTE8_R5_G6_B5_OES 0x8B97 #define GL_PALETTE8_RGBA4_OES 0x8B98 #define GL_PALETTE8_RGB5_A1_OES 0x8B99 #endif /* GL_OES_compressed_paletted_texture */ # 544 "../mesa/include/GLES/gl.h" #ifndef GL_OES_point_size_array #define GL_OES_point_size_array 1 #define GL_POINT_SIZE_ARRAY_OES 0x8B9C #define GL_POINT_SIZE_ARRAY_TYPE_OES 0x898A #define GL_POINT_SIZE_ARRAY_STRIDE_OES 0x898B #define GL_POINT_SIZE_ARRAY_POINTER_OES 0x898C #define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8B9F GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const void *pointer); #endif /* GL_OES_point_size_array */ # 554 "../mesa/include/GLES/gl.h" #ifndef GL_OES_point_sprite #define GL_OES_point_sprite 1 #define GL_POINT_SPRITE_OES 0x8861 #define GL_COORD_REPLACE_OES 0x8862 #endif /* GL_OES_point_sprite */ # 560 "../mesa/include/GLES/gl.h" #ifndef GL_OES_read_format #define GL_OES_read_format 1 #define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A #define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B #endif /* GL_OES_read_format */ # 566 "../mesa/include/GLES/gl.h" #ifdef __cplusplus } #endif # 570 "../mesa/include/GLES/gl.h" #endif # 572 "../mesa/include/GLES/gl.h" #endif /* gl.h expanded by -frewrite-includes */ # 79 "../mesa/src/util/glheader.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* glext.h expanded by -frewrite-includes */ #include "GLES/glext.h" #else /* glext.h expanded by -frewrite-includes */ # 79 "../mesa/src/util/glheader.h" # 1 "../mesa/include/GLES/glext.h" 1 #ifndef __gles1_glext_h_ #define __gles1_glext_h_ 1 #ifdef __cplusplus extern "C" { #endif # 7 "../mesa/include/GLES/glext.h" /* ** Copyright 2013-2020 The Khronos Group Inc. ** SPDX-License-Identifier: MIT ** ** This header is generated from the Khronos OpenGL / OpenGL ES XML ** API Registry. The current version of the Registry, generator scripts ** used to make the header, and the header can be found at ** https://github.com/KhronosGroup/OpenGL-Registry */ #ifndef GL_APIENTRYP #define GL_APIENTRYP GL_APIENTRY* #endif # 21 "../mesa/include/GLES/glext.h" /* Generated on date 20230220 */ /* Generated C header for: * API: gles1 * Profile: common * Versions considered: .* * Versions emitted: _nomatch_^ * Default extensions included: gles1 * Additional extensions included: _nomatch_^ * Extensions removed: ^(GL_OES_read_format|GL_OES_compressed_paletted_texture|GL_OES_point_size_array|GL_OES_point_sprite)$ */ #ifndef GL_KHR_debug #define GL_KHR_debug 1 #endif /* GL_KHR_debug */ # 37 "../mesa/include/GLES/glext.h" #ifndef GL_OES_EGL_image #define GL_OES_EGL_image 1 typedef void *GLeglImageOES; typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image); typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image); GL_API void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image); #endif # 47 "../mesa/include/GLES/glext.h" #endif /* GL_OES_EGL_image */ # 48 "../mesa/include/GLES/glext.h" #ifndef GL_OES_EGL_image_external #define GL_OES_EGL_image_external 1 #define GL_TEXTURE_EXTERNAL_OES 0x8D65 #define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67 #define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68 #endif /* GL_OES_EGL_image_external */ # 55 "../mesa/include/GLES/glext.h" #ifndef GL_OES_blend_equation_separate #define GL_OES_blend_equation_separate 1 #define GL_BLEND_EQUATION_RGB_OES 0x8009 #define GL_BLEND_EQUATION_ALPHA_OES 0x883D typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha); #endif # 64 "../mesa/include/GLES/glext.h" #endif /* GL_OES_blend_equation_separate */ # 65 "../mesa/include/GLES/glext.h" #ifndef GL_OES_blend_func_separate #define GL_OES_blend_func_separate 1 #define GL_BLEND_DST_RGB_OES 0x80C8 #define GL_BLEND_SRC_RGB_OES 0x80C9 #define GL_BLEND_DST_ALPHA_OES 0x80CA #define GL_BLEND_SRC_ALPHA_OES 0x80CB typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBlendFuncSeparateOES (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); #endif # 76 "../mesa/include/GLES/glext.h" #endif /* GL_OES_blend_func_separate */ # 77 "../mesa/include/GLES/glext.h" #ifndef GL_OES_blend_subtract #define GL_OES_blend_subtract 1 #define GL_BLEND_EQUATION_OES 0x8009 #define GL_FUNC_ADD_OES 0x8006 #define GL_FUNC_SUBTRACT_OES 0x800A #define GL_FUNC_REVERSE_SUBTRACT_OES 0x800B typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONOESPROC) (GLenum mode); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBlendEquationOES (GLenum mode); #endif # 88 "../mesa/include/GLES/glext.h" #endif /* GL_OES_blend_subtract */ # 89 "../mesa/include/GLES/glext.h" #ifndef GL_OES_byte_coordinates #define GL_OES_byte_coordinates 1 #endif /* GL_OES_byte_coordinates */ # 93 "../mesa/include/GLES/glext.h" #ifndef GL_OES_compressed_ETC1_RGB8_sub_texture #define GL_OES_compressed_ETC1_RGB8_sub_texture 1 #endif /* GL_OES_compressed_ETC1_RGB8_sub_texture */ # 97 "../mesa/include/GLES/glext.h" #ifndef GL_OES_compressed_ETC1_RGB8_texture #define GL_OES_compressed_ETC1_RGB8_texture 1 #define GL_ETC1_RGB8_OES 0x8D64 #endif /* GL_OES_compressed_ETC1_RGB8_texture */ # 102 "../mesa/include/GLES/glext.h" #ifndef GL_OES_depth24 #define GL_OES_depth24 1 #define GL_DEPTH_COMPONENT24_OES 0x81A6 #endif /* GL_OES_depth24 */ # 107 "../mesa/include/GLES/glext.h" #ifndef GL_OES_depth32 #define GL_OES_depth32 1 #define GL_DEPTH_COMPONENT32_OES 0x81A7 #endif /* GL_OES_depth32 */ # 112 "../mesa/include/GLES/glext.h" #ifndef GL_OES_draw_texture #define GL_OES_draw_texture 1 #define GL_TEXTURE_CROP_RECT_OES 0x8B9D typedef void (GL_APIENTRYP PFNGLDRAWTEXSOESPROC) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); typedef void (GL_APIENTRYP PFNGLDRAWTEXIOESPROC) (GLint x, GLint y, GLint z, GLint width, GLint height); typedef void (GL_APIENTRYP PFNGLDRAWTEXXOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); typedef void (GL_APIENTRYP PFNGLDRAWTEXSVOESPROC) (const GLshort *coords); typedef void (GL_APIENTRYP PFNGLDRAWTEXIVOESPROC) (const GLint *coords); typedef void (GL_APIENTRYP PFNGLDRAWTEXXVOESPROC) (const GLfixed *coords); typedef void (GL_APIENTRYP PFNGLDRAWTEXFOESPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); typedef void (GL_APIENTRYP PFNGLDRAWTEXFVOESPROC) (const GLfloat *coords); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); GL_API void GL_APIENTRY glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height); GL_API void GL_APIENTRY glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); GL_API void GL_APIENTRY glDrawTexsvOES (const GLshort *coords); GL_API void GL_APIENTRY glDrawTexivOES (const GLint *coords); GL_API void GL_APIENTRY glDrawTexxvOES (const GLfixed *coords); GL_API void GL_APIENTRY glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); GL_API void GL_APIENTRY glDrawTexfvOES (const GLfloat *coords); #endif # 134 "../mesa/include/GLES/glext.h" #endif /* GL_OES_draw_texture */ # 135 "../mesa/include/GLES/glext.h" #ifndef GL_OES_element_index_uint #define GL_OES_element_index_uint 1 #define GL_UNSIGNED_INT 0x1405 #endif /* GL_OES_element_index_uint */ # 140 "../mesa/include/GLES/glext.h" #ifndef GL_OES_extended_matrix_palette #define GL_OES_extended_matrix_palette 1 #endif /* GL_OES_extended_matrix_palette */ # 144 "../mesa/include/GLES/glext.h" #ifndef GL_OES_fbo_render_mipmap #define GL_OES_fbo_render_mipmap 1 #endif /* GL_OES_fbo_render_mipmap */ # 148 "../mesa/include/GLES/glext.h" #ifndef GL_OES_fixed_point #define GL_OES_fixed_point 1 #define GL_FIXED_OES 0x140C typedef void (GL_APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLfixed ref); typedef void (GL_APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLfixed depth); typedef void (GL_APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation); typedef void (GL_APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLfixed n, GLfixed f); typedef void (GL_APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *param); typedef void (GL_APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum plane, GLfixed *equation); typedef void (GL_APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *param); typedef void (GL_APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width); typedef void (GL_APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m); typedef void (GL_APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *param); typedef void (GL_APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m); typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); typedef void (GL_APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz); typedef void (GL_APIENTRYP PFNGLORTHOXOESPROC) (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size); typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units); typedef void (GL_APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); typedef void (GL_APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (GL_APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params); typedef void (GL_APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z); typedef void (GL_APIENTRYP PFNGLGETLIGHTXVOESPROC) (GLenum light, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLGETMATERIALXVOESPROC) (GLenum face, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXOESPROC) (GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXOESPROC) (GLclampx value, GLboolean invert); typedef void (GL_APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params); typedef void (GL_APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param); typedef void (GL_APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glAlphaFuncxOES (GLenum func, GLfixed ref); GL_API void GL_APIENTRY glClearColorxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GL_API void GL_APIENTRY glClearDepthxOES (GLfixed depth); GL_API void GL_APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation); GL_API void GL_APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); GL_API void GL_APIENTRY glDepthRangexOES (GLfixed n, GLfixed f); GL_API void GL_APIENTRY glFogxOES (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glFogxvOES (GLenum pname, const GLfixed *param); GL_API void GL_APIENTRY glFrustumxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); GL_API void GL_APIENTRY glGetClipPlanexOES (GLenum plane, GLfixed *equation); GL_API void GL_APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetTexEnvxvOES (GLenum target, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glLightModelxOES (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *param); GL_API void GL_APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glLineWidthxOES (GLfixed width); GL_API void GL_APIENTRY glLoadMatrixxOES (const GLfixed *m); GL_API void GL_APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *param); GL_API void GL_APIENTRY glMultMatrixxOES (const GLfixed *m); GL_API void GL_APIENTRY glMultiTexCoord4xOES (GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); GL_API void GL_APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz); GL_API void GL_APIENTRY glOrthoxOES (GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); GL_API void GL_APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glPointSizexOES (GLfixed size); GL_API void GL_APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units); GL_API void GL_APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params); GL_API void GL_APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z); GL_API void GL_APIENTRY glGetLightxvOES (GLenum light, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glGetMaterialxvOES (GLenum face, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glPointParameterxOES (GLenum pname, GLfixed param); GL_API void GL_APIENTRY glSampleCoveragexOES (GLclampx value, GLboolean invert); GL_API void GL_APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params); GL_API void GL_APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param); GL_API void GL_APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params); #endif # 238 "../mesa/include/GLES/glext.h" #endif /* GL_OES_fixed_point */ # 239 "../mesa/include/GLES/glext.h" #ifndef GL_OES_framebuffer_object #define GL_OES_framebuffer_object 1 #define GL_NONE_OES 0 #define GL_FRAMEBUFFER_OES 0x8D40 #define GL_RENDERBUFFER_OES 0x8D41 #define GL_RGBA4_OES 0x8056 #define GL_RGB5_A1_OES 0x8057 #define GL_RGB565_OES 0x8D62 #define GL_DEPTH_COMPONENT16_OES 0x81A5 #define GL_RENDERBUFFER_WIDTH_OES 0x8D42 #define GL_RENDERBUFFER_HEIGHT_OES 0x8D43 #define GL_RENDERBUFFER_INTERNAL_FORMAT_OES 0x8D44 #define GL_RENDERBUFFER_RED_SIZE_OES 0x8D50 #define GL_RENDERBUFFER_GREEN_SIZE_OES 0x8D51 #define GL_RENDERBUFFER_BLUE_SIZE_OES 0x8D52 #define GL_RENDERBUFFER_ALPHA_SIZE_OES 0x8D53 #define GL_RENDERBUFFER_DEPTH_SIZE_OES 0x8D54 #define GL_RENDERBUFFER_STENCIL_SIZE_OES 0x8D55 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES 0x8CD0 #define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES 0x8CD1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES 0x8CD2 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8CD3 #define GL_COLOR_ATTACHMENT0_OES 0x8CE0 #define GL_DEPTH_ATTACHMENT_OES 0x8D00 #define GL_STENCIL_ATTACHMENT_OES 0x8D20 #define GL_FRAMEBUFFER_COMPLETE_OES 0x8CD5 #define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES 0x8CD6 #define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES 0x8CD7 #define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES 0x8CD9 #define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES 0x8CDA #define GL_FRAMEBUFFER_UNSUPPORTED_OES 0x8CDD #define GL_FRAMEBUFFER_BINDING_OES 0x8CA6 #define GL_RENDERBUFFER_BINDING_OES 0x8CA7 #define GL_MAX_RENDERBUFFER_SIZE_OES 0x84E8 #define GL_INVALID_FRAMEBUFFER_OPERATION_OES 0x0506 typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint *renderbuffers); typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint *params); typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer); typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint *framebuffers); typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint *framebuffers); typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPOESPROC) (GLenum target); #ifdef GL_GLEXT_PROTOTYPES GL_API GLboolean GL_APIENTRY glIsRenderbufferOES (GLuint renderbuffer); GL_API void GL_APIENTRY glBindRenderbufferOES (GLenum target, GLuint renderbuffer); GL_API void GL_APIENTRY glDeleteRenderbuffersOES (GLsizei n, const GLuint *renderbuffers); GL_API void GL_APIENTRY glGenRenderbuffersOES (GLsizei n, GLuint *renderbuffers); GL_API void GL_APIENTRY glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glGetRenderbufferParameterivOES (GLenum target, GLenum pname, GLint *params); GL_API GLboolean GL_APIENTRY glIsFramebufferOES (GLuint framebuffer); GL_API void GL_APIENTRY glBindFramebufferOES (GLenum target, GLuint framebuffer); GL_API void GL_APIENTRY glDeleteFramebuffersOES (GLsizei n, const GLuint *framebuffers); GL_API void GL_APIENTRY glGenFramebuffersOES (GLsizei n, GLuint *framebuffers); GL_API GLenum GL_APIENTRY glCheckFramebufferStatusOES (GLenum target); GL_API void GL_APIENTRY glFramebufferRenderbufferOES (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); GL_API void GL_APIENTRY glFramebufferTexture2DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); GL_API void GL_APIENTRY glGetFramebufferAttachmentParameterivOES (GLenum target, GLenum attachment, GLenum pname, GLint *params); GL_API void GL_APIENTRY glGenerateMipmapOES (GLenum target); #endif # 307 "../mesa/include/GLES/glext.h" #endif /* GL_OES_framebuffer_object */ # 308 "../mesa/include/GLES/glext.h" #ifndef GL_OES_mapbuffer #define GL_OES_mapbuffer 1 #define GL_WRITE_ONLY_OES 0x88B9 #define GL_BUFFER_ACCESS_OES 0x88BB #define GL_BUFFER_MAPPED_OES 0x88BC #define GL_BUFFER_MAP_POINTER_OES 0x88BD typedef void *(GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access); typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target); typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, void **params); #ifdef GL_GLEXT_PROTOTYPES GL_API void *GL_APIENTRY glMapBufferOES (GLenum target, GLenum access); GL_API GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target); GL_API void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, void **params); #endif # 323 "../mesa/include/GLES/glext.h" #endif /* GL_OES_mapbuffer */ # 324 "../mesa/include/GLES/glext.h" #ifndef GL_OES_matrix_get #define GL_OES_matrix_get 1 #define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES 0x898D #define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898E #define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES 0x898F #endif /* GL_OES_matrix_get */ # 331 "../mesa/include/GLES/glext.h" #ifndef GL_OES_matrix_palette #define GL_OES_matrix_palette 1 #define GL_MAX_VERTEX_UNITS_OES 0x86A4 #define GL_MAX_PALETTE_MATRICES_OES 0x8842 #define GL_MATRIX_PALETTE_OES 0x8840 #define GL_MATRIX_INDEX_ARRAY_OES 0x8844 #define GL_WEIGHT_ARRAY_OES 0x86AD #define GL_CURRENT_PALETTE_MATRIX_OES 0x8843 #define GL_MATRIX_INDEX_ARRAY_SIZE_OES 0x8846 #define GL_MATRIX_INDEX_ARRAY_TYPE_OES 0x8847 #define GL_MATRIX_INDEX_ARRAY_STRIDE_OES 0x8848 #define GL_MATRIX_INDEX_ARRAY_POINTER_OES 0x8849 #define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8B9E #define GL_WEIGHT_ARRAY_SIZE_OES 0x86AB #define GL_WEIGHT_ARRAY_TYPE_OES 0x86A9 #define GL_WEIGHT_ARRAY_STRIDE_OES 0x86AA #define GL_WEIGHT_ARRAY_POINTER_OES 0x86AC #define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES 0x889E typedef void (GL_APIENTRYP PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint matrixpaletteindex); typedef void (GL_APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void); typedef void (GL_APIENTRYP PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); typedef void (GL_APIENTRYP PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const void *pointer); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glCurrentPaletteMatrixOES (GLuint matrixpaletteindex); GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOES (void); GL_API void GL_APIENTRY glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, const void *pointer); GL_API void GL_APIENTRY glWeightPointerOES (GLint size, GLenum type, GLsizei stride, const void *pointer); #endif # 360 "../mesa/include/GLES/glext.h" #endif /* GL_OES_matrix_palette */ # 361 "../mesa/include/GLES/glext.h" #ifndef GL_OES_packed_depth_stencil #define GL_OES_packed_depth_stencil 1 #define GL_DEPTH_STENCIL_OES 0x84F9 #define GL_UNSIGNED_INT_24_8_OES 0x84FA #define GL_DEPTH24_STENCIL8_OES 0x88F0 #endif /* GL_OES_packed_depth_stencil */ # 368 "../mesa/include/GLES/glext.h" #ifndef GL_OES_query_matrix #define GL_OES_query_matrix 1 typedef GLbitfield (GL_APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed *mantissa, GLint *exponent); #ifdef GL_GLEXT_PROTOTYPES GL_API GLbitfield GL_APIENTRY glQueryMatrixxOES (GLfixed *mantissa, GLint *exponent); #endif # 375 "../mesa/include/GLES/glext.h" #endif /* GL_OES_query_matrix */ # 376 "../mesa/include/GLES/glext.h" #ifndef GL_OES_required_internalformat #define GL_OES_required_internalformat 1 #define GL_ALPHA8_OES 0x803C #define GL_LUMINANCE4_ALPHA4_OES 0x8043 #define GL_LUMINANCE8_ALPHA8_OES 0x8045 #define GL_LUMINANCE8_OES 0x8040 #define GL_RGB8_OES 0x8051 #define GL_RGBA8_OES 0x8058 #define GL_RGB10_EXT 0x8052 #define GL_RGB10_A2_EXT 0x8059 #endif /* GL_OES_required_internalformat */ # 388 "../mesa/include/GLES/glext.h" #ifndef GL_OES_rgb8_rgba8 #define GL_OES_rgb8_rgba8 1 #endif /* GL_OES_rgb8_rgba8 */ # 392 "../mesa/include/GLES/glext.h" #ifndef GL_OES_single_precision #define GL_OES_single_precision 1 typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth); typedef void (GL_APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation); typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf n, GLclampf f); typedef void (GL_APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum plane, GLfloat *equation); typedef void (GL_APIENTRYP PFNGLORTHOFOESPROC) (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glClearDepthfOES (GLclampf depth); GL_API void GL_APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation); GL_API void GL_APIENTRY glDepthRangefOES (GLclampf n, GLclampf f); GL_API void GL_APIENTRY glFrustumfOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); GL_API void GL_APIENTRY glGetClipPlanefOES (GLenum plane, GLfloat *equation); GL_API void GL_APIENTRY glOrthofOES (GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f); #endif # 409 "../mesa/include/GLES/glext.h" #endif /* GL_OES_single_precision */ # 410 "../mesa/include/GLES/glext.h" #ifndef GL_OES_stencil1 #define GL_OES_stencil1 1 #define GL_STENCIL_INDEX1_OES 0x8D46 #endif /* GL_OES_stencil1 */ # 415 "../mesa/include/GLES/glext.h" #ifndef GL_OES_stencil4 #define GL_OES_stencil4 1 #define GL_STENCIL_INDEX4_OES 0x8D47 #endif /* GL_OES_stencil4 */ # 420 "../mesa/include/GLES/glext.h" #ifndef GL_OES_stencil8 #define GL_OES_stencil8 1 #define GL_STENCIL_INDEX8_OES 0x8D48 #endif /* GL_OES_stencil8 */ # 425 "../mesa/include/GLES/glext.h" #ifndef GL_OES_stencil_wrap #define GL_OES_stencil_wrap 1 #define GL_INCR_WRAP_OES 0x8507 #define GL_DECR_WRAP_OES 0x8508 #endif /* GL_OES_stencil_wrap */ # 431 "../mesa/include/GLES/glext.h" #ifndef GL_OES_surfaceless_context #define GL_OES_surfaceless_context 1 #define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 #endif /* GL_OES_surfaceless_context */ # 436 "../mesa/include/GLES/glext.h" #ifndef GL_OES_texture_cube_map #define GL_OES_texture_cube_map 1 #define GL_NORMAL_MAP_OES 0x8511 #define GL_REFLECTION_MAP_OES 0x8512 #define GL_TEXTURE_CUBE_MAP_OES 0x8513 #define GL_TEXTURE_BINDING_CUBE_MAP_OES 0x8514 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851A #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES 0x851C #define GL_TEXTURE_GEN_MODE_OES 0x2500 #define GL_TEXTURE_GEN_STR_OES 0x8D60 typedef void (GL_APIENTRYP PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param); typedef void (GL_APIENTRYP PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params); typedef void (GL_APIENTRYP PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params); typedef void (GL_APIENTRYP PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glTexGenfOES (GLenum coord, GLenum pname, GLfloat param); GL_API void GL_APIENTRY glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat *params); GL_API void GL_APIENTRY glTexGeniOES (GLenum coord, GLenum pname, GLint param); GL_API void GL_APIENTRY glTexGenivOES (GLenum coord, GLenum pname, const GLint *params); GL_API void GL_APIENTRY glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat *params); GL_API void GL_APIENTRY glGetTexGenivOES (GLenum coord, GLenum pname, GLint *params); #endif # 466 "../mesa/include/GLES/glext.h" #endif /* GL_OES_texture_cube_map */ # 467 "../mesa/include/GLES/glext.h" #ifndef GL_OES_texture_env_crossbar #define GL_OES_texture_env_crossbar 1 #endif /* GL_OES_texture_env_crossbar */ # 471 "../mesa/include/GLES/glext.h" #ifndef GL_OES_texture_mirrored_repeat #define GL_OES_texture_mirrored_repeat 1 #define GL_MIRRORED_REPEAT_OES 0x8370 #endif /* GL_OES_texture_mirrored_repeat */ # 476 "../mesa/include/GLES/glext.h" #ifndef GL_OES_texture_npot #define GL_OES_texture_npot 1 #endif /* GL_OES_texture_npot */ # 480 "../mesa/include/GLES/glext.h" #ifndef GL_OES_vertex_array_object #define GL_OES_vertex_array_object 1 #define GL_VERTEX_ARRAY_BINDING_OES 0x85B5 typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array); typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays); typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glBindVertexArrayOES (GLuint array); GL_API void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays); GL_API void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); GL_API GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array); #endif # 494 "../mesa/include/GLES/glext.h" #endif /* GL_OES_vertex_array_object */ # 495 "../mesa/include/GLES/glext.h" #ifndef GL_AMD_compressed_3DC_texture #define GL_AMD_compressed_3DC_texture 1 #define GL_3DC_X_AMD 0x87F9 #define GL_3DC_XY_AMD 0x87FA #endif /* GL_AMD_compressed_3DC_texture */ # 501 "../mesa/include/GLES/glext.h" #ifndef GL_AMD_compressed_ATC_texture #define GL_AMD_compressed_ATC_texture 1 #define GL_ATC_RGB_AMD 0x8C92 #define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD 0x8C93 #define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE #endif /* GL_AMD_compressed_ATC_texture */ # 508 "../mesa/include/GLES/glext.h" #ifndef GL_APPLE_copy_texture_levels #define GL_APPLE_copy_texture_levels 1 typedef void (GL_APIENTRYP PFNGLCOPYTEXTURELEVELSAPPLEPROC) (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glCopyTextureLevelsAPPLE (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount); #endif # 515 "../mesa/include/GLES/glext.h" #endif /* GL_APPLE_copy_texture_levels */ # 516 "../mesa/include/GLES/glext.h" #ifndef GL_APPLE_framebuffer_multisample #define GL_APPLE_framebuffer_multisample 1 #define GL_RENDERBUFFER_SAMPLES_APPLE 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8D56 #define GL_MAX_SAMPLES_APPLE 0x8D57 #define GL_READ_FRAMEBUFFER_APPLE 0x8CA8 #define GL_DRAW_FRAMEBUFFER_APPLE 0x8CA9 #define GL_DRAW_FRAMEBUFFER_BINDING_APPLE 0x8CA6 #define GL_READ_FRAMEBUFFER_BINDING_APPLE 0x8CAA typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void); #endif # 532 "../mesa/include/GLES/glext.h" #endif /* GL_APPLE_framebuffer_multisample */ # 533 "../mesa/include/GLES/glext.h" #ifndef GL_APPLE_sync #define GL_APPLE_sync 1 typedef struct __GLsync *GLsync; typedef khronos_uint64_t GLuint64; typedef khronos_int64_t GLint64; #define GL_SYNC_OBJECT_APPLE 0x8A53 #define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE 0x9111 #define GL_OBJECT_TYPE_APPLE 0x9112 #define GL_SYNC_CONDITION_APPLE 0x9113 #define GL_SYNC_STATUS_APPLE 0x9114 #define GL_SYNC_FLAGS_APPLE 0x9115 #define GL_SYNC_FENCE_APPLE 0x9116 #define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117 #define GL_UNSIGNALED_APPLE 0x9118 #define GL_SIGNALED_APPLE 0x9119 #define GL_ALREADY_SIGNALED_APPLE 0x911A #define GL_TIMEOUT_EXPIRED_APPLE 0x911B #define GL_CONDITION_SATISFIED_APPLE 0x911C #define GL_WAIT_FAILED_APPLE 0x911D #define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE 0x00000001 #define GL_TIMEOUT_IGNORED_APPLE 0xFFFFFFFFFFFFFFFFull typedef GLsync (GL_APIENTRYP PFNGLFENCESYNCAPPLEPROC) (GLenum condition, GLbitfield flags); typedef GLboolean (GL_APIENTRYP PFNGLISSYNCAPPLEPROC) (GLsync sync); typedef void (GL_APIENTRYP PFNGLDELETESYNCAPPLEPROC) (GLsync sync); typedef GLenum (GL_APIENTRYP PFNGLCLIENTWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLWAITSYNCAPPLEPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); typedef void (GL_APIENTRYP PFNGLGETINTEGER64VAPPLEPROC) (GLenum pname, GLint64 *params); typedef void (GL_APIENTRYP PFNGLGETSYNCIVAPPLEPROC) (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); #ifdef GL_GLEXT_PROTOTYPES GL_API GLsync GL_APIENTRY glFenceSyncAPPLE (GLenum condition, GLbitfield flags); GL_API GLboolean GL_APIENTRY glIsSyncAPPLE (GLsync sync); GL_API void GL_APIENTRY glDeleteSyncAPPLE (GLsync sync); GL_API GLenum GL_APIENTRY glClientWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_API void GL_APIENTRY glWaitSyncAPPLE (GLsync sync, GLbitfield flags, GLuint64 timeout); GL_API void GL_APIENTRY glGetInteger64vAPPLE (GLenum pname, GLint64 *params); GL_API void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); #endif # 571 "../mesa/include/GLES/glext.h" #endif /* GL_APPLE_sync */ # 572 "../mesa/include/GLES/glext.h" #ifndef GL_APPLE_texture_2D_limited_npot #define GL_APPLE_texture_2D_limited_npot 1 #endif /* GL_APPLE_texture_2D_limited_npot */ # 576 "../mesa/include/GLES/glext.h" #ifndef GL_APPLE_texture_format_BGRA8888 #define GL_APPLE_texture_format_BGRA8888 1 #define GL_BGRA_EXT 0x80E1 #define GL_BGRA8_EXT 0x93A1 #endif /* GL_APPLE_texture_format_BGRA8888 */ # 582 "../mesa/include/GLES/glext.h" #ifndef GL_APPLE_texture_max_level #define GL_APPLE_texture_max_level 1 #define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D #endif /* GL_APPLE_texture_max_level */ # 587 "../mesa/include/GLES/glext.h" #ifndef GL_ARM_rgba8 #define GL_ARM_rgba8 1 #endif /* GL_ARM_rgba8 */ # 591 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_blend_minmax #define GL_EXT_blend_minmax 1 #define GL_MIN_EXT 0x8007 #define GL_MAX_EXT 0x8008 #endif /* GL_EXT_blend_minmax */ # 597 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_debug_marker #define GL_EXT_debug_marker 1 typedef char GLchar; typedef void (GL_APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (GL_APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const GLchar *marker); typedef void (GL_APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glInsertEventMarkerEXT (GLsizei length, const GLchar *marker); GL_API void GL_APIENTRY glPushGroupMarkerEXT (GLsizei length, const GLchar *marker); GL_API void GL_APIENTRY glPopGroupMarkerEXT (void); #endif # 609 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_debug_marker */ # 610 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_discard_framebuffer #define GL_EXT_discard_framebuffer 1 #define GL_COLOR_EXT 0x1800 #define GL_DEPTH_EXT 0x1801 #define GL_STENCIL_EXT 0x1802 typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments); #endif # 620 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_discard_framebuffer */ # 621 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_map_buffer_range #define GL_EXT_map_buffer_range 1 #define GL_MAP_READ_BIT_EXT 0x0001 #define GL_MAP_WRITE_BIT_EXT 0x0002 #define GL_MAP_INVALIDATE_RANGE_BIT_EXT 0x0004 #define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x0008 #define GL_MAP_FLUSH_EXPLICIT_BIT_EXT 0x0010 #define GL_MAP_UNSYNCHRONIZED_BIT_EXT 0x0020 typedef void *(GL_APIENTRYP PFNGLMAPBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); typedef void (GL_APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr length); #ifdef GL_GLEXT_PROTOTYPES GL_API void *GL_APIENTRY glMapBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GL_API void GL_APIENTRY glFlushMappedBufferRangeEXT (GLenum target, GLintptr offset, GLsizeiptr length); #endif # 636 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_map_buffer_range */ # 637 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); GL_API void GL_APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount); #endif # 646 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_multi_draw_arrays */ # 647 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_multisampled_render_to_texture #define GL_EXT_multisampled_render_to_texture 1 #define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C #define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 #define GL_MAX_SAMPLES_EXT 0x8D57 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif # 660 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_multisampled_render_to_texture */ # 661 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_read_format_bgra #define GL_EXT_read_format_bgra 1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365 #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366 #endif /* GL_EXT_read_format_bgra */ # 667 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_robustness #define GL_EXT_robustness 1 #define GL_GUILTY_CONTEXT_RESET_EXT 0x8253 #define GL_INNOCENT_CONTEXT_RESET_EXT 0x8254 #define GL_UNKNOWN_CONTEXT_RESET_EXT 0x8255 #define GL_CONTEXT_ROBUST_ACCESS_EXT 0x90F3 #define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256 #define GL_LOSE_CONTEXT_ON_RESET_EXT 0x8252 #define GL_NO_RESET_NOTIFICATION_EXT 0x8261 typedef GLenum (GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSEXTPROC) (void); typedef void (GL_APIENTRYP PFNGLREADNPIXELSEXTPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVEXTPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); #ifdef GL_GLEXT_PROTOTYPES GL_API GLenum GL_APIENTRY glGetGraphicsResetStatusEXT (void); GL_API void GL_APIENTRY glReadnPixelsEXT (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); GL_API void GL_APIENTRY glGetnUniformfvEXT (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); GL_API void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location, GLsizei bufSize, GLint *params); #endif # 687 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_robustness */ # 688 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_sRGB #define GL_EXT_sRGB 1 #define GL_SRGB_EXT 0x8C40 #define GL_SRGB_ALPHA_EXT 0x8C42 #define GL_SRGB8_ALPHA8_EXT 0x8C43 #define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 #endif /* GL_EXT_sRGB */ # 696 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_texture_compression_dxt1 #define GL_EXT_texture_compression_dxt1 1 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 #endif /* GL_EXT_texture_compression_dxt1 */ # 702 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_texture_filter_anisotropic #define GL_EXT_texture_filter_anisotropic 1 #define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF #endif /* GL_EXT_texture_filter_anisotropic */ # 708 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_texture_format_BGRA8888 #define GL_EXT_texture_format_BGRA8888 1 #endif /* GL_EXT_texture_format_BGRA8888 */ # 712 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_texture_lod_bias #define GL_EXT_texture_lod_bias 1 #define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD #define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 #define GL_TEXTURE_LOD_BIAS_EXT 0x8501 #endif /* GL_EXT_texture_lod_bias */ # 719 "../mesa/include/GLES/glext.h" #ifndef GL_EXT_texture_storage #define GL_EXT_texture_storage 1 #define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F #define GL_ALPHA8_EXT 0x803C #define GL_LUMINANCE8_EXT 0x8040 #define GL_LUMINANCE8_ALPHA8_EXT 0x8045 #define GL_RGBA32F_EXT 0x8814 #define GL_RGB32F_EXT 0x8815 #define GL_ALPHA32F_EXT 0x8816 #define GL_LUMINANCE32F_EXT 0x8818 #define GL_LUMINANCE_ALPHA32F_EXT 0x8819 #define GL_RGBA16F_EXT 0x881A #define GL_RGB16F_EXT 0x881B #define GL_ALPHA16F_EXT 0x881C #define GL_LUMINANCE16F_EXT 0x881E #define GL_LUMINANCE_ALPHA16F_EXT 0x881F #define GL_R8_EXT 0x8229 #define GL_RG8_EXT 0x822B #define GL_R32F_EXT 0x822E #define GL_RG32F_EXT 0x8230 #define GL_R16F_EXT 0x822D #define GL_RG16F_EXT 0x822F typedef void (GL_APIENTRYP PFNGLTEXSTORAGE1DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE2DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXSTORAGE3DEXTPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glTexStorage1DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_API void GL_APIENTRY glTexStorage2DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glTexStorage3DEXT (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); GL_API void GL_APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); GL_API void GL_APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); #endif # 756 "../mesa/include/GLES/glext.h" #endif /* GL_EXT_texture_storage */ # 757 "../mesa/include/GLES/glext.h" #ifndef GL_IMG_multisampled_render_to_texture #define GL_IMG_multisampled_render_to_texture 1 #define GL_RENDERBUFFER_SAMPLES_IMG 0x9133 #define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134 #define GL_MAX_SAMPLES_IMG 0x9135 #define GL_TEXTURE_SAMPLES_IMG 0x9136 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); #endif # 770 "../mesa/include/GLES/glext.h" #endif /* GL_IMG_multisampled_render_to_texture */ # 771 "../mesa/include/GLES/glext.h" #ifndef GL_IMG_read_format #define GL_IMG_read_format 1 #define GL_BGRA_IMG 0x80E1 #define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365 #endif /* GL_IMG_read_format */ # 777 "../mesa/include/GLES/glext.h" #ifndef GL_IMG_texture_compression_pvrtc #define GL_IMG_texture_compression_pvrtc 1 #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG 0x8C00 #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG 0x8C01 #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8C02 #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8C03 #endif /* GL_IMG_texture_compression_pvrtc */ # 785 "../mesa/include/GLES/glext.h" #ifndef GL_IMG_texture_env_enhanced_fixed_function #define GL_IMG_texture_env_enhanced_fixed_function 1 #define GL_MODULATE_COLOR_IMG 0x8C04 #define GL_RECIP_ADD_SIGNED_ALPHA_IMG 0x8C05 #define GL_TEXTURE_ALPHA_MODULATE_IMG 0x8C06 #define GL_FACTOR_ALPHA_MODULATE_IMG 0x8C07 #define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8C08 #define GL_ADD_BLEND_IMG 0x8C09 #define GL_DOT3_RGBA_IMG 0x86AF #endif /* GL_IMG_texture_env_enhanced_fixed_function */ # 796 "../mesa/include/GLES/glext.h" #ifndef GL_IMG_user_clip_plane #define GL_IMG_user_clip_plane 1 #define GL_CLIP_PLANE0_IMG 0x3000 #define GL_CLIP_PLANE1_IMG 0x3001 #define GL_CLIP_PLANE2_IMG 0x3002 #define GL_CLIP_PLANE3_IMG 0x3003 #define GL_CLIP_PLANE4_IMG 0x3004 #define GL_CLIP_PLANE5_IMG 0x3005 #define GL_MAX_CLIP_PLANES_IMG 0x0D32 typedef void (GL_APIENTRYP PFNGLCLIPPLANEFIMGPROC) (GLenum p, const GLfloat *eqn); typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMGPROC) (GLenum p, const GLfixed *eqn); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glClipPlanefIMG (GLenum p, const GLfloat *eqn); GL_API void GL_APIENTRY glClipPlanexIMG (GLenum p, const GLfixed *eqn); #endif # 812 "../mesa/include/GLES/glext.h" #endif /* GL_IMG_user_clip_plane */ # 813 "../mesa/include/GLES/glext.h" #ifndef GL_NV_fence #define GL_NV_fence 1 #define GL_ALL_COMPLETED_NV 0x84F2 #define GL_FENCE_STATUS_NV 0x84F3 #define GL_FENCE_CONDITION_NV 0x84F4 typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); GL_API void GL_APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); GL_API GLboolean GL_APIENTRY glIsFenceNV (GLuint fence); GL_API GLboolean GL_APIENTRY glTestFenceNV (GLuint fence); GL_API void GL_APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); GL_API void GL_APIENTRY glFinishFenceNV (GLuint fence); GL_API void GL_APIENTRY glSetFenceNV (GLuint fence, GLenum condition); #endif # 835 "../mesa/include/GLES/glext.h" #endif /* GL_NV_fence */ # 836 "../mesa/include/GLES/glext.h" #ifndef GL_QCOM_driver_control #define GL_QCOM_driver_control 1 typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls); typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls); GL_API void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); GL_API void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl); GL_API void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl); #endif # 849 "../mesa/include/GLES/glext.h" #endif /* GL_QCOM_driver_control */ # 850 "../mesa/include/GLES/glext.h" #ifndef GL_QCOM_extended_get #define GL_QCOM_extended_get 1 #define GL_TEXTURE_WIDTH_QCOM 0x8BD2 #define GL_TEXTURE_HEIGHT_QCOM 0x8BD3 #define GL_TEXTURE_DEPTH_QCOM 0x8BD4 #define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8BD5 #define GL_TEXTURE_FORMAT_QCOM 0x8BD6 #define GL_TEXTURE_TYPE_QCOM 0x8BD7 #define GL_TEXTURE_IMAGE_VALID_QCOM 0x8BD8 #define GL_TEXTURE_NUM_LEVELS_QCOM 0x8BD9 #define GL_TEXTURE_TARGET_QCOM 0x8BDA #define GL_TEXTURE_OBJECT_VALID_QCOM 0x8BDB #define GL_STATE_RESTORE 0x8BDC typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param); typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, void **params); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures); GL_API void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers); GL_API void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); GL_API void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); GL_API void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); GL_API void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param); GL_API void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *texels); GL_API void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, void **params); #endif # 882 "../mesa/include/GLES/glext.h" #endif /* GL_QCOM_extended_get */ # 883 "../mesa/include/GLES/glext.h" #ifndef GL_QCOM_extended_get2 #define GL_QCOM_extended_get2 1 typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms); typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program); typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders); GL_API void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms); GL_API GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program); GL_API void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length); #endif # 896 "../mesa/include/GLES/glext.h" #endif /* GL_QCOM_extended_get2 */ # 897 "../mesa/include/GLES/glext.h" #ifndef GL_QCOM_perfmon_global_mode #define GL_QCOM_perfmon_global_mode 1 #define GL_PERFMON_GLOBAL_MODE_QCOM 0x8FA0 #endif /* GL_QCOM_perfmon_global_mode */ # 902 "../mesa/include/GLES/glext.h" #ifndef GL_QCOM_tiled_rendering #define GL_QCOM_tiled_rendering 1 #define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001 #define GL_COLOR_BUFFER_BIT1_QCOM 0x00000002 #define GL_COLOR_BUFFER_BIT2_QCOM 0x00000004 #define GL_COLOR_BUFFER_BIT3_QCOM 0x00000008 #define GL_COLOR_BUFFER_BIT4_QCOM 0x00000010 #define GL_COLOR_BUFFER_BIT5_QCOM 0x00000020 #define GL_COLOR_BUFFER_BIT6_QCOM 0x00000040 #define GL_COLOR_BUFFER_BIT7_QCOM 0x00000080 #define GL_DEPTH_BUFFER_BIT0_QCOM 0x00000100 #define GL_DEPTH_BUFFER_BIT1_QCOM 0x00000200 #define GL_DEPTH_BUFFER_BIT2_QCOM 0x00000400 #define GL_DEPTH_BUFFER_BIT3_QCOM 0x00000800 #define GL_DEPTH_BUFFER_BIT4_QCOM 0x00001000 #define GL_DEPTH_BUFFER_BIT5_QCOM 0x00002000 #define GL_DEPTH_BUFFER_BIT6_QCOM 0x00004000 #define GL_DEPTH_BUFFER_BIT7_QCOM 0x00008000 #define GL_STENCIL_BUFFER_BIT0_QCOM 0x00010000 #define GL_STENCIL_BUFFER_BIT1_QCOM 0x00020000 #define GL_STENCIL_BUFFER_BIT2_QCOM 0x00040000 #define GL_STENCIL_BUFFER_BIT3_QCOM 0x00080000 #define GL_STENCIL_BUFFER_BIT4_QCOM 0x00100000 #define GL_STENCIL_BUFFER_BIT5_QCOM 0x00200000 #define GL_STENCIL_BUFFER_BIT6_QCOM 0x00400000 #define GL_STENCIL_BUFFER_BIT7_QCOM 0x00800000 #define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x01000000 #define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x02000000 #define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x04000000 #define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x08000000 #define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000 #define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000 #define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000 #define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000 typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask); #ifdef GL_GLEXT_PROTOTYPES GL_API void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); GL_API void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask); #endif # 943 "../mesa/include/GLES/glext.h" #endif /* GL_QCOM_tiled_rendering */ # 944 "../mesa/include/GLES/glext.h" #ifndef GL_QCOM_writeonly_rendering #define GL_QCOM_writeonly_rendering 1 #define GL_WRITEONLY_RENDERING_QCOM 0x8823 #endif /* GL_QCOM_writeonly_rendering */ # 949 "../mesa/include/GLES/glext.h" #ifdef __cplusplus } #endif # 953 "../mesa/include/GLES/glext.h" #endif # 955 "../mesa/include/GLES/glext.h" #endif /* glext.h expanded by -frewrite-includes */ # 80 "../mesa/src/util/glheader.h" 2 #ifdef __cplusplus extern "C" { #endif # 84 "../mesa/src/util/glheader.h" /* Custom Mesa types to save space. */ typedef unsigned char GLenum8; /* only for primitive modes */ typedef unsigned short GLenum16; typedef unsigned char GLbitfield8; typedef unsigned short GLbitfield16; typedef GLuint64 GLbitfield64; /* This is for packing the GL index type. The reason it's a structure is that * we don't want it to be used as integer accidentally. */ typedef struct { unsigned char value; } GLindextype; /* There is no formal spec for the following extension. */ #ifndef GL_ATI_texture_compression_3dc #define GL_ATI_texture_compression_3dc 1 #define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 #endif # 105 "../mesa/src/util/glheader.h" /** * Internal token to represent a GLSL shader program (a collection of * one or more shaders that get linked together). Note that GLSL * shaders and shader programs share one name space (one hash table) * so we need a value that's different from any of the * GL_VERTEX/FRAGMENT/GEOMETRY_PROGRAM tokens. */ #define GL_SHADER_PROGRAM_MESA 0x9999 #ifdef __cplusplus } #endif # 118 "../mesa/src/util/glheader.h" #endif /* GLHEADER_H */ # 120 "../mesa/src/util/glheader.h" #endif /* glheader.h expanded by -frewrite-includes */ # 26 "../mesa/src/mesa/main/accum.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* accum.h expanded by -frewrite-includes */ #include "accum.h" #else /* accum.h expanded by -frewrite-includes */ # 26 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/accum.h" 1 /** * \file accum.h * Accumulation buffer operations. * * \if subset * (No-op) * * \endif */ /* * Mesa 3-D graphics library * * Copyright (C) 1999-2001 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef ACCUM_H #define ACCUM_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/accum.h" # 41 "../mesa/src/mesa/main/accum.h" struct gl_context; extern void _mesa_clear_accum_buffer(struct gl_context *ctx); extern void _mesa_init_accum( struct gl_context *ctx ); #endif /* ACCUM_H */ # 51 "../mesa/src/mesa/main/accum.h" #endif /* accum.h expanded by -frewrite-includes */ # 27 "../mesa/src/mesa/main/accum.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* condrender.h expanded by -frewrite-includes */ #include "condrender.h" #else /* condrender.h expanded by -frewrite-includes */ # 27 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/condrender.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #ifndef CONDRENDER_H #define CONDRENDER_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/mesa/main/condrender.h" # 31 "../mesa/src/mesa/main/condrender.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* context.h expanded by -frewrite-includes */ #include "context.h" #else /* context.h expanded by -frewrite-includes */ # 31 "../mesa/src/mesa/main/condrender.h" # 1 "../mesa/src/mesa/main/context.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file context.h * Mesa context and visual-related functions. * * There are three large Mesa data types/classes which are meant to be * used by device drivers: * - struct gl_context: this contains the Mesa rendering state * - struct gl_config: this describes the color buffer (RGB vs. ci), whether * or not there's a depth buffer, stencil buffer, etc. * - struct gl_framebuffer: contains pointers to the depth buffer, stencil * buffer, accum buffer and alpha buffers. * * These types should be encapsulated by corresponding device driver * data types. See xmesa.h and xmesaP.h for an example. * * In OOP terms, struct gl_context, struct gl_config, and struct gl_framebuffer * are base classes which the device driver must derive from. * * The following functions create and destroy these data types. */ #ifndef CONTEXT_H #define CONTEXT_H #if defined(__CLANG_REWRITTEN_INCLUDES) /* errors.h expanded by -frewrite-includes */ #include "errors.h" #else /* errors.h expanded by -frewrite-includes */ # 52 "../mesa/src/mesa/main/context.h" # 1 "../mesa/src/mesa/main/errors.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file errors.h * Mesa debugging and error handling functions. * * This file provides functions to record errors, warnings, and miscellaneous * debug information. */ #ifndef ERRORS_H #define ERRORS_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdio.h expanded by -frewrite-includes */ #include #else /* stdio.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/errors.h" # 1 "/usr/include/stdio.h" 1 3 4 /* Define ISO C stdio on top of C++ iostreams. Copyright (C) 1991-2024 Free Software Foundation, Inc. Copyright The GNU Toolchain Authors. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.19 Input/output */ #ifndef _STDIO_H #define _STDIO_H 1 #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libc-header-start.h expanded by -frewrite-includes */ #include #else /* libc-header-start.h expanded by -frewrite-includes */ # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4 /* Handle feature test macros at the start of a header. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header cannot have multiple include guards because ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included. */ #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION # error "Never include directly." #endif # 30 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/bits/libc-header-start.h" 3 4 # 34 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ macro. */ #undef __GLIBC_USE_LIB_EXT2 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 1 #else # 42 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 0 #endif # 44 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ macro. Most but not all symbols enabled by that macro in TS 18661-1 are enabled unconditionally in C23. In C23, the symbols in Annex F still require a new feature test macro __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 18661-1 are not included in C23 (and thus should depend on __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are enabled). __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 18661-1 not included in C23. __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS 18661-1 that are also included in C23 (with no feature test macro required in C23). __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 that are included in C23 but conditional on __STDC_WANT_IEC_60559_EXT__. (There are currently no features conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 18661-1.) */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # 71 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif # 73 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1 #else # 77 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0 #endif # 79 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_EXT #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 1 #else # 83 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 0 #endif # 85 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-4:2015 defines the __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction functions, the symbols from this TS are enabled unconditionally in C23. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 92 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # 94 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif # 96 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1 #else # 100 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0 #endif # 102 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ #undef __GLIBC_USE_IEC_60559_TYPES_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 #else # 109 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 #endif # 111 "/usr/include/bits/libc-header-start.h" 3 4 #endif /* libc-header-start.h expanded by -frewrite-includes */ # 29 "/usr/include/stdio.h" 2 3 4 __BEGIN_DECLS #define __need_size_t #define __need_NULL #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 34 "/usr/include/stdio.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 35 "/usr/include/stdio.h" 2 3 4 #define __need___va_list #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 37 "/usr/include/stdio.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 1 3 4 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 30 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #else # 32 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 35 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #define __need_va_copy #endif # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 48 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #endif # 49 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need___va_list #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg___gnuc_va_list.h expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #else /* __stdarg___gnuc_va_list.h expanded by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stdarg___gnuc_va_list.h" 1 3 4 /*===---- __stdarg___gnuc_va_list.h - Definition of __gnuc_va_list ---------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __GNUC_VA_LIST #define __GNUC_VA_LIST typedef __builtin_va_list __gnuc_va_list; #endif # 14 "/home/marcus/llvm20/lib/clang/20/include/__stdarg___gnuc_va_list.h" 3 4 #endif /* __stdarg___gnuc_va_list.h expanded by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 2 3 4 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need_va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #endif /* expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 57 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need_va_arg #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #endif /* expanded by -frewrite-includes */ # 61 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 62 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need___va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #endif /* expanded by -frewrite-includes */ # 66 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 67 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #ifdef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #endif /* expanded by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 # 72 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #endif /* __MVS__ */ # 76 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 4 #endif /* stdarg.h expanded by -frewrite-includes */ # 38 "/usr/include/stdio.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 39 "/usr/include/stdio.h" 3 4 # 40 "/usr/include/stdio.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __fpos_t.h expanded by -frewrite-includes */ #include #else /* __fpos_t.h expanded by -frewrite-includes */ # 40 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/types/__fpos_t.h" 1 3 4 #ifndef _____fpos_t_defined #define _____fpos_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/__fpos_t.h" 3 4 # 5 "/usr/include/bits/types/__fpos_t.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __mbstate_t.h expanded by -frewrite-includes */ #include #else /* __mbstate_t.h expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/__fpos_t.h" 3 4 # 1 "/usr/include/bits/types/__mbstate_t.h" 1 3 4 #ifndef ____mbstate_t_defined #define ____mbstate_t_defined 1 /* Integral type unchanged by default argument promotions that can hold any value corresponding to members of the extended character set, as well as at least one value that does not correspond to any member of the extended character set. */ #ifndef __WINT_TYPE__ # define __WINT_TYPE__ unsigned int #endif # 11 "/usr/include/bits/types/__mbstate_t.h" 3 4 /* Conversion state information. */ typedef struct { int __count; union { __WINT_TYPE__ __wch; char __wchb[4]; } __value; /* Value so far. */ } __mbstate_t; #endif # 24 "/usr/include/bits/types/__mbstate_t.h" 3 4 #endif /* __mbstate_t.h expanded by -frewrite-includes */ # 6 "/usr/include/bits/types/__fpos_t.h" 2 3 4 /* The tag name of this struct is _G_fpos_t to preserve historic C++ mangled names for functions taking fpos_t arguments. That name should not be used in new code. */ typedef struct _G_fpos_t { __off_t __pos; __mbstate_t __state; } __fpos_t; #endif # 17 "/usr/include/bits/types/__fpos_t.h" 3 4 #endif /* __fpos_t.h expanded by -frewrite-includes */ # 41 "/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __fpos64_t.h expanded by -frewrite-includes */ #include #else /* __fpos64_t.h expanded by -frewrite-includes */ # 41 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/types/__fpos64_t.h" 1 3 4 #ifndef _____fpos64_t_defined #define _____fpos64_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/__fpos64_t.h" 3 4 # 5 "/usr/include/bits/types/__fpos64_t.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/__fpos64_t.h" 3 4 # 6 "/usr/include/bits/types/__fpos64_t.h" 3 4 /* The tag name of this struct is _G_fpos64_t to preserve historic C++ mangled names for functions taking fpos_t and/or fpos64_t arguments. That name should not be used in new code. */ typedef struct _G_fpos64_t { __off64_t __pos; __mbstate_t __state; } __fpos64_t; #endif # 17 "/usr/include/bits/types/__fpos64_t.h" 3 4 #endif /* __fpos64_t.h expanded by -frewrite-includes */ # 42 "/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __FILE.h expanded by -frewrite-includes */ #include #else /* __FILE.h expanded by -frewrite-includes */ # 42 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/types/__FILE.h" 1 3 4 #ifndef ____FILE_defined #define ____FILE_defined 1 struct _IO_FILE; typedef struct _IO_FILE __FILE; #endif # 8 "/usr/include/bits/types/__FILE.h" 3 4 #endif /* __FILE.h expanded by -frewrite-includes */ # 43 "/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* FILE.h expanded by -frewrite-includes */ #include #else /* FILE.h expanded by -frewrite-includes */ # 43 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/types/FILE.h" 1 3 4 #ifndef __FILE_defined #define __FILE_defined 1 struct _IO_FILE; /* The opaque type of streams. This is the definition used elsewhere. */ typedef struct _IO_FILE FILE; #endif # 10 "/usr/include/bits/types/FILE.h" 3 4 #endif /* FILE.h expanded by -frewrite-includes */ # 44 "/usr/include/stdio.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_FILE.h expanded by -frewrite-includes */ #include #else /* struct_FILE.h expanded by -frewrite-includes */ # 44 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/types/struct_FILE.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __struct_FILE_defined #define __struct_FILE_defined 1 /* Caution: The contents of this file are not part of the official stdio.h API. However, much of it is part of the official *binary* interface, and therefore cannot be changed. */ #if 0 /* disabled by -frewrite-includes */ #if defined _IO_USE_OLD_IO_FILE && !defined _LIBC #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 26 "/usr/include/bits/types/struct_FILE.h" 3 4 # error "_IO_USE_OLD_IO_FILE should only be defined when building libc itself" #endif # 28 "/usr/include/bits/types/struct_FILE.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined _IO_lock_t_defined && !defined _LIBC #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 30 "/usr/include/bits/types/struct_FILE.h" 3 4 # error "_IO_lock_t_defined should only be defined when building libc itself" #endif # 32 "/usr/include/bits/types/struct_FILE.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/bits/types/struct_FILE.h" 3 4 # 34 "/usr/include/bits/types/struct_FILE.h" 3 4 struct _IO_FILE; struct _IO_marker; struct _IO_codecvt; struct _IO_wide_data; /* During the build of glibc itself, _IO_lock_t will already have been defined by internal headers. */ #ifndef _IO_lock_t_defined typedef void _IO_lock_t; #endif # 45 "/usr/include/bits/types/struct_FILE.h" 3 4 /* The tag name of this struct is _IO_FILE to preserve historic C++ mangled names for functions taking FILE* arguments. That name should not be used in new code. */ struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ /* The following pointers correspond to the C++ streambuf protocol. */ char *_IO_read_ptr; /* Current read pointer */ char *_IO_read_end; /* End of get area. */ char *_IO_read_base; /* Start of putback+get area. */ char *_IO_write_base; /* Start of put area. */ char *_IO_write_ptr; /* Current put pointer. */ char *_IO_write_end; /* End of put area. */ char *_IO_buf_base; /* Start of reserve area. */ char *_IO_buf_end; /* End of reserve area. */ /* The following fields are used to support backing up and undo. */ char *_IO_save_base; /* Pointer to start of non-current get area. */ char *_IO_backup_base; /* Pointer to first valid character of backup area */ char *_IO_save_end; /* Pointer to end of non-current get area. */ struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; /* This used to be _offset but it's too small. */ /* 1+column number of pbase(); 0 is unknown. */ unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; #ifdef _IO_USE_OLD_IO_FILE }; struct _IO_FILE_complete { struct _IO_FILE _file; #endif # 89 "/usr/include/bits/types/struct_FILE.h" 3 4 __off64_t _offset; /* Wide character stream stuff. */ struct _IO_codecvt *_codecvt; struct _IO_wide_data *_wide_data; struct _IO_FILE *_freeres_list; void *_freeres_buf; struct _IO_FILE **_prevchain; int _mode; /* Make sure we don't get into trouble again. */ char _unused2[15 * sizeof (int) - 5 * sizeof (void *)]; }; /* These macros are used by bits/stdio.h and internal headers. */ #define __getc_unlocked_body(_fp) \ (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \ ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) #define __putc_unlocked_body(_ch, _fp) \ (__glibc_unlikely ((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) \ ? __overflow (_fp, (unsigned char) (_ch)) \ : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) #define _IO_EOF_SEEN 0x0010 #define __feof_unlocked_body(_fp) (((_fp)->_flags & _IO_EOF_SEEN) != 0) #define _IO_ERR_SEEN 0x0020 #define __ferror_unlocked_body(_fp) (((_fp)->_flags & _IO_ERR_SEEN) != 0) #define _IO_USER_LOCK 0x8000 /* Many more flag bits are defined internally. */ #endif # 121 "/usr/include/bits/types/struct_FILE.h" 3 4 #endif /* struct_FILE.h expanded by -frewrite-includes */ # 45 "/usr/include/stdio.h" 2 3 4 #ifdef __USE_MISC #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* cookie_io_functions_t.h expanded by -frewrite-includes */ # include #else /* cookie_io_functions_t.h expanded by -frewrite-includes */ # 47 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/types/cookie_io_functions_t.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __cookie_io_functions_t_defined #define __cookie_io_functions_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/bits/types/cookie_io_functions_t.h" 3 4 # 22 "/usr/include/bits/types/cookie_io_functions_t.h" 3 4 /* Functions to do I/O and file management for a stream. */ /* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF. Return number of bytes read. */ typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf, size_t __nbytes); /* Write NBYTES bytes pointed to by BUF to COOKIE. Write all NBYTES bytes unless there is an error. Return number of bytes written. If there is an error, return 0 and do not write anything. If the file has been opened for append (__mode.__append set), then set the file pointer to the end of the file and then do the write; if not, just write at the current file pointer. */ typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf, size_t __nbytes); /* Move COOKIE's file position to *POS bytes from the beginning of the file (if W is SEEK_SET), the current position (if W is SEEK_CUR), or the end of the file (if W is SEEK_END). Set *POS to the new file position. Returns zero if successful, nonzero if not. */ typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w); /* Close COOKIE. */ typedef int cookie_close_function_t (void *__cookie); /* The structure with the cookie function pointers. The tag name of this struct is _IO_cookie_io_functions_t to preserve historic C++ mangled names for functions taking cookie_io_functions_t arguments. That name should not be used in new code. */ typedef struct _IO_cookie_io_functions_t { cookie_read_function_t *read; /* Read bytes. */ cookie_write_function_t *write; /* Write bytes. */ cookie_seek_function_t *seek; /* Seek/tell file position. */ cookie_close_function_t *close; /* Close file. */ } cookie_io_functions_t; #endif # 64 "/usr/include/bits/types/cookie_io_functions_t.h" 3 4 #endif /* cookie_io_functions_t.h expanded by -frewrite-includes */ # 48 "/usr/include/stdio.h" 2 3 4 #endif # 49 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 51 "/usr/include/stdio.h" 3 4 # ifdef __GNUC__ # ifndef _VA_LIST_DEFINED typedef __gnuc_va_list va_list; # define _VA_LIST_DEFINED # endif # 56 "/usr/include/stdio.h" 3 4 # else # 57 "/usr/include/stdio.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 57 "/usr/include/stdio.h" 3 4 # 58 "/usr/include/stdio.h" 3 4 # endif # 59 "/usr/include/stdio.h" 3 4 #endif # 60 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 62 "/usr/include/stdio.h" 3 4 # ifndef __off_t_defined # ifndef __USE_FILE_OFFSET64 typedef __off_t off_t; # else # 66 "/usr/include/stdio.h" 3 4 typedef __off64_t off_t; # endif # 68 "/usr/include/stdio.h" 3 4 # define __off_t_defined # endif # 70 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __USE_LARGEFILE64 && !defined __off64_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 71 "/usr/include/stdio.h" 3 4 typedef __off64_t off64_t; # define __off64_t_defined # endif # 74 "/usr/include/stdio.h" 3 4 #endif # 75 "/usr/include/stdio.h" 3 4 #ifdef __USE_XOPEN2K8 # ifndef __ssize_t_defined typedef __ssize_t ssize_t; # define __ssize_t_defined # endif # 81 "/usr/include/stdio.h" 3 4 #endif # 82 "/usr/include/stdio.h" 3 4 /* The type of the second argument to `fgetpos' and `fsetpos'. */ #ifndef __USE_FILE_OFFSET64 typedef __fpos_t fpos_t; #else # 87 "/usr/include/stdio.h" 3 4 typedef __fpos64_t fpos_t; #endif # 89 "/usr/include/stdio.h" 3 4 #ifdef __USE_LARGEFILE64 typedef __fpos64_t fpos64_t; #endif # 92 "/usr/include/stdio.h" 3 4 /* The possibilities for the third argument to `setvbuf'. */ #define _IOFBF 0 /* Fully buffered. */ #define _IOLBF 1 /* Line buffered. */ #define _IONBF 2 /* No buffering. */ /* Default buffer size. */ #define BUFSIZ 8192 /* The value returned by fgetc and similar functions to indicate the end of the file. */ #define EOF (-1) /* The possibilities for the third argument to `fseek'. These values should not be changed. */ #define SEEK_SET 0 /* Seek from beginning of file. */ #define SEEK_CUR 1 /* Seek from current position. */ #define SEEK_END 2 /* Seek from end of file. */ #ifdef __USE_GNU # define SEEK_DATA 3 /* Seek to next data. */ # define SEEK_HOLE 4 /* Seek to next hole. */ #endif # 117 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 120 "/usr/include/stdio.h" 3 4 /* Default path prefix for `tempnam' and `tmpnam'. */ # define P_tmpdir "/tmp" #endif # 123 "/usr/include/stdio.h" 3 4 #define L_tmpnam 20 #define TMP_MAX 238328 /* Get the values: FILENAME_MAX Maximum length of a filename. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdio_lim.h expanded by -frewrite-includes */ #include #else /* stdio_lim.h expanded by -frewrite-includes */ # 129 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 /* System specific stdio.h definitions. Linux version. Copyright (C) 2023-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_STDIO_LIM_H #define _BITS_STDIO_LIM_H 1 #ifndef _STDIO_H # error "Never include directly; use instead." #endif # 25 "/usr/include/bits/stdio_lim.h" 3 4 #define FILENAME_MAX 4096 #endif /* bits/stdio_lim.h */ # 29 "/usr/include/bits/stdio_lim.h" 3 4 #endif /* stdio_lim.h expanded by -frewrite-includes */ # 130 "/usr/include/stdio.h" 2 3 4 #ifdef __USE_POSIX # define L_ctermid 9 #if 0 /* disabled by -frewrite-includes */ # if !defined __USE_XOPEN2K || defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 134 "/usr/include/stdio.h" 3 4 # define L_cuserid 9 # endif # 136 "/usr/include/stdio.h" 3 4 #endif # 137 "/usr/include/stdio.h" 3 4 #undef FOPEN_MAX #define FOPEN_MAX 16 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 143 "/usr/include/stdio.h" 3 4 /* Maximum length of printf output for a NaN. */ # define _PRINTF_NAN_LEN_MAX 4 #endif # 146 "/usr/include/stdio.h" 3 4 /* Standard streams. */ extern FILE *stdin; /* Standard input stream. */ extern FILE *stdout; /* Standard output stream. */ extern FILE *stderr; /* Standard error output stream. */ /* C89/C99 say they're macros. Make them happy. */ #define stdin stdin #define stdout stdout #define stderr stderr /* Remove file FILENAME. */ extern int remove (const char *__filename) __THROW; /* Rename file OLD to NEW. */ extern int rename (const char *__old, const char *__new) __THROW; #ifdef __USE_ATFILE /* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */ extern int renameat (int __oldfd, const char *__old, int __newfd, const char *__new) __THROW; #endif # 167 "/usr/include/stdio.h" 3 4 #ifdef __USE_GNU /* Flags for renameat2. */ # define RENAME_NOREPLACE (1 << 0) # define RENAME_EXCHANGE (1 << 1) # define RENAME_WHITEOUT (1 << 2) /* Rename file OLD relative to OLDFD to NEW relative to NEWFD, with additional flags. */ extern int renameat2 (int __oldfd, const char *__old, int __newfd, const char *__new, unsigned int __flags) __THROW; #endif # 179 "/usr/include/stdio.h" 3 4 /* Close STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fclose (FILE *__stream) __nonnull ((1)); #undef __attr_dealloc_fclose #define __attr_dealloc_fclose __attr_dealloc (fclose, 1) /* Create a temporary file and open it read/write. This function is a possible cancellation point and therefore not marked with __THROW. */ #ifndef __USE_FILE_OFFSET64 extern FILE *tmpfile (void) __attribute_malloc__ __attr_dealloc_fclose __wur; #else # 197 "/usr/include/stdio.h" 3 4 # ifdef __REDIRECT extern FILE *__REDIRECT (tmpfile, (void), tmpfile64) __attribute_malloc__ __attr_dealloc_fclose __wur; # else # 201 "/usr/include/stdio.h" 3 4 # define tmpfile tmpfile64 # endif # 203 "/usr/include/stdio.h" 3 4 #endif # 204 "/usr/include/stdio.h" 3 4 #ifdef __USE_LARGEFILE64 extern FILE *tmpfile64 (void) __attribute_malloc__ __attr_dealloc_fclose __wur; #endif # 209 "/usr/include/stdio.h" 3 4 /* Generate a temporary filename. */ extern char *tmpnam (char[L_tmpnam]) __THROW __wur; #ifdef __USE_MISC /* This is the reentrant variant of `tmpnam'. The only difference is that it does not allow S to be NULL. */ extern char *tmpnam_r (char __s[L_tmpnam]) __THROW __wur; #endif # 218 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 221 "/usr/include/stdio.h" 3 4 /* Generate a unique temporary filename using up to five characters of PFX if it is not NULL. The directory to put this file in is searched for as follows: First the environment variable "TMPDIR" is checked. If it contains the name of a writable directory, that directory is used. If not and if DIR is not NULL, that value is checked. If that fails, P_tmpdir is tried and finally "/tmp". The storage for the filename is allocated by `malloc'. */ extern char *tempnam (const char *__dir, const char *__pfx) __THROW __attribute_malloc__ __wur __attr_dealloc_free; #endif # 231 "/usr/include/stdio.h" 3 4 /* Flush STREAM, or all streams if STREAM is NULL. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fflush (FILE *__stream); #ifdef __USE_MISC /* Faster versions when locking is not required. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern int fflush_unlocked (FILE *__stream); #endif # 247 "/usr/include/stdio.h" 3 4 #ifdef __USE_GNU /* Close all streams. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern int fcloseall (void); #endif # 257 "/usr/include/stdio.h" 3 4 #ifndef __USE_FILE_OFFSET64 /* Open a file and create a new stream for it. This function is a possible cancellation point and therefore not marked with __THROW. */ extern FILE *fopen (const char *__restrict __filename, const char *__restrict __modes) __attribute_malloc__ __attr_dealloc_fclose __wur; /* Open a file, replacing an existing stream with it. This function is a possible cancellation point and therefore not marked with __THROW. */ extern FILE *freopen (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __wur __nonnull ((3)); #else # 275 "/usr/include/stdio.h" 3 4 # ifdef __REDIRECT extern FILE *__REDIRECT (fopen, (const char *__restrict __filename, const char *__restrict __modes), fopen64) __attribute_malloc__ __attr_dealloc_fclose __wur; extern FILE *__REDIRECT (freopen, (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream), freopen64) __wur __nonnull ((3)); # else # 284 "/usr/include/stdio.h" 3 4 # define fopen fopen64 # define freopen freopen64 # endif # 287 "/usr/include/stdio.h" 3 4 #endif # 288 "/usr/include/stdio.h" 3 4 #ifdef __USE_LARGEFILE64 extern FILE *fopen64 (const char *__restrict __filename, const char *__restrict __modes) __attribute_malloc__ __attr_dealloc_fclose __wur; extern FILE *freopen64 (const char *__restrict __filename, const char *__restrict __modes, FILE *__restrict __stream) __wur __nonnull ((3)); #endif # 296 "/usr/include/stdio.h" 3 4 #ifdef __USE_POSIX /* Create a new stream that refers to an existing system file descriptor. */ extern FILE *fdopen (int __fd, const char *__modes) __THROW __attribute_malloc__ __attr_dealloc_fclose __wur; #endif # 302 "/usr/include/stdio.h" 3 4 #ifdef __USE_MISC /* Create a new stream that refers to the given magic cookie, and uses the given functions for input and output. */ extern FILE *fopencookie (void *__restrict __magic_cookie, const char *__restrict __modes, cookie_io_functions_t __io_funcs) __THROW __attribute_malloc__ __attr_dealloc_fclose __wur; #endif # 311 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 313 "/usr/include/stdio.h" 3 4 /* Create a new stream that refers to a memory buffer. */ extern FILE *fmemopen (void *__s, size_t __len, const char *__modes) __THROW __attribute_malloc__ __attr_dealloc_fclose __wur; /* Open a stream that writes into a malloc'd buffer that is expanded as necessary. *BUFLOC and *SIZELOC are updated with the buffer's location and the number of characters written on fflush or fclose. */ extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW __attribute_malloc__ __attr_dealloc_fclose __wur; #ifdef _WCHAR_H /* Like OPEN_MEMSTREAM, but the stream is wide oriented and produces a wide character string. Declared here only to add attribute malloc and only if has been previously #included. */ extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) __THROW __attribute_malloc__ __attr_dealloc_fclose; # endif # 330 "/usr/include/stdio.h" 3 4 #endif # 331 "/usr/include/stdio.h" 3 4 /* If BUF is NULL, make STREAM unbuffered. Else make it use buffer BUF, of size BUFSIZ. */ extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __THROW __nonnull ((1)); /* Make STREAM use buffering mode MODE. If BUF is not NULL, use N bytes of it for buffering; else allocate an internal buffer N bytes long. */ extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) __THROW __nonnull ((1)); #ifdef __USE_MISC /* If BUF is NULL, make STREAM unbuffered. Else make it use SIZE bytes of BUF for buffering. */ extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) __THROW __nonnull ((1)); /* Make STREAM line-buffered. */ extern void setlinebuf (FILE *__stream) __THROW __nonnull ((1)); #endif # 351 "/usr/include/stdio.h" 3 4 /* Write formatted output to STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fprintf (FILE *__restrict __stream, const char *__restrict __format, ...) __nonnull ((1)); /* Write formatted output to stdout. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int printf (const char *__restrict __format, ...); /* Write formatted output to S. */ extern int sprintf (char *__restrict __s, const char *__restrict __format, ...) __THROWNL; /* Write formatted output to S from argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vfprintf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __nonnull ((1)); /* Write formatted output to stdout from argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg); /* Write formatted output to S from argument list ARG. */ extern int vsprintf (char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __THROWNL; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_ISOC99 || defined __USE_UNIX98 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 384 "/usr/include/stdio.h" 3 4 /* Maximum chars of output to write in MAXLEN. */ extern int snprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, ...) __THROWNL __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, __gnuc_va_list __arg) __THROWNL __attribute__ ((__format__ (__printf__, 3, 0))); #endif # 393 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined (__USE_MISC) || __GLIBC_USE (LIB_EXT2) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 395 "/usr/include/stdio.h" 3 4 /* Write formatted output to a string dynamically allocated with `malloc'. Store the address of the string in *PTR. */ extern int vasprintf (char **__restrict __ptr, const char *__restrict __f, __gnuc_va_list __arg) __THROWNL __attribute__ ((__format__ (__printf__, 2, 0))) __wur; extern int __asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur; extern int asprintf (char **__restrict __ptr, const char *__restrict __fmt, ...) __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))) __wur; #endif # 407 "/usr/include/stdio.h" 3 4 #ifdef __USE_XOPEN2K8 /* Write formatted output to a file descriptor. */ extern int vdprintf (int __fd, const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); #endif # 416 "/usr/include/stdio.h" 3 4 /* Read formatted input from STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __wur __nonnull ((1)); /* Read formatted input from stdin. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int scanf (const char *__restrict __format, ...) __wur; /* Read formatted input from S. */ extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __THROW; /* For historical reasons, the C99-compliant versions of the scanf functions are at alternative names. When __LDBL_COMPAT or __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI are in effect, this is handled in bits/stdio-ldbl.h. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* floatn.h expanded by -frewrite-includes */ #include #else /* floatn.h expanded by -frewrite-includes */ # 437 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/floatn.h" 1 3 4 /* Macros to control TS 18661-3 glibc features on x86. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_FLOATN_H #define _BITS_FLOATN_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "/usr/include/bits/floatn.h" 3 4 # 23 "/usr/include/bits/floatn.h" 3 4 /* Defined to 1 if the current compiler invocation provides a floating-point type with the IEEE 754 binary128 format, and this glibc includes corresponding *f128 interfaces for it. The required libgcc support was added some time after the basic compiler support, for x86_64 and x86. */ #if 0 /* disabled by -frewrite-includes */ #if (defined __x86_64__ \ ? __GNUC_PREREQ (4, 3) \ : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 32 "/usr/include/bits/floatn.h" 3 4 # define __HAVE_FLOAT128 1 #else # 34 "/usr/include/bits/floatn.h" 3 4 # define __HAVE_FLOAT128 0 #endif # 36 "/usr/include/bits/floatn.h" 3 4 /* Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct from the default float, double and long double types in this glibc. */ #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/floatn.h" 3 4 # define __HAVE_DISTINCT_FLOAT128 1 #else # 42 "/usr/include/bits/floatn.h" 3 4 # define __HAVE_DISTINCT_FLOAT128 0 #endif # 44 "/usr/include/bits/floatn.h" 3 4 /* Defined to 1 if the current compiler invocation provides a floating-point type with the right format for _Float64x, and this glibc includes corresponding *f64x interfaces for it. */ #define __HAVE_FLOAT64X 1 /* Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has the format of _Float128, which must be different from that of long double. */ #define __HAVE_FLOAT64X_LONG_DOUBLE 1 #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _Float128 types, if __HAVE_FLOAT128 is 1. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 61 "/usr/include/bits/floatn.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 62 "/usr/include/bits/floatn.h" 3 4 /* The literal suffix f128 exists only since GCC 7.0. */ # define __f128(x) x##q # else # 65 "/usr/include/bits/floatn.h" 3 4 # define __f128(x) x##f128 # endif # 67 "/usr/include/bits/floatn.h" 3 4 # endif # 68 "/usr/include/bits/floatn.h" 3 4 /* Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 71 "/usr/include/bits/floatn.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 72 "/usr/include/bits/floatn.h" 3 4 /* Add a typedef for older GCC compilers which don't natively support _Complex _Float128. */ typedef _Complex float __cfloat128 __attribute__ ((__mode__ (__TC__))); # define __CFLOAT128 __cfloat128 # else # 77 "/usr/include/bits/floatn.h" 3 4 # define __CFLOAT128 _Complex _Float128 # endif # 79 "/usr/include/bits/floatn.h" 3 4 # endif # 80 "/usr/include/bits/floatn.h" 3 4 /* The remaining of this file provides support for older compilers. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 83 "/usr/include/bits/floatn.h" 3 4 /* The type _Float128 exists only since GCC 7.0. */ #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 86 "/usr/include/bits/floatn.h" 3 4 typedef __float128 _Float128; # endif # 88 "/usr/include/bits/floatn.h" 3 4 /* __builtin_huge_valf128 doesn't exist before GCC 7.0. */ #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 91 "/usr/include/bits/floatn.h" 3 4 # define __builtin_huge_valf128() ((_Float128) __builtin_huge_val ()) # endif # 93 "/usr/include/bits/floatn.h" 3 4 /* Older GCC has only a subset of built-in functions for _Float128 on x86, and __builtin_infq is not usable in static initializers. Converting a narrower sNaN to _Float128 produces a quiet NaN, so attempts to use _Float128 sNaNs will not work properly with older compilers. */ #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 100 "/usr/include/bits/floatn.h" 3 4 # define __builtin_copysignf128 __builtin_copysignq # define __builtin_fabsf128 __builtin_fabsq # define __builtin_inff128() ((_Float128) __builtin_inf ()) # define __builtin_nanf128(x) ((_Float128) __builtin_nan (x)) # define __builtin_nansf128(x) ((_Float128) __builtin_nans (x)) # endif # 106 "/usr/include/bits/floatn.h" 3 4 /* In math/math.h, __MATH_TG will expand signbit to __builtin_signbit*, e.g.: __builtin_signbitf128, before GCC 6. However, there has never been a __builtin_signbitf128 in GCC and the type-generic builtin is only available since GCC 6. */ #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (6, 0) || defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 112 "/usr/include/bits/floatn.h" 3 4 # define __builtin_signbitf128 __signbitf128 # endif # 114 "/usr/include/bits/floatn.h" 3 4 # endif # 116 "/usr/include/bits/floatn.h" 3 4 #endif /* !__ASSEMBLER__. */ # 118 "/usr/include/bits/floatn.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* floatn-common.h expanded by -frewrite-includes */ #include #else /* floatn-common.h expanded by -frewrite-includes */ # 119 "/usr/include/bits/floatn.h" 3 4 # 1 "/usr/include/bits/floatn-common.h" 1 3 4 /* Macros to control TS 18661-3 glibc features where the same definitions are appropriate for all platforms. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_FLOATN_COMMON_H #define _BITS_FLOATN_COMMON_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 23 "/usr/include/bits/floatn-common.h" 3 4 # 24 "/usr/include/bits/floatn-common.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* long-double.h expanded by -frewrite-includes */ #include #else /* long-double.h expanded by -frewrite-includes */ # 24 "/usr/include/bits/floatn-common.h" 3 4 # 1 "/usr/include/bits/long-double.h" 1 3 4 /* Properties of long double type. ldbl-96 version. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* long double is distinct from double, so there is nothing to define here. */ #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0 #endif /* long-double.h expanded by -frewrite-includes */ # 25 "/usr/include/bits/floatn-common.h" 2 3 4 /* This header should be included at the bottom of each bits/floatn.h. It defines the following macros for each _FloatN and _FloatNx type, where the same definitions, or definitions based only on the macros in bits/floatn.h, are appropriate for all glibc configurations. */ /* Defined to 1 if the current compiler invocation provides a floating-point type with the right format for this type, and this glibc includes corresponding *fN or *fNx interfaces for it. */ #define __HAVE_FLOAT16 0 #define __HAVE_FLOAT32 1 #define __HAVE_FLOAT64 1 #define __HAVE_FLOAT32X 1 #define __HAVE_FLOAT128X 0 /* Defined to 1 if the corresponding __HAVE_ macro is 1 and the type is the first with its format in the sequence of (the default choices for) float, double, long double, _Float16, _Float32, _Float64, _Float128, _Float32x, _Float64x, _Float128x for this glibc; that is, if functions present once per floating-point format rather than once per type are present for this type. All configurations supported by glibc have _Float32 the same format as float, _Float64 and _Float32x the same format as double, the _Float64x the same format as either long double or _Float128. No configurations support _Float128x or, as of GCC 7, have compiler support for a type meeting the requirements for _Float128x. */ #define __HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16 #define __HAVE_DISTINCT_FLOAT32 0 #define __HAVE_DISTINCT_FLOAT64 0 #define __HAVE_DISTINCT_FLOAT32X 0 #define __HAVE_DISTINCT_FLOAT64X 0 #define __HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X /* Defined to 1 if the corresponding _FloatN type is not binary compatible with the corresponding ISO C type in the current compilation unit as opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built in glibc. */ #define __HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 \ && __LDBL_MANT_DIG__ != 113) /* Defined to 1 if any _FloatN or _FloatNx types that are not ABI-distinct are however distinct types at the C language level (so for the purposes of __builtin_types_compatible_p and _Generic). */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (7, 0) && !defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 70 "/usr/include/bits/floatn-common.h" 3 4 # define __HAVE_FLOATN_NOT_TYPEDEF 1 #else # 72 "/usr/include/bits/floatn-common.h" 3 4 # define __HAVE_FLOATN_NOT_TYPEDEF 0 #endif # 74 "/usr/include/bits/floatn-common.h" 3 4 #ifndef __ASSEMBLER__ /* Defined to concatenate the literal suffix to be used with _FloatN or _FloatNx types, if __HAVE_ is 1. The corresponding literal suffixes exist since GCC 7, for C only. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 82 "/usr/include/bits/floatn-common.h" 3 4 /* No corresponding suffix available for this type. */ # define __f16(x) ((_Float16) x##f) # else # 85 "/usr/include/bits/floatn-common.h" 3 4 # define __f16(x) x##f16 # endif # 87 "/usr/include/bits/floatn-common.h" 3 4 # endif # 88 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 90 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/bits/floatn-common.h" 3 4 # define __f32(x) x##f # else # 93 "/usr/include/bits/floatn-common.h" 3 4 # define __f32(x) x##f32 # endif # 95 "/usr/include/bits/floatn-common.h" 3 4 # endif # 96 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 99 "/usr/include/bits/floatn-common.h" 3 4 # ifdef __NO_LONG_DOUBLE_MATH # define __f64(x) x##l # else # 102 "/usr/include/bits/floatn-common.h" 3 4 # define __f64(x) x # endif # 104 "/usr/include/bits/floatn-common.h" 3 4 # else # 105 "/usr/include/bits/floatn-common.h" 3 4 # define __f64(x) x##f64 # endif # 107 "/usr/include/bits/floatn-common.h" 3 4 # endif # 108 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 110 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 111 "/usr/include/bits/floatn-common.h" 3 4 # define __f32x(x) x # else # 113 "/usr/include/bits/floatn-common.h" 3 4 # define __f32x(x) x##f32x # endif # 115 "/usr/include/bits/floatn-common.h" 3 4 # endif # 116 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 118 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 119 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X_LONG_DOUBLE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 120 "/usr/include/bits/floatn-common.h" 3 4 # define __f64x(x) x##l # else # 122 "/usr/include/bits/floatn-common.h" 3 4 # define __f64x(x) __f128 (x) # endif # 124 "/usr/include/bits/floatn-common.h" 3 4 # else # 125 "/usr/include/bits/floatn-common.h" 3 4 # define __f64x(x) x##f64x # endif # 127 "/usr/include/bits/floatn-common.h" 3 4 # endif # 128 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 130 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 131 "/usr/include/bits/floatn-common.h" 3 4 # error "_Float128X supported but no constant suffix" # else # 133 "/usr/include/bits/floatn-common.h" 3 4 # define __f128x(x) x##f128x # endif # 135 "/usr/include/bits/floatn-common.h" 3 4 # endif # 136 "/usr/include/bits/floatn-common.h" 3 4 /* Defined to a complex type if __HAVE_ is 1. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 139 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/bits/floatn-common.h" 3 4 typedef _Complex float __cfloat16 __attribute__ ((__mode__ (__HC__))); # define __CFLOAT16 __cfloat16 # else # 143 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT16 _Complex _Float16 # endif # 145 "/usr/include/bits/floatn-common.h" 3 4 # endif # 146 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 148 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 149 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT32 _Complex float # else # 151 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT32 _Complex _Float32 # endif # 153 "/usr/include/bits/floatn-common.h" 3 4 # endif # 154 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 156 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 157 "/usr/include/bits/floatn-common.h" 3 4 # ifdef __NO_LONG_DOUBLE_MATH # define __CFLOAT64 _Complex long double # else # 160 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT64 _Complex double # endif # 162 "/usr/include/bits/floatn-common.h" 3 4 # else # 163 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT64 _Complex _Float64 # endif # 165 "/usr/include/bits/floatn-common.h" 3 4 # endif # 166 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 168 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 169 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT32X _Complex double # else # 171 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT32X _Complex _Float32x # endif # 173 "/usr/include/bits/floatn-common.h" 3 4 # endif # 174 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 176 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 177 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X_LONG_DOUBLE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 178 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT64X _Complex long double # else # 180 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT64X __CFLOAT128 # endif # 182 "/usr/include/bits/floatn-common.h" 3 4 # else # 183 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT64X _Complex _Float64x # endif # 185 "/usr/include/bits/floatn-common.h" 3 4 # endif # 186 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 188 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 189 "/usr/include/bits/floatn-common.h" 3 4 # error "_Float128X supported but no complex type" # else # 191 "/usr/include/bits/floatn-common.h" 3 4 # define __CFLOAT128X _Complex _Float128x # endif # 193 "/usr/include/bits/floatn-common.h" 3 4 # endif # 194 "/usr/include/bits/floatn-common.h" 3 4 /* The remaining of this file provides support for older compilers. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 199 "/usr/include/bits/floatn-common.h" 3 4 typedef float _Float16 __attribute__ ((__mode__ (__HF__))); # endif # 201 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 203 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf16() ((_Float16) __builtin_huge_val ()) # define __builtin_inff16() ((_Float16) __builtin_inf ()) # define __builtin_nanf16(x) ((_Float16) __builtin_nan (x)) # define __builtin_nansf16(x) ((_Float16) __builtin_nans (x)) # endif # 208 "/usr/include/bits/floatn-common.h" 3 4 # endif # 210 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 212 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 214 "/usr/include/bits/floatn-common.h" 3 4 typedef float _Float32; # endif # 216 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 218 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf32() (__builtin_huge_valf ()) # define __builtin_inff32() (__builtin_inff ()) # define __builtin_nanf32(x) (__builtin_nanf (x)) # define __builtin_nansf32(x) (__builtin_nansf (x)) # endif # 223 "/usr/include/bits/floatn-common.h" 3 4 # endif # 225 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/floatn-common.h" 3 4 /* If double, long double and _Float64 all have the same set of values, TS 18661-3 requires the usual arithmetic conversions on long double and _Float64 to produce _Float64. For this to be the case when building with a compiler without a distinct _Float64 type, _Float64 must be a typedef for long double, not for double. */ # ifdef __NO_LONG_DOUBLE_MATH #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 238 "/usr/include/bits/floatn-common.h" 3 4 typedef long double _Float64; # endif # 240 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 242 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf64() (__builtin_huge_vall ()) # define __builtin_inff64() (__builtin_infl ()) # define __builtin_nanf64(x) (__builtin_nanl (x)) # define __builtin_nansf64(x) (__builtin_nansl (x)) # endif # 247 "/usr/include/bits/floatn-common.h" 3 4 # else # 249 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 251 "/usr/include/bits/floatn-common.h" 3 4 typedef double _Float64; # endif # 253 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 255 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf64() (__builtin_huge_val ()) # define __builtin_inff64() (__builtin_inf ()) # define __builtin_nanf64(x) (__builtin_nan (x)) # define __builtin_nansf64(x) (__builtin_nans (x)) # endif # 260 "/usr/include/bits/floatn-common.h" 3 4 # endif # 262 "/usr/include/bits/floatn-common.h" 3 4 # endif # 264 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 266 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 268 "/usr/include/bits/floatn-common.h" 3 4 typedef double _Float32x; # endif # 270 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf32x() (__builtin_huge_val ()) # define __builtin_inff32x() (__builtin_inf ()) # define __builtin_nanf32x(x) (__builtin_nan (x)) # define __builtin_nansf32x(x) (__builtin_nans (x)) # endif # 277 "/usr/include/bits/floatn-common.h" 3 4 # endif # 279 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 281 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X_LONG_DOUBLE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 285 "/usr/include/bits/floatn-common.h" 3 4 typedef long double _Float64x; # endif # 287 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 289 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf64x() (__builtin_huge_vall ()) # define __builtin_inff64x() (__builtin_infl ()) # define __builtin_nanf64x(x) (__builtin_nanl (x)) # define __builtin_nansf64x(x) (__builtin_nansl (x)) # endif # 294 "/usr/include/bits/floatn-common.h" 3 4 # else # 296 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 298 "/usr/include/bits/floatn-common.h" 3 4 typedef _Float128 _Float64x; # endif # 300 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf64x() (__builtin_huge_valf128 ()) # define __builtin_inff64x() (__builtin_inff128 ()) # define __builtin_nanf64x(x) (__builtin_nanf128 (x)) # define __builtin_nansf64x(x) (__builtin_nansf128 (x)) # endif # 307 "/usr/include/bits/floatn-common.h" 3 4 # endif # 309 "/usr/include/bits/floatn-common.h" 3 4 # endif # 311 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 313 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || (defined __cplusplus && !__GNUC_PREREQ (13, 0)) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 315 "/usr/include/bits/floatn-common.h" 3 4 # error "_Float128x supported but no type" # endif # 317 "/usr/include/bits/floatn-common.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__GNUC_PREREQ (7, 0) || defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 319 "/usr/include/bits/floatn-common.h" 3 4 # define __builtin_huge_valf128x() ((_Float128x) __builtin_huge_val ()) # define __builtin_inff128x() ((_Float128x) __builtin_inf ()) # define __builtin_nanf128x(x) ((_Float128x) __builtin_nan (x)) # define __builtin_nansf128x(x) ((_Float128x) __builtin_nans (x)) # endif # 324 "/usr/include/bits/floatn-common.h" 3 4 # endif # 326 "/usr/include/bits/floatn-common.h" 3 4 #endif /* !__ASSEMBLER__. */ # 328 "/usr/include/bits/floatn-common.h" 3 4 #endif /* _BITS_FLOATN_COMMON_H */ # 330 "/usr/include/bits/floatn-common.h" 3 4 #endif /* floatn-common.h expanded by -frewrite-includes */ # 120 "/usr/include/bits/floatn.h" 2 3 4 #endif /* _BITS_FLOATN_H */ # 122 "/usr/include/bits/floatn.h" 3 4 #endif /* floatn.h expanded by -frewrite-includes */ # 438 "/usr/include/stdio.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT \ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 440 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (C23_STRTOL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 441 "/usr/include/stdio.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (fscanf, (FILE *__restrict __stream, const char *__restrict __format, ...), __isoc23_fscanf) __wur __nonnull ((1)); extern int __REDIRECT (scanf, (const char *__restrict __format, ...), __isoc23_scanf) __wur; extern int __REDIRECT_NTH (sscanf, (const char *__restrict __s, const char *__restrict __format, ...), __isoc23_sscanf); # else # 451 "/usr/include/stdio.h" 3 4 extern int __isoc23_fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __wur __nonnull ((1)); extern int __isoc23_scanf (const char *__restrict __format, ...) __wur; extern int __isoc23_sscanf (const char *__restrict __s, const char *__restrict __format, ...) __THROW; # define fscanf __isoc23_fscanf # define scanf __isoc23_scanf # define sscanf __isoc23_sscanf # endif # 461 "/usr/include/stdio.h" 3 4 # else # 462 "/usr/include/stdio.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (fscanf, (FILE *__restrict __stream, const char *__restrict __format, ...), __isoc99_fscanf) __wur __nonnull ((1)); extern int __REDIRECT (scanf, (const char *__restrict __format, ...), __isoc99_scanf) __wur; extern int __REDIRECT_NTH (sscanf, (const char *__restrict __s, const char *__restrict __format, ...), __isoc99_sscanf); # else # 472 "/usr/include/stdio.h" 3 4 extern int __isoc99_fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __wur __nonnull ((1)); extern int __isoc99_scanf (const char *__restrict __format, ...) __wur; extern int __isoc99_sscanf (const char *__restrict __s, const char *__restrict __format, ...) __THROW; # define fscanf __isoc99_fscanf # define scanf __isoc99_scanf # define sscanf __isoc99_sscanf # endif # 482 "/usr/include/stdio.h" 3 4 # endif # 483 "/usr/include/stdio.h" 3 4 #endif # 484 "/usr/include/stdio.h" 3 4 #ifdef __USE_ISOC99 /* Read formatted input from S into argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))) __wur __nonnull ((1)); /* Read formatted input from stdin into argument list ARG. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; /* Read formatted input from S into argument list ARG. */ extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __THROW __attribute__ ((__format__ (__scanf__, 2, 0))); /* Same redirection as above for the v*scanf family. */ #if 0 /* disabled by -frewrite-includes */ # if !__GLIBC_USE (DEPRECATED_SCANF) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 508 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (C23_STRTOL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 509 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __REDIRECT && !defined __LDBL_COMPAT \ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 511 "/usr/include/stdio.h" 3 4 extern int __REDIRECT (vfscanf, (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg), __isoc23_vfscanf) __attribute__ ((__format__ (__scanf__, 2, 0))) __wur __nonnull ((1)); extern int __REDIRECT (vscanf, (const char *__restrict __format, __gnuc_va_list __arg), __isoc23_vscanf) __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; extern int __REDIRECT_NTH (vsscanf, (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg), __isoc23_vsscanf) __attribute__ ((__format__ (__scanf__, 2, 0))); #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __REDIRECT #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 525 "/usr/include/stdio.h" 3 4 extern int __isoc23_vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __wur __nonnull ((1)); extern int __isoc23_vscanf (const char *__restrict __format, __gnuc_va_list __arg) __wur; extern int __isoc23_vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __THROW; # define vfscanf __isoc23_vfscanf # define vscanf __isoc23_vscanf # define vsscanf __isoc23_vsscanf # endif # 537 "/usr/include/stdio.h" 3 4 # else # 538 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __REDIRECT && !defined __LDBL_COMPAT \ && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 540 "/usr/include/stdio.h" 3 4 extern int __REDIRECT (vfscanf, (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg), __isoc99_vfscanf) __attribute__ ((__format__ (__scanf__, 2, 0))) __wur __nonnull ((1)); extern int __REDIRECT (vscanf, (const char *__restrict __format, __gnuc_va_list __arg), __isoc99_vscanf) __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; extern int __REDIRECT_NTH (vsscanf, (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg), __isoc99_vsscanf) __attribute__ ((__format__ (__scanf__, 2, 0))); #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __REDIRECT #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 554 "/usr/include/stdio.h" 3 4 extern int __isoc99_vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __wur __nonnull ((1)); extern int __isoc99_vscanf (const char *__restrict __format, __gnuc_va_list __arg) __wur; extern int __isoc99_vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __THROW; # define vfscanf __isoc99_vfscanf # define vscanf __isoc99_vscanf # define vsscanf __isoc99_vsscanf # endif # 566 "/usr/include/stdio.h" 3 4 # endif # 567 "/usr/include/stdio.h" 3 4 # endif # 568 "/usr/include/stdio.h" 3 4 #endif /* Use ISO C9x. */ # 569 "/usr/include/stdio.h" 3 4 /* Read a character from STREAM. These functions are possible cancellation points and therefore not marked with __THROW. */ extern int fgetc (FILE *__stream) __nonnull ((1)); extern int getc (FILE *__stream) __nonnull ((1)); /* Read a character from stdin. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int getchar (void); #ifdef __USE_POSIX199506 /* These are defined in POSIX.1:1996. These functions are possible cancellation points and therefore not marked with __THROW. */ extern int getc_unlocked (FILE *__stream) __nonnull ((1)); extern int getchar_unlocked (void); #endif /* Use POSIX. */ # 592 "/usr/include/stdio.h" 3 4 #ifdef __USE_MISC /* Faster version when locking is not necessary. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern int fgetc_unlocked (FILE *__stream) __nonnull ((1)); #endif /* Use MISC. */ # 602 "/usr/include/stdio.h" 3 4 /* Write a character to STREAM. These functions are possible cancellation points and therefore not marked with __THROW. These functions is a possible cancellation point and therefore not marked with __THROW. */ extern int fputc (int __c, FILE *__stream) __nonnull ((2)); extern int putc (int __c, FILE *__stream) __nonnull ((2)); /* Write a character to stdout. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int putchar (int __c); #ifdef __USE_MISC /* Faster version when locking is not necessary. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern int fputc_unlocked (int __c, FILE *__stream) __nonnull ((2)); #endif /* Use MISC. */ # 629 "/usr/include/stdio.h" 3 4 #ifdef __USE_POSIX199506 /* These are defined in POSIX.1:1996. These functions are possible cancellation points and therefore not marked with __THROW. */ extern int putc_unlocked (int __c, FILE *__stream) __nonnull ((2)); extern int putchar_unlocked (int __c); #endif /* Use POSIX. */ # 638 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC \ || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 642 "/usr/include/stdio.h" 3 4 /* Get a word (int) from STREAM. */ extern int getw (FILE *__stream) __nonnull ((1)); /* Write a word (int) to STREAM. */ extern int putw (int __w, FILE *__stream) __nonnull ((2)); #endif # 648 "/usr/include/stdio.h" 3 4 /* Get a newline-terminated string of finite length from STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) __wur __fortified_attr_access (__write_only__, 1, 2) __nonnull ((3)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (DEPRECATED_GETS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 658 "/usr/include/stdio.h" 3 4 /* Get a newline-terminated string from stdin, removing the newline. This function is impossible to use safely. It has been officially removed from ISO C11 and ISO C++14, and we have also removed it from the _GNU_SOURCE feature list. It remains available when explicitly using an old ISO C, Unix, or POSIX standard. This function is a possible cancellation point and therefore not marked with __THROW. */ extern char *gets (char *__s) __wur __attribute_deprecated__; #endif # 669 "/usr/include/stdio.h" 3 4 #ifdef __USE_GNU /* This function does the same as `fgets' but does not lock the stream. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) __wur __fortified_attr_access (__write_only__, 1, 2) __nonnull ((3)); #endif # 681 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 684 "/usr/include/stdio.h" 3 4 /* Read up to (and including) a DELIMITER from STREAM into *LINEPTR (and null-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *N characters of space. It is realloc'd as necessary. Returns the number of characters read (not including the null terminator), or -1 on error or EOF. */ extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __wur __nonnull ((4)); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream) __wur __nonnull ((4)); /* Like `getdelim', but reads up to a newline. */ extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur __nonnull ((3)); #endif # 701 "/usr/include/stdio.h" 3 4 /* Write a string to STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fputs (const char *__restrict __s, FILE *__restrict __stream) __nonnull ((2)); /* Write a string, followed by a newline, to stdout. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int puts (const char *__s); /* Push a character back onto the input buffer of STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int ungetc (int __c, FILE *__stream) __nonnull ((2)); /* Read chunks of generic data from STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __wur __nonnull((4)); /* Write chunks of generic data to STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern size_t fwrite (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s) __nonnull((4)); #ifdef __USE_GNU /* This function does the same as `fputs' but does not lock the stream. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern int fputs_unlocked (const char *__restrict __s, FILE *__restrict __stream) __nonnull ((2)); #endif # 748 "/usr/include/stdio.h" 3 4 #ifdef __USE_MISC /* Faster versions when locking is not necessary. These functions are not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation they are cancellation points and therefore not marked with __THROW. */ extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __wur __nonnull ((4)); extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __nonnull ((4)); #endif # 763 "/usr/include/stdio.h" 3 4 /* Seek to a certain position on STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fseek (FILE *__stream, long int __off, int __whence) __nonnull ((1)); /* Return the current position of STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern long int ftell (FILE *__stream) __wur __nonnull ((1)); /* Rewind to the beginning of STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern void rewind (FILE *__stream) __nonnull ((1)); /* The Single Unix Specification, Version 2, specifies an alternative, more adequate interface for the two functions above which deal with file offset. `long int' is not the right type. These definitions are originally defined in the Large File Support API. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_LARGEFILE || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 788 "/usr/include/stdio.h" 3 4 # ifndef __USE_FILE_OFFSET64 /* Seek to a certain position on STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fseeko (FILE *__stream, __off_t __off, int __whence) __nonnull ((1)); /* Return the current position of STREAM. This function is a possible cancellation point and therefore not marked with __THROW. */ extern __off_t ftello (FILE *__stream) __wur __nonnull ((1)); # else # 801 "/usr/include/stdio.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (fseeko, (FILE *__stream, __off64_t __off, int __whence), fseeko64) __nonnull ((1)); extern __off64_t __REDIRECT (ftello, (FILE *__stream), ftello64) __nonnull ((1)); # else # 808 "/usr/include/stdio.h" 3 4 # define fseeko fseeko64 # define ftello ftello64 # endif # 811 "/usr/include/stdio.h" 3 4 # endif # 812 "/usr/include/stdio.h" 3 4 #endif # 813 "/usr/include/stdio.h" 3 4 #ifndef __USE_FILE_OFFSET64 /* Get STREAM's position. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __nonnull ((1)); /* Set STREAM's position. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int fsetpos (FILE *__stream, const fpos_t *__pos) __nonnull ((1)); #else # 827 "/usr/include/stdio.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (fgetpos, (FILE *__restrict __stream, fpos_t *__restrict __pos), fgetpos64) __nonnull ((1)); extern int __REDIRECT (fsetpos, (FILE *__stream, const fpos_t *__pos), fsetpos64) __nonnull ((1)); # else # 835 "/usr/include/stdio.h" 3 4 # define fgetpos fgetpos64 # define fsetpos fsetpos64 # endif # 838 "/usr/include/stdio.h" 3 4 #endif # 839 "/usr/include/stdio.h" 3 4 #ifdef __USE_LARGEFILE64 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence) __nonnull ((1)); extern __off64_t ftello64 (FILE *__stream) __wur __nonnull ((1)); extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos) __nonnull ((1)); extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos) __nonnull ((1)); #endif # 848 "/usr/include/stdio.h" 3 4 /* Clear the error and EOF indicators for STREAM. */ extern void clearerr (FILE *__stream) __THROW __nonnull ((1)); /* Return the EOF indicator for STREAM. */ extern int feof (FILE *__stream) __THROW __wur __nonnull ((1)); /* Return the error indicator for STREAM. */ extern int ferror (FILE *__stream) __THROW __wur __nonnull ((1)); #ifdef __USE_MISC /* Faster versions when locking is not required. */ extern void clearerr_unlocked (FILE *__stream) __THROW __nonnull ((1)); extern int feof_unlocked (FILE *__stream) __THROW __wur __nonnull ((1)); extern int ferror_unlocked (FILE *__stream) __THROW __wur __nonnull ((1)); #endif # 862 "/usr/include/stdio.h" 3 4 /* Print a message describing the meaning of the value of errno. This function is a possible cancellation point and therefore not marked with __THROW. */ extern void perror (const char *__s) __COLD; #ifdef __USE_POSIX /* Return the system file descriptor for STREAM. */ extern int fileno (FILE *__stream) __THROW __wur __nonnull ((1)); #endif /* Use POSIX. */ # 875 "/usr/include/stdio.h" 3 4 #ifdef __USE_MISC /* Faster version when locking is not required. */ extern int fileno_unlocked (FILE *__stream) __THROW __wur __nonnull ((1)); #endif # 880 "/usr/include/stdio.h" 3 4 #ifdef __USE_POSIX2 /* Close a stream opened by popen and return the status of its child. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int pclose (FILE *__stream) __nonnull ((1)); /* Create a new stream connected to a pipe running the given command. This function is a possible cancellation point and therefore not marked with __THROW. */ extern FILE *popen (const char *__command, const char *__modes) __attribute_malloc__ __attr_dealloc (pclose, 1) __wur; #endif # 897 "/usr/include/stdio.h" 3 4 #ifdef __USE_POSIX /* Return the name of the controlling terminal. */ extern char *ctermid (char *__s) __THROW __attr_access ((__write_only__, 1)); #endif /* Use POSIX. */ # 904 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN && !defined __USE_XOPEN2K) || defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 907 "/usr/include/stdio.h" 3 4 /* Return the name of the current user. */ extern char *cuserid (char *__s) __attr_access ((__write_only__, 1)); #endif /* Use X/Open, but not issue 6. */ # 911 "/usr/include/stdio.h" 3 4 #ifdef __USE_GNU struct obstack; /* See . */ /* Write formatted output to an obstack. */ extern int obstack_printf (struct obstack *__restrict __obstack, const char *__restrict __format, ...) __THROWNL __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, const char *__restrict __format, __gnuc_va_list __args) __THROWNL __attribute__ ((__format__ (__printf__, 2, 0))); #endif /* Use GNU. */ # 925 "/usr/include/stdio.h" 3 4 #ifdef __USE_POSIX199506 /* These are defined in POSIX.1:1996. */ /* Acquire ownership of STREAM. */ extern void flockfile (FILE *__stream) __THROW __nonnull ((1)); /* Try to acquire ownership of STREAM but do not block if it is not possible. */ extern int ftrylockfile (FILE *__stream) __THROW __wur __nonnull ((1)); /* Relinquish the ownership granted for STREAM. */ extern void funlockfile (FILE *__stream) __THROW __nonnull ((1)); #endif /* POSIX */ # 940 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN && !defined __USE_XOPEN2K && !defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 942 "/usr/include/stdio.h" 3 4 /* X/Open Issues 1-5 required getopt to be declared in this header. It was removed in Issue 6. GNU follows Issue 6. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 944 "/usr/include/stdio.h" 3 4 # 945 "/usr/include/stdio.h" 3 4 #endif # 946 "/usr/include/stdio.h" 3 4 /* Slow-path routines used by the optimized inline functions in bits/stdio.h. */ extern int __uflow (FILE *); extern int __overflow (FILE *, int); #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 953 "/usr/include/stdio.h" 3 4 /* Declare all functions from bits/stdio2-decl.h first. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 954 "/usr/include/stdio.h" 3 4 # 955 "/usr/include/stdio.h" 3 4 #endif # 956 "/usr/include/stdio.h" 3 4 /* The following headers provide asm redirections. These redirections must appear before the first usage of these functions, e.g. in bits/stdio.h. */ #if 0 /* disabled by -frewrite-includes */ #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 960 "/usr/include/stdio.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 960 "/usr/include/stdio.h" 3 4 # 961 "/usr/include/stdio.h" 3 4 #endif # 962 "/usr/include/stdio.h" 3 4 /* If we are compiling with optimizing read this file. It contains several optimizing inline functions and macros. */ #ifdef __USE_EXTERN_INLINES #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdio.h expanded by -frewrite-includes */ # include #else /* stdio.h expanded by -frewrite-includes */ # 966 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 /* Optimizing macros and inline functions for stdio functions. Copyright (C) 1998-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_STDIO_H #define _BITS_STDIO_H 1 #ifndef _STDIO_H # error "Never include directly; use instead." #endif # 25 "/usr/include/bits/stdio.h" 3 4 #ifndef __extern_inline # define __STDIO_INLINE inline #else # 29 "/usr/include/bits/stdio.h" 3 4 # define __STDIO_INLINE __extern_inline #endif # 31 "/usr/include/bits/stdio.h" 3 4 #ifdef __USE_EXTERN_INLINES /* For -D_FORTIFY_SOURCE{,=2,=3} bits/stdio2.h will define a different inline. */ #if 0 /* disabled by -frewrite-includes */ # if !(__USE_FORTIFY_LEVEL > 0 && defined __fortify_function) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 37 "/usr/include/bits/stdio.h" 3 4 /* Write formatted output to stdout from argument list ARG. */ __STDIO_INLINE int vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } # endif # 44 "/usr/include/bits/stdio.h" 3 4 /* Read a character from stdin. */ __STDIO_INLINE int getchar (void) { return getc (stdin); } # ifdef __USE_MISC /* Faster version when locking is not necessary. */ __STDIO_INLINE int fgetc_unlocked (FILE *__fp) { return __getc_unlocked_body (__fp); } # endif /* misc */ # 61 "/usr/include/bits/stdio.h" 3 4 # ifdef __USE_POSIX199506 /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int getc_unlocked (FILE *__fp) { return __getc_unlocked_body (__fp); } /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int getchar_unlocked (void) { return __getc_unlocked_body (stdin); } # endif /* POSIX */ # 78 "/usr/include/bits/stdio.h" 3 4 /* Write a character to stdout. */ __STDIO_INLINE int putchar (int __c) { return putc (__c, stdout); } # ifdef __USE_MISC /* Faster version when locking is not necessary. */ __STDIO_INLINE int fputc_unlocked (int __c, FILE *__stream) { return __putc_unlocked_body (__c, __stream); } # endif /* misc */ # 96 "/usr/include/bits/stdio.h" 3 4 # ifdef __USE_POSIX199506 /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int putc_unlocked (int __c, FILE *__stream) { return __putc_unlocked_body (__c, __stream); } /* This is defined in POSIX.1:1996. */ __STDIO_INLINE int putchar_unlocked (int __c) { return __putc_unlocked_body (__c, stdout); } # endif /* POSIX */ # 113 "/usr/include/bits/stdio.h" 3 4 # ifdef __USE_GNU /* Like `getdelim', but reads up to a newline. */ __STDIO_INLINE __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } # endif /* GNU */ # 123 "/usr/include/bits/stdio.h" 3 4 # ifdef __USE_MISC /* Faster versions when locking is not required. */ __STDIO_INLINE int __NTH (feof_unlocked (FILE *__stream)) { return __feof_unlocked_body (__stream); } /* Faster versions when locking is not required. */ __STDIO_INLINE int __NTH (ferror_unlocked (FILE *__stream)) { return __ferror_unlocked_body (__stream); } # endif /* misc */ # 140 "/usr/include/bits/stdio.h" 3 4 #endif /* Use extern inlines. */ # 142 "/usr/include/bits/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC && defined __GNUC__ && defined __OPTIMIZE__ \ && !defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 146 "/usr/include/bits/stdio.h" 3 4 /* Perform some simple optimizations. */ # define fread_unlocked(ptr, size, n, stream) \ (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ && (size_t) (size) * (size_t) (n) <= 8 \ && (size_t) (size) != 0) \ ? ({ char *__ptr = (char *) (ptr); \ FILE *__stream = (stream); \ size_t __cnt; \ for (__cnt = (size_t) (size) * (size_t) (n); \ __cnt > 0; --__cnt) \ { \ int __c = getc_unlocked (__stream); \ if (__c == EOF) \ break; \ *__ptr++ = __c; \ } \ ((size_t) (size) * (size_t) (n) - __cnt) \ / (size_t) (size); }) \ : (((__builtin_constant_p (size) && (size_t) (size) == 0) \ || (__builtin_constant_p (n) && (size_t) (n) == 0)) \ /* Evaluate all parameters once. */ \ ? ((void) (ptr), (void) (stream), (void) (size), \ (void) (n), (size_t) 0) \ : fread_unlocked (ptr, size, n, stream)))) # define fwrite_unlocked(ptr, size, n, stream) \ (__extension__ ((__builtin_constant_p (size) && __builtin_constant_p (n) \ && (size_t) (size) * (size_t) (n) <= 8 \ && (size_t) (size) != 0) \ ? ({ const char *__ptr = (const char *) (ptr); \ FILE *__stream = (stream); \ size_t __cnt; \ for (__cnt = (size_t) (size) * (size_t) (n); \ __cnt > 0; --__cnt) \ if (putc_unlocked (*__ptr++, __stream) == EOF) \ break; \ ((size_t) (size) * (size_t) (n) - __cnt) \ / (size_t) (size); }) \ : (((__builtin_constant_p (size) && (size_t) (size) == 0) \ || (__builtin_constant_p (n) && (size_t) (n) == 0)) \ /* Evaluate all parameters once. */ \ ? ((void) (ptr), (void) (stream), (void) (size), \ (void) (n), (size_t) 0) \ : fwrite_unlocked (ptr, size, n, stream)))) #endif # 191 "/usr/include/bits/stdio.h" 3 4 /* Define helper macro. */ #undef __STDIO_INLINE #endif /* bits/stdio.h. */ # 196 "/usr/include/bits/stdio.h" 3 4 #endif /* stdio.h expanded by -frewrite-includes */ # 967 "/usr/include/stdio.h" 2 3 4 #endif # 968 "/usr/include/stdio.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 969 "/usr/include/stdio.h" 3 4 /* Now include the function definitions and redirects too. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 970 "/usr/include/stdio.h" 3 4 # 971 "/usr/include/stdio.h" 3 4 #endif # 972 "/usr/include/stdio.h" 3 4 __END_DECLS #endif /* included. */ # 976 "/usr/include/stdio.h" 3 4 #endif /* stdio.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/errors.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/errors.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 1 3 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 30 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #else # 32 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need_va_copy #endif # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_header_macro.h expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #else /* __stdarg_header_macro.h expanded by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_header_macro.h" 1 3 /*===---- __stdarg_header_macro.h ------------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __STDARG_H #define __STDARG_H #endif # 13 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_header_macro.h" 3 #endif /* __stdarg_header_macro.h expanded by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 2 3 #endif # 49 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #endif /* expanded by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 52 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_list #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_va_list.h expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #else /* __stdarg_va_list.h expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_list.h" 1 3 /*===---- __stdarg_va_list.h - Definition of va_list -----------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef _VA_LIST #define _VA_LIST typedef __builtin_va_list va_list; #endif # 14 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_list.h" 3 #endif /* __stdarg_va_list.h expanded by -frewrite-includes */ # 57 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 2 3 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_arg #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_va_arg.h expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #else /* __stdarg_va_arg.h expanded by -frewrite-includes */ # 61 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_arg.h" 1 3 /*===---- __stdarg_va_arg.h - Definitions of va_start, va_arg, va_end-------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef va_arg #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 13 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_arg.h" 3 /* C23 does not require the second parameter for va_start. */ #define va_start(ap, ...) __builtin_va_start(ap, 0) #else # 16 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_arg.h" 3 /* Versions before C23 do require the second parameter. */ #define va_start(ap, param) __builtin_va_start(ap, param) #endif # 19 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_arg.h" 3 #define va_end(ap) __builtin_va_end(ap) #define va_arg(ap, type) __builtin_va_arg(ap, type) #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_arg.h" 3 #endif /* __stdarg_va_arg.h expanded by -frewrite-includes */ # 62 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 2 3 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_copy #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg___va_copy.h expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #else /* __stdarg___va_copy.h expanded by -frewrite-includes */ # 66 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stdarg___va_copy.h" 1 3 /*===---- __stdarg___va_copy.h - Definition of __va_copy -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __va_copy #define __va_copy(d, s) __builtin_va_copy(d, s) #endif # 13 "/home/marcus/llvm20/lib/clang/20/include/__stdarg___va_copy.h" 3 #endif /* __stdarg___va_copy.h expanded by -frewrite-includes */ # 67 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 2 3 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_copy #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stdarg_va_copy.h expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #else /* __stdarg_va_copy.h expanded by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_copy.h" 1 3 /*===---- __stdarg_va_copy.h - Definition of va_copy------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef va_copy #define va_copy(dest, src) __builtin_va_copy(dest, src) #endif # 13 "/home/marcus/llvm20/lib/clang/20/include/__stdarg_va_copy.h" 3 #endif /* __stdarg_va_copy.h expanded by -frewrite-includes */ # 72 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 2 3 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* __MVS__ */ # 76 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* stdarg.h expanded by -frewrite-includes */ # 41 "../mesa/src/mesa/main/errors.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 41 "../mesa/src/mesa/main/errors.h" # 42 "../mesa/src/mesa/main/errors.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* menums.h expanded by -frewrite-includes */ #include "menums.h" #else /* menums.h expanded by -frewrite-includes */ # 42 "../mesa/src/mesa/main/errors.h" # 1 "../mesa/src/mesa/main/menums.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * Copyright (C) 2018 Advanced Micro Devices, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file menums.h * Often used definitions and enums. */ #ifndef MENUMS_H #define MENUMS_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdbool.h expanded by -frewrite-includes */ #include #else /* stdbool.h expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/menums.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 1 3 /*===---- stdbool.h - Standard header for booleans -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __STDBOOL_H #define __STDBOOL_H #define __bool_true_false_are_defined 1 #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 # 17 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #else # 18 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ > 201710L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 20 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 /* FIXME: We should be issuing a deprecation warning here, but cannot yet due * to system headers which include this header file unconditionally. */ #if 0 /* disabled by -frewrite-includes */ #if 0 #elif !defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 24 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #define bool _Bool #define true 1 #define false 0 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) && !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 /* Define _Bool as a GNU extension. */ #define _Bool bool #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && __cplusplus < 201103L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 31 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 /* For C++98, define bool, false, true as a GNU extension. */ #define bool bool #define false false #define true true #endif # 36 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #endif # 37 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #endif /* __MVS__ */ # 39 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #endif /* __STDBOOL_H */ # 40 "/home/marcus/llvm20/lib/clang/20/include/stdbool.h" 3 #endif /* stdbool.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/menums.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* macros.h expanded by -frewrite-includes */ #include "util/macros.h" #else /* macros.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/menums.h" # 1 "../mesa/src/util/macros.h" 1 /* * Copyright © 2014 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef UTIL_MACROS_H #define UTIL_MACROS_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 27 "../mesa/src/util/macros.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 28 "../mesa/src/util/macros.h" 2 #if 0 /* disabled by -frewrite-includes */ #if defined(__HAIKU__) && !defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 29 "../mesa/src/util/macros.h" #define static_assert _Static_assert #endif # 31 "../mesa/src/util/macros.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 31 "../mesa/src/util/macros.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_header_macro.h expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #else /* __stddef_header_macro.h expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_header_macro.h" 1 3 /*===---- __stddef_header_macro.h ------------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __STDDEF_H #define __STDDEF_H #endif # 13 "/home/marcus/llvm20/lib/clang/20/include/__stddef_header_macro.h" 3 #endif /* __stddef_header_macro.h expanded by -frewrite-includes */ # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_max_align_t.h expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #else /* __stddef_max_align_t.h expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_max_align_t.h" 1 3 /*===---- __stddef_max_align_t.h - Definition of max_align_t ---------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __CLANG_MAX_ALIGN_T_DEFINED #define __CLANG_MAX_ALIGN_T_DEFINED #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/__stddef_max_align_t.h" 3 typedef double max_align_t; #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__APPLE__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_max_align_t.h" 3 typedef long double max_align_t; #else # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_max_align_t.h" 3 // Define 'max_align_t' to match the GCC definition. typedef struct { long long __clang_max_align_nonce1 __attribute__((__aligned__(__alignof__(long long)))); long double __clang_max_align_nonce2 __attribute__((__aligned__(__alignof__(long double)))); } max_align_t; #endif # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_max_align_t.h" 3 #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_max_align_t.h" 3 #endif /* __stddef_max_align_t.h expanded by -frewrite-includes */ # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 32 "../mesa/src/util/macros.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../mesa/src/util/macros.h" # 33 "../mesa/src/util/macros.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/util/macros.h" # 34 "../mesa/src/util/macros.h" #ifdef _GAMING_XBOX #define strdup _strdup #define stricmp _stricmp #define unlink _unlink #define access(a, b) _access(a, b) #endif # 41 "../mesa/src/util/macros.h" /* Compute the size of an array */ #ifndef ARRAY_SIZE # define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #endif # 46 "../mesa/src/util/macros.h" /* For compatibility with Clang's __has_builtin() */ #ifndef __has_builtin # define __has_builtin(x) 0 #endif # 51 "../mesa/src/util/macros.h" #ifndef __has_attribute # define __has_attribute(x) 0 #endif # 55 "../mesa/src/util/macros.h" /** * __builtin_expect macros */ #if 0 /* disabled by -frewrite-includes */ #if !defined(HAVE___BUILTIN_EXPECT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 60 "../mesa/src/util/macros.h" # define __builtin_expect(x, y) (x) #endif # 62 "../mesa/src/util/macros.h" #ifndef likely # ifdef HAVE___BUILTIN_EXPECT # define likely(x) __builtin_expect(!!(x), 1) # define unlikely(x) __builtin_expect(!!(x), 0) # else # 68 "../mesa/src/util/macros.h" # define likely(x) (x) # define unlikely(x) (x) # endif # 71 "../mesa/src/util/macros.h" #endif # 72 "../mesa/src/util/macros.h" /** * __builtin_types_compatible_p compat */ #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) || !defined(HAVE___BUILTIN_TYPES_COMPATIBLE_P) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 77 "../mesa/src/util/macros.h" # define __builtin_types_compatible_p(type1, type2) (1) #endif # 79 "../mesa/src/util/macros.h" /* This should match linux gcc cdecl semantics everywhere, so that we * just codegen one calling convention on all platforms. */ #ifdef _MSC_VER #define UTIL_CDECL __cdecl #else # 86 "../mesa/src/util/macros.h" #define UTIL_CDECL #endif # 88 "../mesa/src/util/macros.h" /** * Static (compile-time) assertion. */ #define STATIC_ASSERT(cond) do { \ static_assert(cond, #cond); \ } while (0) /** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the member. * @type: the type of the container struct this is embedded in. * @member: the name of the member within the struct. */ #ifndef __GNUC__ /* a grown-up compiler is required for the extra type checking: */ # define container_of(ptr, type, member) \ (type*)((uint8_t *)ptr - offsetof(type, member)) #else # 107 "../mesa/src/util/macros.h" # define __same_type(a, b) \ __builtin_types_compatible_p(__typeof__(a), __typeof__(b)) # define container_of(ptr, type, member) ({ \ uint8_t *__mptr = (uint8_t *)(ptr); \ static_assert(__same_type(*(ptr), ((type *)0)->member) || \ __same_type(*(ptr), void), \ "pointer type mismatch in container_of()"); \ ((type *)(__mptr - offsetof(type, member))); \ }) #endif # 117 "../mesa/src/util/macros.h" /** * Unreachable macro. Useful for suppressing "control reaches end of non-void * function" warnings. */ #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_UNREACHABLE) || __has_builtin(__builtin_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "../mesa/src/util/macros.h" #define unreachable(str) \ do { \ assert(!"" str); \ __builtin_unreachable(); \ } while (0) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined (_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 129 "../mesa/src/util/macros.h" #define unreachable(str) \ do { \ assert(!"" str); \ __assume(0); \ } while (0) #else # 135 "../mesa/src/util/macros.h" #define unreachable(str) assert(!"" str) #endif # 137 "../mesa/src/util/macros.h" /** * Assume macro. Useful for expressing our assumptions to the compiler, * typically for purposes of silencing warnings. */ #if 0 /* disabled by -frewrite-includes */ #if __has_builtin(__builtin_assume) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 143 "../mesa/src/util/macros.h" #define assume(expr) \ do { \ assert(expr); \ __builtin_assume(expr); \ } while (0) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined HAVE___BUILTIN_UNREACHABLE #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 149 "../mesa/src/util/macros.h" #define assume(expr) ((expr) ? ((void) 0) \ : (assert(!"assumption failed"), \ __builtin_unreachable())) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined (_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 153 "../mesa/src/util/macros.h" #define assume(expr) __assume(expr) #else # 155 "../mesa/src/util/macros.h" #define assume(expr) assert(expr) #endif # 157 "../mesa/src/util/macros.h" /* Attribute const is used for functions that have no effects other than their * return value, and only rely on the argument values to compute the return * value. As a result, calls to it can be CSEed. Note that using memory * pointed to by the arguments is not allowed for const functions. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__clang__) && defined(HAVE_FUNC_ATTRIBUTE_CONST) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 164 "../mesa/src/util/macros.h" #define ATTRIBUTE_CONST __attribute__((__const__)) #else # 166 "../mesa/src/util/macros.h" #define ATTRIBUTE_CONST #endif # 168 "../mesa/src/util/macros.h" #ifdef HAVE_FUNC_ATTRIBUTE_FLATTEN #define FLATTEN __attribute__((__flatten__)) #else # 172 "../mesa/src/util/macros.h" #define FLATTEN #endif # 174 "../mesa/src/util/macros.h" #ifdef HAVE_FUNC_ATTRIBUTE_FORMAT #if 0 /* disabled by -frewrite-includes */ #if defined (__MINGW_PRINTF_FORMAT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 177 "../mesa/src/util/macros.h" # define PRINTFLIKE(f, a) __attribute__ ((format(__MINGW_PRINTF_FORMAT, f, a))) #else # 179 "../mesa/src/util/macros.h" # define PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a))) #endif # 181 "../mesa/src/util/macros.h" #else # 182 "../mesa/src/util/macros.h" #define PRINTFLIKE(f, a) #endif # 184 "../mesa/src/util/macros.h" #ifdef HAVE_FUNC_ATTRIBUTE_MALLOC #define MALLOCLIKE __attribute__((__malloc__)) #else # 188 "../mesa/src/util/macros.h" #define MALLOCLIKE #endif # 190 "../mesa/src/util/macros.h" /* Forced function inlining */ /* Note: Clang also sets __GNUC__ (see other cases below) */ #ifndef ALWAYS_INLINE #if 0 /* disabled by -frewrite-includes */ # if defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 195 "../mesa/src/util/macros.h" # define ALWAYS_INLINE inline __attribute__((always_inline)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 197 "../mesa/src/util/macros.h" # define ALWAYS_INLINE __forceinline # else # 199 "../mesa/src/util/macros.h" # define ALWAYS_INLINE inline # endif # 201 "../mesa/src/util/macros.h" #endif # 202 "../mesa/src/util/macros.h" /* Used to optionally mark structures with misaligned elements or size as * packed, to trade off performance for space. */ #ifdef HAVE_FUNC_ATTRIBUTE_PACKED #if 0 /* disabled by -frewrite-includes */ # if defined(__MINGW32__) || defined(__MINGW64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 208 "../mesa/src/util/macros.h" # define PACKED __attribute__((gcc_struct,__packed__)) # else # 210 "../mesa/src/util/macros.h" # define PACKED __attribute__((__packed__)) # endif # 212 "../mesa/src/util/macros.h" # define ENUM_PACKED __attribute__((packed)) #else # 214 "../mesa/src/util/macros.h" #define PACKED #define ENUM_PACKED #endif # 217 "../mesa/src/util/macros.h" /* Attribute pure is used for functions that have no effects other than their * return value. As a result, calls to it can be dead code eliminated. */ #ifdef HAVE_FUNC_ATTRIBUTE_PURE #define ATTRIBUTE_PURE __attribute__((__pure__)) #else # 224 "../mesa/src/util/macros.h" #define ATTRIBUTE_PURE #endif # 226 "../mesa/src/util/macros.h" #ifdef HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL #define ATTRIBUTE_RETURNS_NONNULL __attribute__((__returns_nonnull__)) #else # 230 "../mesa/src/util/macros.h" #define ATTRIBUTE_RETURNS_NONNULL #endif # 232 "../mesa/src/util/macros.h" #ifndef NORETURN # ifdef _MSC_VER # define NORETURN __declspec(noreturn) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined HAVE_FUNC_ATTRIBUTE_NORETURN #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 237 "../mesa/src/util/macros.h" # define NORETURN __attribute__((__noreturn__)) # else # 239 "../mesa/src/util/macros.h" # define NORETURN # endif # 241 "../mesa/src/util/macros.h" #endif # 242 "../mesa/src/util/macros.h" #ifdef HAVE_FUNC_ATTRIBUTE_OPTIMIZE #define ATTRIBUTE_OPTIMIZE(flags) __attribute__((__optimize__((flags)))) #else # 246 "../mesa/src/util/macros.h" #define ATTRIBUTE_OPTIMIZE(flags) #endif # 248 "../mesa/src/util/macros.h" #ifdef __cplusplus /** * Macro function that evaluates to true if T is a trivially * destructible type -- that is, if its (non-virtual) destructor * performs no action and all member variables and base classes are * trivially destructible themselves. */ #if 0 /* disabled by -frewrite-includes */ # if defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 257 "../mesa/src/util/macros.h" #if 0 /* disabled by -frewrite-includes */ # if __has_builtin(__is_trivially_destructible) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "../mesa/src/util/macros.h" # define HAS_TRIVIAL_DESTRUCTOR(T) __is_trivially_destructible(T) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif (defined(__has_feature) && __has_feature(has_trivial_destructor)) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 260 "../mesa/src/util/macros.h" # define HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) # endif # 262 "../mesa/src/util/macros.h" #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 263 "../mesa/src/util/macros.h" #if 0 /* disabled by -frewrite-includes */ # if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 264 "../mesa/src/util/macros.h" # define HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) # endif # 266 "../mesa/src/util/macros.h" #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(_MSC_VER) && !defined(__INTEL_COMPILER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 267 "../mesa/src/util/macros.h" # define HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) # endif # 269 "../mesa/src/util/macros.h" # ifndef HAS_TRIVIAL_DESTRUCTOR /* It's always safe (if inefficient) to assume that a * destructor is non-trivial. */ # define HAS_TRIVIAL_DESTRUCTOR(T) (false) # endif # 275 "../mesa/src/util/macros.h" #endif # 276 "../mesa/src/util/macros.h" /** * 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 */ #ifndef PUBLIC #if 0 /* disabled by -frewrite-includes */ # if defined(_WIN32) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 288 "../mesa/src/util/macros.h" # define PUBLIC __declspec(dllexport) # define USED #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 291 "../mesa/src/util/macros.h" # define PUBLIC __attribute__((visibility("default"))) # define USED __attribute__((used)) # else # 294 "../mesa/src/util/macros.h" # define PUBLIC # define USED # endif # 297 "../mesa/src/util/macros.h" #endif # 298 "../mesa/src/util/macros.h" /** * UNUSED marks variables (or sometimes functions) that have to be defined, * but are sometimes (or always) unused beyond that. A common case is for * a function parameter to be used in some build configurations but not others. * Another case is fallback vfuncs that don't do anything with their params. * * Note that this should not be used for identifiers used in `assert()`; * see ASSERTED below. */ #ifdef HAVE_FUNC_ATTRIBUTE_UNUSED #define UNUSED __attribute__((unused)) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined (_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 311 "../mesa/src/util/macros.h" #define UNUSED __pragma(warning(suppress:4100 4101 4189)) #else # 313 "../mesa/src/util/macros.h" #define UNUSED #endif # 315 "../mesa/src/util/macros.h" /** * Use ASSERTED to indicate that an identifier is unused outside of an `assert()`, * so that assert-free builds don't get "unused variable" warnings. */ #ifdef NDEBUG #define ASSERTED UNUSED #else # 323 "../mesa/src/util/macros.h" #define ASSERTED #endif # 325 "../mesa/src/util/macros.h" #ifdef HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT #define MUST_CHECK __attribute__((warn_unused_result)) #else # 329 "../mesa/src/util/macros.h" #define MUST_CHECK #endif # 331 "../mesa/src/util/macros.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 333 "../mesa/src/util/macros.h" #define ATTRIBUTE_NOINLINE __attribute__((noinline)) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 335 "../mesa/src/util/macros.h" #define ATTRIBUTE_NOINLINE __declspec(noinline) #else # 337 "../mesa/src/util/macros.h" #define ATTRIBUTE_NOINLINE #endif # 339 "../mesa/src/util/macros.h" /** * Check that STRUCT::FIELD can hold MAXVAL. We use a lot of bitfields * in Mesa/gallium. We have to be sure they're of sufficient size to * hold the largest expected value. * Note that with MSVC, enums are signed and enum bitfields need one extra * high bit (always zero) to ensure the max value is handled correctly. * This macro will detect that with MSVC, but not GCC. */ #define ASSERT_BITFIELD_SIZE(STRUCT, FIELD, MAXVAL) \ do { \ ASSERTED STRUCT s; \ s.FIELD = (MAXVAL); \ assert((int) s.FIELD == (MAXVAL) && "Insufficient bitfield size!"); \ } while (0) /** Compute ceiling of integer quotient of A divided by B. */ #define DIV_ROUND_UP( A, B ) ( ((A) + (B) - 1) / (B) ) /** * Clamp X to [MIN, MAX]. * This is a macro to allow float, int, unsigned, etc. types. * We arbitrarily turn NaN into MIN. */ #define CLAMP( X, MIN, MAX ) ( (X)>(MIN) ? ((X)>(MAX) ? (MAX) : (X)) : (MIN) ) /* Syntax sugar occuring frequently in graphics code */ #define SATURATE( X ) CLAMP(X, 0.0f, 1.0f) /** Minimum of two values: */ #define MIN2( A, B ) ( (A)<(B) ? (A) : (B) ) /** Maximum of two values: */ #define MAX2( A, B ) ( (A)>(B) ? (A) : (B) ) /** Minimum of three values: */ #define MIN3( A, B, C ) ((A) < (B) ? MIN2(A, C) : MIN2(B, C)) /** Maximum of three values: */ #define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C)) /** Minimum of four values: */ #define MIN4( A, B, C, D ) ((A) < (B) ? MIN3(A, C, D) : MIN3(B, C, D)) /** Maximum of four values: */ #define MAX4( A, B, C, D ) ((A) > (B) ? MAX3(A, C, D) : MAX3(B, C, D)) /** Align a value to a power of two */ #define ALIGN_POT(x, pot_align) (((x) + (pot_align) - 1) & ~((pot_align) - 1)) /** Checks is a value is a power of two. Does not handle zero. */ #define IS_POT(v) (((v) & ((v) - 1)) == 0) /** Checks is a value is a power of two. Zero handled. */ #define IS_POT_NONZERO(v) ((v) != 0 && IS_POT(v)) /** Set a single bit */ #define BITFIELD_BIT(b) (1u << (b)) /** Set all bits up to excluding bit b */ #define BITFIELD_MASK(b) \ ((b) == 32 ? (~0u) : BITFIELD_BIT((b) & 31) - 1) /** Set count bits starting from bit b */ #define BITFIELD_RANGE(b, count) \ (BITFIELD_MASK((b) + (count)) & ~BITFIELD_MASK(b)) /** Set a single bit */ #define BITFIELD64_BIT(b) (1ull << (b)) /** Set all bits up to excluding bit b */ #define BITFIELD64_MASK(b) \ ((b) == 64 ? (~0ull) : BITFIELD64_BIT((b) & 63) - 1) /** Set count bits starting from bit b */ #define BITFIELD64_RANGE(b, count) \ (BITFIELD64_MASK((b) + (count)) & ~BITFIELD64_MASK(b)) static inline int64_t u_intN_max(unsigned bit_size) { assert(bit_size <= 64 && bit_size > 0); return INT64_MAX >> (64 - bit_size); } static inline int64_t u_intN_min(unsigned bit_size) { /* On 2's compliment platforms, which is every platform Mesa is likely to * every worry about, stdint.h generally calculated INT##_MIN in this * manner. */ return (-u_intN_max(bit_size)) - 1; } static inline uint64_t u_uintN_max(unsigned bit_size) { assert(bit_size <= 64 && bit_size > 0); return UINT64_MAX >> (64 - bit_size); } /* alignas usage * For struct or union, use alignas(align_size) on any member * of it will make it aligned to align_size. * See https://en.cppreference.com/w/c/language/_Alignas for * details. We can use static_assert and alignof to check if * the alignment result of alignas(align_size) on struct or * union is valid. * For example: * static_assert(alignof(struct tgsi_exec_machine) == 16, "") * Also, we can use special code to see the size of the aligned * struct or union at the compile time with GCC, Clang or MSVC. * So we can see if the size of union or struct are as expected * when using alignas(align_size) on its member. * For example: * char (*__kaboom)[sizeof(struct tgsi_exec_machine)] = 1; * can show us the size of struct tgsi_exec_machine at compile * time. */ #ifndef __cplusplus #ifdef _MSC_VER #define alignof _Alignof #define alignas _Alignas #else # 461 "../mesa/src/util/macros.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdalign.h expanded by -frewrite-includes */ #include #else /* stdalign.h expanded by -frewrite-includes */ # 461 "../mesa/src/util/macros.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdalign.h" 1 3 /*===---- stdalign.h - Standard header for alignment ------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __STDALIGN_H #define __STDALIGN_H #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) || \ (defined(__STDC_VERSION__) && __STDC_VERSION__ < 202311L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 15 "/home/marcus/llvm20/lib/clang/20/include/stdalign.h" 3 #ifndef __cplusplus #define alignas _Alignas #define alignof _Alignof #endif # 19 "/home/marcus/llvm20/lib/clang/20/include/stdalign.h" 3 #define __alignas_is_defined 1 #define __alignof_is_defined 1 #endif /* __STDC_VERSION__ */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdalign.h" 3 #endif /* __STDALIGN_H */ # 25 "/home/marcus/llvm20/lib/clang/20/include/stdalign.h" 3 #endif /* stdalign.h expanded by -frewrite-includes */ # 462 "../mesa/src/util/macros.h" 2 #endif # 463 "../mesa/src/util/macros.h" #endif # 464 "../mesa/src/util/macros.h" /* Macros for static type-safety checking. * * https://clang.llvm.org/docs/ThreadSafetyAnalysis.html */ #if 0 /* disabled by -frewrite-includes */ #if __has_attribute(capability) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 471 "../mesa/src/util/macros.h" typedef int __attribute__((capability("mutex"))) lock_cap_t; #define guarded_by(l) __attribute__((guarded_by(l))) #define acquire_cap(l) __attribute((acquire_capability(l), no_thread_safety_analysis)) #define release_cap(l) __attribute((release_capability(l), no_thread_safety_analysis)) #define assert_cap(l) __attribute((assert_capability(l), no_thread_safety_analysis)) #define requires_cap(l) __attribute((requires_capability(l))) #define disable_thread_safety_analysis __attribute((no_thread_safety_analysis)) #else # 481 "../mesa/src/util/macros.h" typedef int lock_cap_t; #define guarded_by(l) #define acquire_cap(l) #define release_cap(l) #define assert_cap(l) #define requires_cap(l) #define disable_thread_safety_analysis #endif # 492 "../mesa/src/util/macros.h" #define DO_PRAGMA(X) _Pragma (#X) #if 0 /* disabled by -frewrite-includes */ #if defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 496 "../mesa/src/util/macros.h" #define PRAGMA_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") #define PRAGMA_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") #define PRAGMA_DIAGNOSTIC_ERROR(X) DO_PRAGMA( clang diagnostic error #X ) #define PRAGMA_DIAGNOSTIC_WARNING(X) DO_PRAGMA( clang diagnostic warning #X ) #define PRAGMA_DIAGNOSTIC_IGNORED(X) DO_PRAGMA( clang diagnostic ignored #X ) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 502 "../mesa/src/util/macros.h" #define PRAGMA_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") #define PRAGMA_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") #define PRAGMA_DIAGNOSTIC_ERROR(X) DO_PRAGMA( GCC diagnostic error #X ) #define PRAGMA_DIAGNOSTIC_WARNING(X) DO_PRAGMA( GCC diagnostic warning #X ) #define PRAGMA_DIAGNOSTIC_IGNORED(X) DO_PRAGMA( GCC diagnostic ignored #X ) #else # 508 "../mesa/src/util/macros.h" #define PRAGMA_DIAGNOSTIC_PUSH #define PRAGMA_DIAGNOSTIC_POP #define PRAGMA_DIAGNOSTIC_ERROR(X) #define PRAGMA_DIAGNOSTIC_WARNING(X) #define PRAGMA_DIAGNOSTIC_IGNORED(X) #endif # 514 "../mesa/src/util/macros.h" #define PASTE2(a, b) a ## b #define PASTE3(a, b, c) a ## b ## c #define PASTE4(a, b, c, d) a ## b ## c ## d #define CONCAT2(a, b) PASTE2(a, b) #define CONCAT3(a, b, c) PASTE3(a, b, c) #define CONCAT4(a, b, c, d) PASTE4(a, b, c, d) #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 524 "../mesa/src/util/macros.h" #define PRAGMA_POISON(X) DO_PRAGMA( GCC poison X ) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 526 "../mesa/src/util/macros.h" #define PRAGMA_POISON(X) DO_PRAGMA( clang poison X ) #else # 528 "../mesa/src/util/macros.h" #define PRAGMA_POISON #endif # 530 "../mesa/src/util/macros.h" #endif /* UTIL_MACROS_H */ # 532 "../mesa/src/util/macros.h" #endif /* macros.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/menums.h" 2 /** * Enum for the OpenGL APIs we know about and may support. * * NOTE: This must match the api_enum table in * src/mesa/main/get_hash_generator.py */ typedef enum { API_OPENGL_COMPAT, /* legacy / compatibility contexts */ API_OPENGLES, API_OPENGLES2, API_OPENGL_CORE, API_OPENGL_LAST = API_OPENGL_CORE } gl_api; /** * Checks if the api is for GLES 2.0 or later */ static inline bool _mesa_is_api_gles2(gl_api api) { #if 0 /* disabled by -frewrite-includes */ #if HAVE_OPENGL_ES_2 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 60 "../mesa/src/mesa/main/menums.h" return api == API_OPENGLES2; #else # 62 "../mesa/src/mesa/main/menums.h" return false; #endif # 64 "../mesa/src/mesa/main/menums.h" } /** * An index for each type of texture object. These correspond to the GL * texture target enums, such as GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, etc. * Note: the order is from highest priority to lowest priority. */ typedef enum { TEXTURE_2D_MULTISAMPLE_INDEX, TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX, TEXTURE_CUBE_ARRAY_INDEX, TEXTURE_BUFFER_INDEX, TEXTURE_2D_ARRAY_INDEX, TEXTURE_1D_ARRAY_INDEX, TEXTURE_EXTERNAL_INDEX, TEXTURE_CUBE_INDEX, TEXTURE_3D_INDEX, TEXTURE_RECT_INDEX, TEXTURE_2D_INDEX, TEXTURE_1D_INDEX, NUM_TEXTURE_TARGETS } gl_texture_index; /** * Remapped color logical operations * * With the exception of NVIDIA hardware, which consumes the OpenGL enumerants * directly, everything wants this mapping of color logical operations. * * Fun fact: These values are just the bit-reverse of the low-nibble of the GL * enumerant values (i.e., `GL_NOOP & 0x0f` is `b0101' while * \c COLOR_LOGICOP_NOOP is `b1010`). * * Fun fact #2: These values are just an encoding of the operation as a table * of bit values. The result of the logic op is: * * result_bit = (logic_op >> (2 * src_bit + dst_bit)) & 1 * * For the GL enums, the result is: * * result_bit = logic_op & (1 << (2 * src_bit + dst_bit)) */ enum ENUM_PACKED gl_logicop_mode { COLOR_LOGICOP_CLEAR = 0, COLOR_LOGICOP_NOR = 1, COLOR_LOGICOP_AND_INVERTED = 2, COLOR_LOGICOP_COPY_INVERTED = 3, COLOR_LOGICOP_AND_REVERSE = 4, COLOR_LOGICOP_INVERT = 5, COLOR_LOGICOP_XOR = 6, COLOR_LOGICOP_NAND = 7, COLOR_LOGICOP_AND = 8, COLOR_LOGICOP_EQUIV = 9, COLOR_LOGICOP_NOOP = 10, COLOR_LOGICOP_OR_INVERTED = 11, COLOR_LOGICOP_COPY = 12, COLOR_LOGICOP_OR_REVERSE = 13, COLOR_LOGICOP_OR = 14, COLOR_LOGICOP_SET = 15 }; /** * Indexes for all renderbuffers */ typedef enum { /* the four standard color buffers */ BUFFER_FRONT_LEFT, BUFFER_BACK_LEFT, BUFFER_FRONT_RIGHT, BUFFER_BACK_RIGHT, BUFFER_DEPTH, BUFFER_STENCIL, BUFFER_ACCUM, /* generic renderbuffers */ BUFFER_COLOR0, BUFFER_COLOR1, BUFFER_COLOR2, BUFFER_COLOR3, BUFFER_COLOR4, BUFFER_COLOR5, BUFFER_COLOR6, BUFFER_COLOR7, BUFFER_COUNT, BUFFER_NONE = -1, } gl_buffer_index; typedef enum { MAP_USER, MAP_INTERNAL, MAP_GLTHREAD, MAP_COUNT } gl_map_buffer_index; /** @{ * * These are a mapping of the GL_ARB_debug_output/GL_KHR_debug enums * to small enums suitable for use as an array index. */ enum mesa_debug_source { MESA_DEBUG_SOURCE_API, MESA_DEBUG_SOURCE_WINDOW_SYSTEM, MESA_DEBUG_SOURCE_SHADER_COMPILER, MESA_DEBUG_SOURCE_THIRD_PARTY, MESA_DEBUG_SOURCE_APPLICATION, MESA_DEBUG_SOURCE_OTHER, MESA_DEBUG_SOURCE_COUNT }; enum mesa_debug_type { MESA_DEBUG_TYPE_ERROR, MESA_DEBUG_TYPE_DEPRECATED, MESA_DEBUG_TYPE_UNDEFINED, MESA_DEBUG_TYPE_PORTABILITY, MESA_DEBUG_TYPE_PERFORMANCE, MESA_DEBUG_TYPE_OTHER, MESA_DEBUG_TYPE_MARKER, MESA_DEBUG_TYPE_PUSH_GROUP, MESA_DEBUG_TYPE_POP_GROUP, MESA_DEBUG_TYPE_COUNT }; enum mesa_debug_severity { MESA_DEBUG_SEVERITY_LOW, MESA_DEBUG_SEVERITY_MEDIUM, MESA_DEBUG_SEVERITY_HIGH, MESA_DEBUG_SEVERITY_NOTIFICATION, MESA_DEBUG_SEVERITY_COUNT }; /** @} */ #endif # 203 "../mesa/src/mesa/main/menums.h" #endif /* menums.h expanded by -frewrite-includes */ # 43 "../mesa/src/mesa/main/errors.h" 2 #ifdef __cplusplus extern "C" { #endif # 48 "../mesa/src/mesa/main/errors.h" struct gl_context; extern void _mesa_warning( struct gl_context *gc, const char *fmtString, ... ) PRINTFLIKE(2, 3); extern void _mesa_problem( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); extern void _mesa_error( struct gl_context *ctx, GLenum error, const char *fmtString, ... ) PRINTFLIKE(3, 4); extern void _mesa_error_no_memory(const char *caller); extern void _mesa_debug( const struct gl_context *ctx, const char *fmtString, ... ) PRINTFLIKE(2, 3); void _mesa_shader_debug(struct gl_context *ctx, GLenum type, GLuint *id, const char *msg); extern void _mesa_gl_vdebugf(struct gl_context *ctx, GLuint *id, enum mesa_debug_source source, enum mesa_debug_type type, enum mesa_debug_severity severity, const char *fmtString, va_list args); extern void _mesa_gl_debugf(struct gl_context *ctx, GLuint *id, enum mesa_debug_source source, enum mesa_debug_type type, enum mesa_debug_severity severity, const char *fmtString, ...) PRINTFLIKE(6, 7); extern size_t _mesa_gl_debug(struct gl_context *ctx, GLuint *id, enum mesa_debug_source source, enum mesa_debug_type type, enum mesa_debug_severity severity, const char *msg); #define _mesa_perf_debug(ctx, sev, ...) do { \ static GLuint msg_id = 0; \ if (unlikely(ctx->Const.ContextFlags & GL_CONTEXT_FLAG_DEBUG_BIT)) { \ _mesa_gl_debugf(ctx, &msg_id, \ MESA_DEBUG_SOURCE_API, \ MESA_DEBUG_TYPE_PERFORMANCE, \ sev, \ __VA_ARGS__); \ } \ } while (0) #ifdef __cplusplus } #endif # 110 "../mesa/src/mesa/main/errors.h" #endif /* ERRORS_H */ # 113 "../mesa/src/mesa/main/errors.h" #endif /* errors.h expanded by -frewrite-includes */ # 53 "../mesa/src/mesa/main/context.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* extensions.h expanded by -frewrite-includes */ #include "extensions.h" #else /* extensions.h expanded by -frewrite-includes */ # 54 "../mesa/src/mesa/main/context.h" # 1 "../mesa/src/mesa/main/extensions.h" 1 /** * \file extensions.h * Extension handling. * * \if subset * (No-op) * * \endif */ /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef _EXTENSIONS_H_ #define _EXTENSIONS_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* mtypes.h expanded by -frewrite-includes */ #include "mtypes.h" #else /* mtypes.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/extensions.h" # 1 "../mesa/src/mesa/main/mtypes.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file mtypes.h * Main Mesa data structures. * * Please try to mark derived values with a leading underscore ('_'). */ #ifndef MTYPES_H #define MTYPES_H #if 0 /* expanded by -frewrite-includes */ #include /* uint32_t */ #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/mtypes.h" # 38 "../mesa/src/mesa/main/mtypes.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/main/mtypes.h" # 39 "../mesa/src/mesa/main/mtypes.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* threads.h expanded by -frewrite-includes */ #include "c11/threads.h" #else /* threads.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/c11/threads.h" 1 /* * C11 emulation library * * (C) Copyright yohhoy 2012. * Copyright 2022 Yonggang Luo * Distributed under the Boost Software License, Version 1.0. * * Permission is hereby granted, free of charge, to any person or organization * obtaining a copy of the software and accompanying documentation covered by * this license (the "Software") to use, reproduce, display, distribute, * execute, and transmit the Software, and to prepare [[derivative work]]s of the * Software, and to permit third-parties to whom the Software is furnished to * do so, all subject to the following: * * The copyright notices in the Software and this entire statement, including * the above license grant, this restriction and the following disclaimer, * must be included in all copies of the Software, in whole or in part, and * all derivative works of the Software, unless such copies or derivative * works are solely in the form of machine-executable object code generated by * a source language processor. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #ifndef C11_THREADS_H_INCLUDED_ #define C11_THREADS_H_INCLUDED_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* time.h expanded by -frewrite-includes */ #include "c11/time.h" #else /* time.h expanded by -frewrite-includes */ # 34 "../mesa/src/c11/threads.h" # 1 "../mesa/src/c11/time.h" 1 /* * Copyright 2022 Yonggang Luo * SPDX-License-Identifier: MIT * * C11 emulation library */ #ifndef C11_TIME_H_INCLUDED_ #define C11_TIME_H_INCLUDED_ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time.h expanded by -frewrite-includes */ #include #else /* time.h expanded by -frewrite-includes */ # 11 "../mesa/src/c11/time.h" # 1 "/usr/include/time.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.23 Date and time */ #ifndef _TIME_H #define _TIME_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/time.h" 3 4 # 26 "/usr/include/time.h" 3 4 #define __need_size_t #define __need_NULL #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 29 "/usr/include/time.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 30 "/usr/include/time.h" 2 3 4 /* This defines CLOCKS_PER_SEC, which is the number of processor clock ticks per second, and possibly a number of other constants. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time.h expanded by -frewrite-includes */ #include #else /* time.h expanded by -frewrite-includes */ # 33 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 /* System-dependent timing definitions. Linux version. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * Never include this file directly; use instead. */ #ifndef _BITS_TIME_H #define _BITS_TIME_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "/usr/include/bits/time.h" 3 4 # 27 "/usr/include/bits/time.h" 3 4 /* ISO/IEC 9899:1999 7.23.1: Components of time The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is the number per second of the value returned by the `clock' function. */ /* CAE XSH, Issue 4, Version 2: The value of CLOCKS_PER_SEC is required to be 1 million on all XSI-conformant systems. */ #define CLOCKS_PER_SEC ((__clock_t) 1000000) #if 0 /* disabled by -frewrite-includes */ #if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \ && !defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/bits/time.h" 3 4 /* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK presents the real value for clock ticks per second for the system. */ extern long int __sysconf (int); # define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */ #endif # 43 "/usr/include/bits/time.h" 3 4 #ifdef __USE_POSIX199309 /* Identifier for system-wide realtime clock. */ # define CLOCK_REALTIME 0 /* Monotonic system-wide clock. */ # define CLOCK_MONOTONIC 1 /* High-resolution timer from the CPU. */ # define CLOCK_PROCESS_CPUTIME_ID 2 /* Thread-specific CPU-time clock. */ # define CLOCK_THREAD_CPUTIME_ID 3 /* Monotonic system-wide clock, not adjusted for frequency scaling. */ # define CLOCK_MONOTONIC_RAW 4 /* Identifier for system-wide realtime clock, updated only on ticks. */ # define CLOCK_REALTIME_COARSE 5 /* Monotonic system-wide clock, updated only on ticks. */ # define CLOCK_MONOTONIC_COARSE 6 /* Monotonic system-wide clock that includes time spent in suspension. */ # define CLOCK_BOOTTIME 7 /* Like CLOCK_REALTIME but also wakes suspended system. */ # define CLOCK_REALTIME_ALARM 8 /* Like CLOCK_BOOTTIME but also wakes suspended system. */ # define CLOCK_BOOTTIME_ALARM 9 /* Like CLOCK_REALTIME but in International Atomic Time. */ # define CLOCK_TAI 11 /* Flag to indicate time is absolute. */ # define TIMER_ABSTIME 1 #endif # 71 "/usr/include/bits/time.h" 3 4 #ifdef __USE_GNU #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* timex.h expanded by -frewrite-includes */ # include #else /* timex.h expanded by -frewrite-includes */ # 73 "/usr/include/bits/time.h" 3 4 # 1 "/usr/include/bits/timex.h" 1 3 4 /* Copyright (C) 1995-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TIMEX_H #define _BITS_TIMEX_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/bits/timex.h" 3 4 # 22 "/usr/include/bits/timex.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_timeval.h expanded by -frewrite-includes */ #include #else /* struct_timeval.h expanded by -frewrite-includes */ # 22 "/usr/include/bits/timex.h" 3 4 # 1 "/usr/include/bits/types/struct_timeval.h" 1 3 4 #ifndef __timeval_defined #define __timeval_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/struct_timeval.h" 3 4 # 5 "/usr/include/bits/types/struct_timeval.h" 3 4 /* A time value that is accurate to the nearest microsecond but also has a range of years. */ struct timeval { #ifdef __USE_TIME64_REDIRECTS __time64_t tv_sec; /* Seconds. */ __suseconds64_t tv_usec; /* Microseconds. */ #else # 14 "/usr/include/bits/types/struct_timeval.h" 3 4 __time_t tv_sec; /* Seconds. */ __suseconds_t tv_usec; /* Microseconds. */ #endif # 17 "/usr/include/bits/types/struct_timeval.h" 3 4 }; #endif # 19 "/usr/include/bits/types/struct_timeval.h" 3 4 #endif /* struct_timeval.h expanded by -frewrite-includes */ # 23 "/usr/include/bits/timex.h" 2 3 4 /* These definitions from linux/timex.h as of 3.18. */ struct timex { #if 0 /* disabled by -frewrite-includes */ # if defined __USE_TIME64_REDIRECTS || (__TIMESIZE == 64 && __WORDSIZE == 32) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 29 "/usr/include/bits/timex.h" 3 4 unsigned int modes; /* mode selector */ int :32; /* pad */ long long offset; /* time offset (usec) */ long long freq; /* frequency offset (scaled ppm) */ long long maxerror; /* maximum error (usec) */ long long esterror; /* estimated error (usec) */ int status; /* clock command/status */ int :32; /* pad */ long long constant; /* pll time constant */ long long precision; /* clock precision (usec) (read only) */ long long tolerance; /* clock frequency tolerance (ppm) (ro) */ struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ long long tick; /* (modified) usecs between clock ticks */ long long ppsfreq; /* pps frequency (scaled ppm) (ro) */ long long jitter; /* pps jitter (us) (ro) */ int shift; /* interval duration (s) (shift) (ro) */ int :32; /* pad */ long long stabil; /* pps stability (scaled ppm) (ro) */ long long jitcnt; /* jitter limit exceeded (ro) */ long long calcnt; /* calibration intervals (ro) */ long long errcnt; /* calibration errors (ro) */ long long stbcnt; /* stability limit exceeded (ro) */ int tai; /* TAI offset (ro) */ int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; # else # 58 "/usr/include/bits/timex.h" 3 4 unsigned int modes; /* mode selector */ __syscall_slong_t offset; /* time offset (usec) */ __syscall_slong_t freq; /* frequency offset (scaled ppm) */ __syscall_slong_t maxerror; /* maximum error (usec) */ __syscall_slong_t esterror; /* estimated error (usec) */ int status; /* clock command/status */ __syscall_slong_t constant; /* pll time constant */ __syscall_slong_t precision; /* clock precision (usec) (ro) */ __syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */ struct timeval time; /* (read only, except for ADJ_SETOFFSET) */ __syscall_slong_t tick; /* (modified) usecs between clock ticks */ __syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */ __syscall_slong_t jitter; /* pps jitter (us) (ro) */ int shift; /* interval duration (s) (shift) (ro) */ __syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */ __syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */ __syscall_slong_t calcnt; /* calibration intervals (ro) */ __syscall_slong_t errcnt; /* calibration errors (ro) */ __syscall_slong_t stbcnt; /* stability limit exceeded (ro) */ int tai; /* TAI offset (ro) */ /* ??? */ int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; int :32; # endif # 85 "/usr/include/bits/timex.h" 3 4 }; /* Mode codes (timex.mode) */ #define ADJ_OFFSET 0x0001 /* time offset */ #define ADJ_FREQUENCY 0x0002 /* frequency offset */ #define ADJ_MAXERROR 0x0004 /* maximum time error */ #define ADJ_ESTERROR 0x0008 /* estimated time error */ #define ADJ_STATUS 0x0010 /* clock status */ #define ADJ_TIMECONST 0x0020 /* pll time constant */ #define ADJ_TAI 0x0080 /* set TAI offset */ #define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */ #define ADJ_MICRO 0x1000 /* select microsecond resolution */ #define ADJ_NANO 0x2000 /* select nanosecond resolution */ #define ADJ_TICK 0x4000 /* tick value */ #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ #define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ /* xntp 3.4 compatibility names */ #define MOD_OFFSET ADJ_OFFSET #define MOD_FREQUENCY ADJ_FREQUENCY #define MOD_MAXERROR ADJ_MAXERROR #define MOD_ESTERROR ADJ_ESTERROR #define MOD_STATUS ADJ_STATUS #define MOD_TIMECONST ADJ_TIMECONST #define MOD_CLKB ADJ_TICK #define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */ #define MOD_TAI ADJ_TAI #define MOD_MICRO ADJ_MICRO #define MOD_NANO ADJ_NANO /* Status codes (timex.status) */ #define STA_PLL 0x0001 /* enable PLL updates (rw) */ #define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */ #define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */ #define STA_FLL 0x0008 /* select frequency-lock mode (rw) */ #define STA_INS 0x0010 /* insert leap (rw) */ #define STA_DEL 0x0020 /* delete leap (rw) */ #define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */ #define STA_FREQHOLD 0x0080 /* hold frequency (rw) */ #define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */ #define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */ #define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */ #define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */ #define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */ #define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */ #define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */ #define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ /* Read-only bits */ #define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \ | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) #endif /* bits/timex.h */ # 142 "/usr/include/bits/timex.h" 3 4 #endif /* timex.h expanded by -frewrite-includes */ # 74 "/usr/include/bits/time.h" 2 3 4 __BEGIN_DECLS /* Tune a POSIX clock. */ extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2)); #ifdef __USE_TIME64_REDIRECTS #if 0 /* disabled by -frewrite-includes */ # if defined(__REDIRECT_NTH) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 82 "/usr/include/bits/time.h" 3 4 extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id, struct timex *__utx), __clock_adjtime64) __nonnull((2)); # else # 86 "/usr/include/bits/time.h" 3 4 # define clock_adjtime __clock_adjtime64 # endif # 88 "/usr/include/bits/time.h" 3 4 #endif # 89 "/usr/include/bits/time.h" 3 4 __END_DECLS #endif /* use GNU */ # 92 "/usr/include/bits/time.h" 3 4 #endif /* bits/time.h */ # 94 "/usr/include/bits/time.h" 3 4 #endif /* time.h expanded by -frewrite-includes */ # 34 "/usr/include/time.h" 2 3 4 /* Many of the typedefs and structs whose official home is this header may also need to be defined by other headers. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* clock_t.h expanded by -frewrite-includes */ #include #else /* clock_t.h expanded by -frewrite-includes */ # 37 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/clock_t.h" 1 3 4 #ifndef __clock_t_defined #define __clock_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/clock_t.h" 3 4 # 5 "/usr/include/bits/types/clock_t.h" 3 4 /* Returned by `clock'. */ typedef __clock_t clock_t; #endif # 10 "/usr/include/bits/types/clock_t.h" 3 4 #endif /* clock_t.h expanded by -frewrite-includes */ # 38 "/usr/include/time.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* time_t.h expanded by -frewrite-includes */ #include #else /* time_t.h expanded by -frewrite-includes */ # 38 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/time_t.h" 1 3 4 #ifndef __time_t_defined #define __time_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/time_t.h" 3 4 # 5 "/usr/include/bits/types/time_t.h" 3 4 /* Returned by `time'. */ #ifdef __USE_TIME64_REDIRECTS typedef __time64_t time_t; #else # 10 "/usr/include/bits/types/time_t.h" 3 4 typedef __time_t time_t; #endif # 12 "/usr/include/bits/types/time_t.h" 3 4 #endif # 14 "/usr/include/bits/types/time_t.h" 3 4 #endif /* time_t.h expanded by -frewrite-includes */ # 39 "/usr/include/time.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_tm.h expanded by -frewrite-includes */ #include #else /* struct_tm.h expanded by -frewrite-includes */ # 39 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/struct_tm.h" 1 3 4 #ifndef __struct_tm_defined #define __struct_tm_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/struct_tm.h" 3 4 # 5 "/usr/include/bits/types/struct_tm.h" 3 4 /* ISO C `broken-down time' structure. */ struct tm { int tm_sec; /* Seconds. [0-60] (1 leap second) */ int tm_min; /* Minutes. [0-59] */ int tm_hour; /* Hours. [0-23] */ int tm_mday; /* Day. [1-31] */ int tm_mon; /* Month. [0-11] */ int tm_year; /* Year - 1900. */ int tm_wday; /* Day of week. [0-6] */ int tm_yday; /* Days in year.[0-365] */ int tm_isdst; /* DST. [-1/0/1]*/ # ifdef __USE_MISC long int tm_gmtoff; /* Seconds east of UTC. */ const char *tm_zone; /* Timezone abbreviation. */ # else # 23 "/usr/include/bits/types/struct_tm.h" 3 4 long int __tm_gmtoff; /* Seconds east of UTC. */ const char *__tm_zone; /* Timezone abbreviation. */ # endif # 26 "/usr/include/bits/types/struct_tm.h" 3 4 }; #endif # 29 "/usr/include/bits/types/struct_tm.h" 3 4 #endif /* struct_tm.h expanded by -frewrite-includes */ # 40 "/usr/include/time.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199309 || defined __USE_ISOC11 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 42 "/usr/include/time.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_timespec.h expanded by -frewrite-includes */ # include #else /* struct_timespec.h expanded by -frewrite-includes */ # 42 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/struct_timespec.h" 1 3 4 /* NB: Include guard matches what uses. */ #ifndef _STRUCT_TIMESPEC #define _STRUCT_TIMESPEC 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/struct_timespec.h" 3 4 # 6 "/usr/include/bits/types/struct_timespec.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* endian.h expanded by -frewrite-includes */ #include #else /* endian.h expanded by -frewrite-includes */ # 6 "/usr/include/bits/types/struct_timespec.h" 3 4 # 1 "/usr/include/bits/endian.h" 1 3 4 /* Endian macros for string.h functions Copyright (C) 1992-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_ENDIAN_H #define _BITS_ENDIAN_H 1 /* Definitions for byte order, according to significance of bytes, from low addresses to high addresses. The value is what you get by putting '4' in the most significant byte, '3' in the second most significant byte, '2' in the second least significant byte, and '1' in the least significant byte, and then writing down one digit for each byte, starting with the byte at the lowest address at the left, and proceeding to the byte with the highest address at the right. */ #define __LITTLE_ENDIAN 1234 #define __BIG_ENDIAN 4321 #define __PDP_ENDIAN 3412 /* This file defines `__BYTE_ORDER' for the particular machine. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* endianness.h expanded by -frewrite-includes */ #include #else /* endianness.h expanded by -frewrite-includes */ # 35 "/usr/include/bits/endian.h" 3 4 # 1 "/usr/include/bits/endianness.h" 1 3 4 #ifndef _BITS_ENDIANNESS_H #define _BITS_ENDIANNESS_H 1 #ifndef _BITS_ENDIAN_H # error "Never use directly; include instead." #endif # 7 "/usr/include/bits/endianness.h" 3 4 /* i386/x86_64 are little-endian. */ #define __BYTE_ORDER __LITTLE_ENDIAN #endif /* bits/endianness.h */ # 12 "/usr/include/bits/endianness.h" 3 4 #endif /* endianness.h expanded by -frewrite-includes */ # 36 "/usr/include/bits/endian.h" 2 3 4 /* Some machines may need to use a different endianness for floating point values. */ #ifndef __FLOAT_WORD_ORDER # define __FLOAT_WORD_ORDER __BYTE_ORDER #endif # 42 "/usr/include/bits/endian.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __BYTE_ORDER == __LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 44 "/usr/include/bits/endian.h" 3 4 # define __LONG_LONG_PAIR(HI, LO) LO, HI #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __BYTE_ORDER == __BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 46 "/usr/include/bits/endian.h" 3 4 # define __LONG_LONG_PAIR(HI, LO) HI, LO #endif # 48 "/usr/include/bits/endian.h" 3 4 #endif /* bits/endian.h */ # 50 "/usr/include/bits/endian.h" 3 4 #endif /* endian.h expanded by -frewrite-includes */ # 7 "/usr/include/bits/types/struct_timespec.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 7 "/usr/include/bits/types/struct_timespec.h" 3 4 # 8 "/usr/include/bits/types/struct_timespec.h" 3 4 /* POSIX.1b structure for a time value. This is like a `struct timeval' but has nanoseconds instead of microseconds. */ struct timespec { #ifdef __USE_TIME64_REDIRECTS __time64_t tv_sec; /* Seconds. */ #else # 16 "/usr/include/bits/types/struct_timespec.h" 3 4 __time_t tv_sec; /* Seconds. */ #endif # 18 "/usr/include/bits/types/struct_timespec.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 \ || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ || (__TIMESIZE == 32 && !defined __USE_TIME64_REDIRECTS) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 21 "/usr/include/bits/types/struct_timespec.h" 3 4 __syscall_slong_t tv_nsec; /* Nanoseconds. */ #else # 23 "/usr/include/bits/types/struct_timespec.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __BYTE_ORDER == __BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "/usr/include/bits/types/struct_timespec.h" 3 4 int: 32; /* Padding. */ long int tv_nsec; /* Nanoseconds. */ # else # 27 "/usr/include/bits/types/struct_timespec.h" 3 4 long int tv_nsec; /* Nanoseconds. */ int: 32; /* Padding. */ # endif # 30 "/usr/include/bits/types/struct_timespec.h" 3 4 #endif # 31 "/usr/include/bits/types/struct_timespec.h" 3 4 }; #endif # 34 "/usr/include/bits/types/struct_timespec.h" 3 4 #endif /* struct_timespec.h expanded by -frewrite-includes */ # 43 "/usr/include/time.h" 2 3 4 #endif # 44 "/usr/include/time.h" 3 4 #ifdef __USE_POSIX199309 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* clockid_t.h expanded by -frewrite-includes */ # include #else /* clockid_t.h expanded by -frewrite-includes */ # 46 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/clockid_t.h" 1 3 4 #ifndef __clockid_t_defined #define __clockid_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/clockid_t.h" 3 4 # 5 "/usr/include/bits/types/clockid_t.h" 3 4 /* Clock ID used in clock and timer functions. */ typedef __clockid_t clockid_t; #endif # 10 "/usr/include/bits/types/clockid_t.h" 3 4 #endif /* clockid_t.h expanded by -frewrite-includes */ # 47 "/usr/include/time.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* timer_t.h expanded by -frewrite-includes */ # include #else /* timer_t.h expanded by -frewrite-includes */ # 47 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/timer_t.h" 1 3 4 #ifndef __timer_t_defined #define __timer_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/timer_t.h" 3 4 # 5 "/usr/include/bits/types/timer_t.h" 3 4 /* Timer ID returned by `timer_create'. */ typedef __timer_t timer_t; #endif # 10 "/usr/include/bits/types/timer_t.h" 3 4 #endif /* timer_t.h expanded by -frewrite-includes */ # 48 "/usr/include/time.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_itimerspec.h expanded by -frewrite-includes */ # include #else /* struct_itimerspec.h expanded by -frewrite-includes */ # 48 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/struct_itimerspec.h" 1 3 4 #ifndef __itimerspec_defined #define __itimerspec_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/struct_itimerspec.h" 3 4 # 5 "/usr/include/bits/types/struct_itimerspec.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/struct_itimerspec.h" 3 4 # 6 "/usr/include/bits/types/struct_itimerspec.h" 3 4 /* POSIX.1b structure for timer start values and intervals. */ struct itimerspec { struct timespec it_interval; struct timespec it_value; }; #endif # 15 "/usr/include/bits/types/struct_itimerspec.h" 3 4 #endif /* struct_itimerspec.h expanded by -frewrite-includes */ # 49 "/usr/include/time.h" 2 3 4 struct sigevent; #endif # 51 "/usr/include/time.h" 3 4 #ifdef __USE_XOPEN2K # ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined # endif # 57 "/usr/include/time.h" 3 4 #endif # 58 "/usr/include/time.h" 3 4 #ifdef __USE_XOPEN2K8 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* locale_t.h expanded by -frewrite-includes */ # include #else /* locale_t.h expanded by -frewrite-includes */ # 60 "/usr/include/time.h" 3 4 # 1 "/usr/include/bits/types/locale_t.h" 1 3 4 /* Definition of locale_t. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES_LOCALE_T_H #define _BITS_TYPES_LOCALE_T_H 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __locale_t.h expanded by -frewrite-includes */ #include #else /* __locale_t.h expanded by -frewrite-includes */ # 22 "/usr/include/bits/types/locale_t.h" 3 4 # 1 "/usr/include/bits/types/__locale_t.h" 1 3 4 /* Definition of struct __locale_struct and __locale_t. Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES___LOCALE_T_H #define _BITS_TYPES___LOCALE_T_H 1 /* POSIX.1-2008: the locale_t type, representing a locale context (implementation-namespace version). This type should be treated as opaque by applications; some details are exposed for the sake of efficiency in e.g. ctype functions. */ struct __locale_struct { /* Note: LC_ALL is not a valid index into this array. */ struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */ /* To increase the speed of this solution we add some special members. */ const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; /* Note: LC_ALL is not a valid index into this array. */ const char *__names[13]; }; typedef struct __locale_struct *__locale_t; #endif /* bits/types/__locale_t.h */ # 44 "/usr/include/bits/types/__locale_t.h" 3 4 #endif /* __locale_t.h expanded by -frewrite-includes */ # 23 "/usr/include/bits/types/locale_t.h" 2 3 4 typedef __locale_t locale_t; #endif /* bits/types/locale_t.h */ # 27 "/usr/include/bits/types/locale_t.h" 3 4 #endif /* locale_t.h expanded by -frewrite-includes */ # 61 "/usr/include/time.h" 2 3 4 #endif # 62 "/usr/include/time.h" 3 4 #ifdef __USE_ISOC11 /* Time base values for timespec_get. */ # define TIME_UTC 1 #endif # 67 "/usr/include/time.h" 3 4 __BEGIN_DECLS /* Time used by the program so far (user time + system time). The result / CLOCKS_PER_SEC is program time in seconds. */ extern clock_t clock (void) __THROW; #ifndef __USE_TIME64_REDIRECTS /* Return the current time and put it in *TIMER if TIMER is not NULL. */ extern time_t time (time_t *__timer) __THROW; /* Return the difference between TIME1 and TIME0. */ extern double difftime (time_t __time1, time_t __time0); /* Return the `time_t' representation of TP and normalize TP. */ extern time_t mktime (struct tm *__tp) __THROW; #else # 84 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern time_t __REDIRECT_NTH (time, (time_t *__timer), __time64); extern double __REDIRECT_NTH (difftime, (time_t __time1, time_t __time0), __difftime64); extern time_t __REDIRECT_NTH (mktime, (struct tm *__tp), __mktime64); # else # 90 "/usr/include/time.h" 3 4 # define time __time64 # define difftime __difftime64 # define mktime __mktime64 # endif # 94 "/usr/include/time.h" 3 4 #endif # 95 "/usr/include/time.h" 3 4 /* Format TP into S according to FORMAT. Write no more than MAXSIZE characters and return the number of characters written, or 0 if it would exceed MAXSIZE. */ extern size_t strftime (char *__restrict __s, size_t __maxsize, const char *__restrict __format, const struct tm *__restrict __tp) __THROW __nonnull((1, 3, 4)); #ifdef __USE_XOPEN /* Parse S according to FORMAT and store binary time information in TP. The return value is a pointer to the first unparsed character in S. */ extern char *strptime (const char *__restrict __s, const char *__restrict __fmt, struct tm *__tp) __THROW; #endif # 111 "/usr/include/time.h" 3 4 #ifdef __USE_XOPEN2K8 /* Similar to the two functions above but take the information from the provided locale and not the global locale. */ extern size_t strftime_l (char *__restrict __s, size_t __maxsize, const char *__restrict __format, const struct tm *__restrict __tp, locale_t __loc) __THROW; #endif # 121 "/usr/include/time.h" 3 4 #ifdef __USE_GNU extern char *strptime_l (const char *__restrict __s, const char *__restrict __fmt, struct tm *__tp, locale_t __loc) __THROW; #endif # 127 "/usr/include/time.h" 3 4 #ifndef __USE_TIME64_REDIRECTS /* Return the `struct tm' representation of *TIMER in Universal Coordinated Time (aka Greenwich Mean Time). */ extern struct tm *gmtime (const time_t *__timer) __THROW; /* Return the `struct tm' representation of *TIMER in the local timezone. */ extern struct tm *localtime (const time_t *__timer) __THROW; #else # 139 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern struct tm*__REDIRECT_NTH (gmtime, (const time_t *__timer), __gmtime64); extern struct tm *__REDIRECT_NTH (localtime, (const time_t *__timer), __localtime64); # else # 144 "/usr/include/time.h" 3 4 # define gmtime __gmtime64 # define localtime __localtime64 # endif # 147 "/usr/include/time.h" 3 4 #endif # 148 "/usr/include/time.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 151 "/usr/include/time.h" 3 4 # ifndef __USE_TIME64_REDIRECTS /* Return the `struct tm' representation of *TIMER in UTC, using *TP to store the result. */ extern struct tm *gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) __THROW; /* Return the `struct tm' representation of *TIMER in local time, using *TP to store the result. */ extern struct tm *localtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) __THROW; # else # 162 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern struct tm*__REDIRECT_NTH (gmtime_r, (const time_t *__restrict __timer, struct tm *__restrict __tp), __gmtime64_r); extern struct tm*__REDIRECT_NTH (localtime_r, (const time_t *__restrict __t, struct tm *__restrict __tp), __localtime64_r); # else # 171 "/usr/include/time.h" 3 4 # define gmtime_r __gmtime64_r # define localtime_r __localtime_r # endif # 174 "/usr/include/time.h" 3 4 # endif # 175 "/usr/include/time.h" 3 4 #endif /* POSIX || C23 */ # 176 "/usr/include/time.h" 3 4 /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n" that is the representation of TP in this format. */ extern char *asctime (const struct tm *__tp) __THROW; /* Equivalent to `asctime (localtime (timer))'. */ #ifndef __USE_TIME64_REDIRECTS extern char *ctime (const time_t *__timer) __THROW; #else # 185 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern char *__REDIRECT_NTH (ctime, (const time_t *__timer), __ctime64); # else # 188 "/usr/include/time.h" 3 4 # define ctime __ctime64 # endif # 190 "/usr/include/time.h" 3 4 #endif # 191 "/usr/include/time.h" 3 4 #ifdef __USE_POSIX /* Reentrant versions of the above functions. */ /* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n" that is the representation of TP in this format. */ extern char *asctime_r (const struct tm *__restrict __tp, char *__restrict __buf) __THROW; /* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */ #ifndef __USE_TIME64_REDIRECTS extern char *ctime_r (const time_t *__restrict __timer, char *__restrict __buf) __THROW; #else # 205 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern char *__REDIRECT_NTH (ctime_r, (const time_t *__restrict __timer, char *__restrict __buf), __ctime64_r); # else # 209 "/usr/include/time.h" 3 4 # define ctime_r __ctime64_r # endif # 211 "/usr/include/time.h" 3 4 #endif # 212 "/usr/include/time.h" 3 4 #endif /* POSIX */ # 214 "/usr/include/time.h" 3 4 /* Defined in localtime.c. */ extern char *__tzname[2]; /* Current time zone abbreviations. */ extern int __daylight; /* If daylight-saving time is ever in use. */ extern long int __timezone; /* Seconds west of UTC. */ #ifdef __USE_POSIX /* Same as above. */ extern char *tzname[2]; /* Set time conversion information from the TZ environment variable. If TZ is not defined, a locale-dependent default is used. */ extern void tzset (void) __THROW; #endif # 230 "/usr/include/time.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 232 "/usr/include/time.h" 3 4 extern int daylight; extern long int timezone; #endif # 235 "/usr/include/time.h" 3 4 /* Nonzero if YEAR is a leap year (every 4 years, except every 100th isn't, and every 400th is). */ #define __isleap(year) \ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 244 "/usr/include/time.h" 3 4 # ifndef __USE_TIME64_REDIRECTS /* Like `mktime', but for TP represents Universal Time, not local time. */ extern time_t timegm (struct tm *__tp) __THROW; # else # 248 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern time_t __REDIRECT_NTH (timegm, (struct tm *__tp), __timegm64); # else # 251 "/usr/include/time.h" 3 4 # define timegm __timegm64 # endif # 253 "/usr/include/time.h" 3 4 # endif # 254 "/usr/include/time.h" 3 4 #endif # 255 "/usr/include/time.h" 3 4 #ifdef __USE_MISC /* Miscellaneous functions many Unices inherited from the public domain localtime package. These are included only for compatibility. */ #ifndef __USE_TIME64_REDIRECTS /* Another name for `mktime'. */ extern time_t timelocal (struct tm *__tp) __THROW; #else # 265 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern time_t __REDIRECT_NTH (timelocal, (struct tm *__tp), __mktime64); # endif # 268 "/usr/include/time.h" 3 4 #endif # 269 "/usr/include/time.h" 3 4 /* Return the number of days in YEAR. */ extern int dysize (int __year) __THROW __attribute__ ((__const__)); #endif # 273 "/usr/include/time.h" 3 4 #ifdef __USE_POSIX199309 # ifndef __USE_TIME64_REDIRECTS /* Pause execution for a number of nanoseconds. This function is a cancellation point and therefore not marked with __THROW. */ extern int nanosleep (const struct timespec *__requested_time, struct timespec *__remaining); /* Get resolution of clock CLOCK_ID. */ extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW; /* Get current value of clock CLOCK_ID and store it in TP. */ extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW __nonnull((2)); /* Set clock CLOCK_ID to value TP. */ extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp) __THROW __nonnull((2)); # else # 295 "/usr/include/time.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (nanosleep, (const struct timespec *__requested_time, struct timespec *__remaining), __nanosleep64); extern int __REDIRECT_NTH (clock_getres, (clockid_t __clock_id, struct timespec *__res), __clock_getres64); extern int __REDIRECT_NTH (clock_gettime, (clockid_t __clock_id, struct timespec *__tp), __clock_gettime64) __nonnull((2)); extern int __REDIRECT_NTH (clock_settime, (clockid_t __clock_id, const struct timespec *__tp), __clock_settime64) __nonnull((2)); # else # 309 "/usr/include/time.h" 3 4 # define nanosleep __nanosleep64 # define clock_getres __clock_getres64 # define clock_gettime __clock_gettime64 # define clock_settime __clock_settime64 # endif # 314 "/usr/include/time.h" 3 4 # endif # 315 "/usr/include/time.h" 3 4 # ifdef __USE_XOPEN2K /* High-resolution sleep with the specified clock. This function is a cancellation point and therefore not marked with __THROW. */ # ifndef __USE_TIME64_REDIRECTS extern int clock_nanosleep (clockid_t __clock_id, int __flags, const struct timespec *__req, struct timespec *__rem); # else # 327 "/usr/include/time.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (clock_nanosleep, (clockid_t __clock_id, int __flags, const struct timespec *__req, struct timespec *__rem), __clock_nanosleep_time64); # else # 333 "/usr/include/time.h" 3 4 # define clock_nanosleep __clock_nanosleep_time64 # endif # 335 "/usr/include/time.h" 3 4 # endif # 336 "/usr/include/time.h" 3 4 /* Return clock ID for CPU-time clock. */ extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW; # endif # 340 "/usr/include/time.h" 3 4 /* Create new per-process timer using CLOCK_ID. */ extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) __THROW; /* Delete timer TIMERID. */ extern int timer_delete (timer_t __timerid) __THROW; /* Set timer TIMERID to VALUE, returning old value in OVALUE. */ # ifndef __USE_TIME64_REDIRECTS extern int timer_settime (timer_t __timerid, int __flags, const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) __THROW; /* Get current value of timer TIMERID and store it in VALUE. */ extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) __THROW; # else # 360 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (timer_settime, (timer_t __timerid, int __flags, const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue), __timer_settime64); extern int __REDIRECT_NTH (timer_gettime, (timer_t __timerid, struct itimerspec *__value), __timer_gettime64); # else # 370 "/usr/include/time.h" 3 4 # define timer_settime __timer_settime64 # define timer_gettime __timer_gettime64 # endif # 373 "/usr/include/time.h" 3 4 # endif # 374 "/usr/include/time.h" 3 4 /* Get expiration overrun for timer TIMERID. */ extern int timer_getoverrun (timer_t __timerid) __THROW; #endif # 378 "/usr/include/time.h" 3 4 #ifdef __USE_ISOC11 # ifndef __USE_TIME64_REDIRECTS /* Set TS to calendar time based in time base BASE. */ extern int timespec_get (struct timespec *__ts, int __base) __THROW __nonnull ((1)); # else # 386 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (timespec_get, (struct timespec *__ts, int __base), __timespec_get64) __nonnull ((1)); # else # 390 "/usr/include/time.h" 3 4 # define timespec_get __timespec_get64 # endif # 392 "/usr/include/time.h" 3 4 # endif # 393 "/usr/include/time.h" 3 4 #endif # 394 "/usr/include/time.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 397 "/usr/include/time.h" 3 4 # ifndef __USE_TIME64_REDIRECTS /* Set TS to resolution of time base BASE. */ extern int timespec_getres (struct timespec *__ts, int __base) __THROW; # else # 402 "/usr/include/time.h" 3 4 # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (timespec_getres, (struct timespec *__ts, int __base), __timespec_getres64); # else # 407 "/usr/include/time.h" 3 4 # define timespec_getres __timespec_getres64 # endif # 409 "/usr/include/time.h" 3 4 # endif # 410 "/usr/include/time.h" 3 4 #endif # 411 "/usr/include/time.h" 3 4 #ifdef __USE_XOPEN_EXTENDED /* Set to one of the following values to indicate an error. 1 the DATEMSK environment variable is null or undefined, 2 the template file cannot be opened for reading, 3 failed to get file status information, 4 the template file is not a regular file, 5 an error is encountered while reading the template file, 6 memory allication failed (not enough memory available), 7 there is no line in the template that matches the input, 8 invalid input specification Example: February 31 or a time is specified that can not be represented in a time_t (representing the time in seconds since 00:00:00 UTC, January 1, 1970) */ extern int getdate_err; /* Parse the given string as a date specification and return a value representing the value. The templates from the file identified by the environment variable DATEMSK are used. In case of an error `getdate_err' is set. This function is a possible cancellation point and therefore not marked with __THROW. */ extern struct tm *getdate (const char *__string); #endif # 436 "/usr/include/time.h" 3 4 #ifdef __USE_GNU /* Since `getdate' is not reentrant because of the use of `getdate_err' and the static buffer to return the result in, we provide a thread-safe variant. The functionality is the same. The result is returned in the buffer pointed to by RESBUFP and in case of an error the return value is != 0 with the same values as given above for `getdate_err'. This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern int getdate_r (const char *__restrict __string, struct tm *__restrict __resbufp); #endif # 451 "/usr/include/time.h" 3 4 __END_DECLS #endif /* time.h. */ # 455 "/usr/include/time.h" 3 4 #endif /* time.h expanded by -frewrite-includes */ # 12 "../mesa/src/c11/time.h" 2 /*---------------------------- macros ---------------------------*/ /* Refer to https://htmlpreview.github.io/?https://icube-forge.unistra.fr/icps/c23-library/-/raw/main/README.html#time_monotonic-time_active-time_thread_active */ #if 0 /* disabled by -frewrite-includes */ #if defined(TIME_UTC) && \ defined(TIME_MONOTONIC) && \ defined(TIME_ACTIVE) && \ defined(TIME_THREAD_ACTIVE) && \ defined(TIME_MONOTONIC_RAW) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "../mesa/src/c11/time.h" /* all needed time base is implemented */ #else # 23 "../mesa/src/c11/time.h" #define _TIMESPEC_GET_NEED_IMPL #endif # 25 "../mesa/src/c11/time.h" #ifdef _TIMESPEC_GET_NEED_IMPL #undef TIME_UTC #undef TIME_MONOTONIC #undef TIME_ACTIVE #undef TIME_THREAD_ACTIVE #undef TIME_MONOTONIC_RAW /* c11 */ #define TIME_UTC 1 /* c23 */ #define TIME_MONOTONIC 2 #define TIME_ACTIVE 3 #define TIME_THREAD_ACTIVE 4 #define TIME_MONOTONIC_RAW 5 #define timespec_get c23_timespec_get #endif # 41 "../mesa/src/c11/time.h" #ifdef __cplusplus extern "C" { #endif # 45 "../mesa/src/c11/time.h" /*---------------------------- types ----------------------------*/ /* * On MINGW `struct timespec` present but `timespec_get` may not present; * On MSVC `struct timespec` and `timespec_get` present at the same time; * So detecting `HAVE_STRUCT_TIMESPEC` in meson script dynamically. */ #ifndef HAVE_STRUCT_TIMESPEC struct timespec { time_t tv_sec; // Seconds - >= 0 long tv_nsec; // Nanoseconds - [0, 999999999] }; #endif # 60 "../mesa/src/c11/time.h" /*-------------------------- functions --------------------------*/ #if 0 /* disabled by -frewrite-includes */ #if defined(_TIMESPEC_GET_NEED_IMPL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 64 "../mesa/src/c11/time.h" #define _TIMESPEC_GET_NEED_DECL #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__APPLE__) && defined(__cplusplus) && (__cplusplus < 201703L) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 66 "../mesa/src/c11/time.h" /* On macOS, the guard for declaration of timespec_get is by * (defined(__cplusplus) && __cplusplus >= 201703L), * fix the declaration for C++14 and lower here */ #define _TIMESPEC_GET_NEED_DECL #endif # 72 "../mesa/src/c11/time.h" #ifdef _TIMESPEC_GET_NEED_DECL /*-------------------- 7.25.7 Time functions --------------------*/ // 7.25.6.1 int timespec_get(struct timespec *ts, int base); #undef _TIMESPEC_GET_NEED_DECL #endif # 80 "../mesa/src/c11/time.h" #ifdef __cplusplus } #endif # 84 "../mesa/src/c11/time.h" #endif /* C11_TIME_H_INCLUDED_ */ # 86 "../mesa/src/c11/time.h" #endif /* time.h expanded by -frewrite-includes */ # 35 "../mesa/src/c11/threads.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 36 "../mesa/src/c11/threads.h" # 1 "/usr/include/errno.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.5 Errors */ #ifndef _ERRNO_H #define _ERRNO_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/errno.h" 3 4 # 26 "/usr/include/errno.h" 3 4 /* The system-specific definitions of the E* constants, as macros. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 28 "/usr/include/errno.h" 3 4 # 1 "/usr/include/bits/errno.h" 1 3 4 /* Error constants. Linux specific version. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_ERRNO_H #define _BITS_ERRNO_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _ERRNO_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/usr/include/bits/errno.h" 3 4 # error "Never include directly; use instead." #endif # 25 "/usr/include/bits/errno.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ # include #else /* errno.h expanded by -frewrite-includes */ # 26 "/usr/include/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 1 "/usr/include/linux/errno.h" 3 4 # 1 "/usr/include/asm/errno.h" 1 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno.h expanded by -frewrite-includes */ #include #else /* errno.h expanded by -frewrite-includes */ # 1 "/usr/include/asm/errno.h" 3 4 # 1 "/usr/include/asm-generic/errno.h" 1 3 4 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _ASM_GENERIC_ERRNO_H #define _ASM_GENERIC_ERRNO_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* errno-base.h expanded by -frewrite-includes */ #include #else /* errno-base.h expanded by -frewrite-includes */ # 5 "/usr/include/asm-generic/errno.h" 3 4 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _ASM_GENERIC_ERRNO_BASE_H #define _ASM_GENERIC_ERRNO_BASE_H #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Argument list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No child processes */ #define EAGAIN 11 /* Try again */ #define ENOMEM 12 /* Out of memory */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Device or resource busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read-only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math argument out of domain of func */ #define ERANGE 34 /* Math result not representable */ #endif # 41 "/usr/include/asm-generic/errno-base.h" 3 4 #endif /* errno-base.h expanded by -frewrite-includes */ # 6 "/usr/include/asm-generic/errno.h" 2 3 4 #define EDEADLK 35 /* Resource deadlock would occur */ #define ENAMETOOLONG 36 /* File name too long */ #define ENOLCK 37 /* No record locks available */ /* * This error code is special: arch syscall entry code will return * -ENOSYS if users try to call a syscall that doesn't exist. To keep * failures of syscalls that really do exist distinguishable from * failures due to attempts to use a nonexistent syscall, syscall * implementations should refrain from returning -ENOSYS. */ #define ENOSYS 38 /* Invalid system call number */ #define ENOTEMPTY 39 /* Directory not empty */ #define ELOOP 40 /* Too many symbolic links encountered */ #define EWOULDBLOCK EAGAIN /* Operation would block */ #define ENOMSG 42 /* No message of desired type */ #define EIDRM 43 /* Identifier removed */ #define ECHRNG 44 /* Channel number out of range */ #define EL2NSYNC 45 /* Level 2 not synchronized */ #define EL3HLT 46 /* Level 3 halted */ #define EL3RST 47 /* Level 3 reset */ #define ELNRNG 48 /* Link number out of range */ #define EUNATCH 49 /* Protocol driver not attached */ #define ENOCSI 50 /* No CSI structure available */ #define EL2HLT 51 /* Level 2 halted */ #define EBADE 52 /* Invalid exchange */ #define EBADR 53 /* Invalid request descriptor */ #define EXFULL 54 /* Exchange full */ #define ENOANO 55 /* No anode */ #define EBADRQC 56 /* Invalid request code */ #define EBADSLT 57 /* Invalid slot */ #define EDEADLOCK EDEADLK #define EBFONT 59 /* Bad font file format */ #define ENOSTR 60 /* Device not a stream */ #define ENODATA 61 /* No data available */ #define ETIME 62 /* Timer expired */ #define ENOSR 63 /* Out of streams resources */ #define ENONET 64 /* Machine is not on the network */ #define ENOPKG 65 /* Package not installed */ #define EREMOTE 66 /* Object is remote */ #define ENOLINK 67 /* Link has been severed */ #define EADV 68 /* Advertise error */ #define ESRMNT 69 /* Srmount error */ #define ECOMM 70 /* Communication error on send */ #define EPROTO 71 /* Protocol error */ #define EMULTIHOP 72 /* Multihop attempted */ #define EDOTDOT 73 /* RFS specific error */ #define EBADMSG 74 /* Not a data message */ #define EOVERFLOW 75 /* Value too large for defined data type */ #define ENOTUNIQ 76 /* Name not unique on network */ #define EBADFD 77 /* File descriptor in bad state */ #define EREMCHG 78 /* Remote address changed */ #define ELIBACC 79 /* Can not access a needed shared library */ #define ELIBBAD 80 /* Accessing a corrupted shared library */ #define ELIBSCN 81 /* .lib section in a.out corrupted */ #define ELIBMAX 82 /* Attempting to link in too many shared libraries */ #define ELIBEXEC 83 /* Cannot exec a shared library directly */ #define EILSEQ 84 /* Illegal byte sequence */ #define ERESTART 85 /* Interrupted system call should be restarted */ #define ESTRPIPE 86 /* Streams pipe error */ #define EUSERS 87 /* Too many users */ #define ENOTSOCK 88 /* Socket operation on non-socket */ #define EDESTADDRREQ 89 /* Destination address required */ #define EMSGSIZE 90 /* Message too long */ #define EPROTOTYPE 91 /* Protocol wrong type for socket */ #define ENOPROTOOPT 92 /* Protocol not available */ #define EPROTONOSUPPORT 93 /* Protocol not supported */ #define ESOCKTNOSUPPORT 94 /* Socket type not supported */ #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ #define EPFNOSUPPORT 96 /* Protocol family not supported */ #define EAFNOSUPPORT 97 /* Address family not supported by protocol */ #define EADDRINUSE 98 /* Address already in use */ #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ #define ENETDOWN 100 /* Network is down */ #define ENETUNREACH 101 /* Network is unreachable */ #define ENETRESET 102 /* Network dropped connection because of reset */ #define ECONNABORTED 103 /* Software caused connection abort */ #define ECONNRESET 104 /* Connection reset by peer */ #define ENOBUFS 105 /* No buffer space available */ #define EISCONN 106 /* Transport endpoint is already connected */ #define ENOTCONN 107 /* Transport endpoint is not connected */ #define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ #define ETOOMANYREFS 109 /* Too many references: cannot splice */ #define ETIMEDOUT 110 /* Connection timed out */ #define ECONNREFUSED 111 /* Connection refused */ #define EHOSTDOWN 112 /* Host is down */ #define EHOSTUNREACH 113 /* No route to host */ #define EALREADY 114 /* Operation already in progress */ #define EINPROGRESS 115 /* Operation now in progress */ #define ESTALE 116 /* Stale file handle */ #define EUCLEAN 117 /* Structure needs cleaning */ #define ENOTNAM 118 /* Not a XENIX named type file */ #define ENAVAIL 119 /* No XENIX semaphores available */ #define EISNAM 120 /* Is a named type file */ #define EREMOTEIO 121 /* Remote I/O error */ #define EDQUOT 122 /* Quota exceeded */ #define ENOMEDIUM 123 /* No medium found */ #define EMEDIUMTYPE 124 /* Wrong medium type */ #define ECANCELED 125 /* Operation Canceled */ #define ENOKEY 126 /* Required key not available */ #define EKEYEXPIRED 127 /* Key has expired */ #define EKEYREVOKED 128 /* Key has been revoked */ #define EKEYREJECTED 129 /* Key was rejected by service */ /* for robust mutexes */ #define EOWNERDEAD 130 /* Owner died */ #define ENOTRECOVERABLE 131 /* State not recoverable */ #define ERFKILL 132 /* Operation not possible due to RF-kill */ #define EHWPOISON 133 /* Memory page has hardware error */ #endif # 124 "/usr/include/asm-generic/errno.h" 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 2 "/usr/include/asm/errno.h" 2 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 2 "/usr/include/linux/errno.h" 2 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 27 "/usr/include/bits/errno.h" 2 3 4 /* Older Linux headers do not define these constants. */ # ifndef ENOTSUP # define ENOTSUP EOPNOTSUPP # endif # 32 "/usr/include/bits/errno.h" 3 4 # ifndef ECANCELED # define ECANCELED 125 # endif # 36 "/usr/include/bits/errno.h" 3 4 # ifndef EOWNERDEAD # define EOWNERDEAD 130 # endif # 40 "/usr/include/bits/errno.h" 3 4 #ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 131 # endif # 44 "/usr/include/bits/errno.h" 3 4 # ifndef ERFKILL # define ERFKILL 132 # endif # 48 "/usr/include/bits/errno.h" 3 4 # ifndef EHWPOISON # define EHWPOISON 133 # endif # 52 "/usr/include/bits/errno.h" 3 4 #endif /* bits/errno.h. */ # 54 "/usr/include/bits/errno.h" 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 29 "/usr/include/errno.h" 2 3 4 /* When included from assembly language, this header only provides the E* constants. */ #ifndef __ASSEMBLER__ __BEGIN_DECLS /* The error code set by various library functions. */ extern int *__errno_location (void) __THROW __attribute_const__; # define errno (*__errno_location ()) # ifdef __USE_GNU /* The full and simple forms of the name with which the program was invoked. These variables are set up automatically at startup based on the value of argv[0]. */ extern char *program_invocation_name; extern char *program_invocation_short_name; #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* error_t.h expanded by -frewrite-includes */ #include #else /* error_t.h expanded by -frewrite-includes */ # 48 "/usr/include/errno.h" 3 4 # 1 "/usr/include/bits/types/error_t.h" 1 3 4 /* Define error_t. Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __error_t_defined # define __error_t_defined 1 typedef int error_t; #endif # 25 "/usr/include/bits/types/error_t.h" 3 4 #endif /* error_t.h expanded by -frewrite-includes */ # 49 "/usr/include/errno.h" 2 3 4 # endif /* __USE_GNU */ # 51 "/usr/include/errno.h" 3 4 __END_DECLS #endif /* !__ASSEMBLER__ */ # 55 "/usr/include/errno.h" 3 4 #endif /* errno.h */ # 56 "/usr/include/errno.h" 3 4 #endif /* errno.h expanded by -frewrite-includes */ # 37 "../mesa/src/c11/threads.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* limits.h expanded by -frewrite-includes */ #include #else /* limits.h expanded by -frewrite-includes */ # 37 "../mesa/src/c11/threads.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 1 3 /*===---- limits.h - Standard header for integer sizes --------------------===*\ * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * \*===----------------------------------------------------------------------===*/ #ifndef __CLANG_LIMITS_H #define __CLANG_LIMITS_H #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 13 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 13 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 # 14 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #else # 15 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 /* The system's limits.h may, in turn, try to #include_next GCC's limits.h. Avert this #include_next madness. */ #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ && !defined _GCC_LIMITS_H_ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 19 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define _GCC_LIMITS_H_ #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 /* System headers include a number of constants from POSIX in . Include it if we're hosted. */ #if 0 /* disabled by -frewrite-includes */ #if __STDC_HOSTED__ && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 25 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* limits.h expanded by -frewrite-includes */ #include_next #else /* limits.h expanded by -frewrite-includes */ # 25 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 # 1 "/usr/include/limits.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types */ #ifndef _LIBC_LIMITS_H_ #define _LIBC_LIMITS_H_ 1 #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libc-header-start.h expanded by -frewrite-includes */ #include #else /* libc-header-start.h expanded by -frewrite-includes */ # 26 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4 /* Handle feature test macros at the start of a header. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header cannot have multiple include guards because ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included. */ #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION # error "Never include directly." #endif # 30 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/bits/libc-header-start.h" 3 4 # 34 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ macro. */ #undef __GLIBC_USE_LIB_EXT2 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 1 #else # 42 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 0 #endif # 44 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ macro. Most but not all symbols enabled by that macro in TS 18661-1 are enabled unconditionally in C23. In C23, the symbols in Annex F still require a new feature test macro __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 18661-1 are not included in C23 (and thus should depend on __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are enabled). __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 18661-1 not included in C23. __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS 18661-1 that are also included in C23 (with no feature test macro required in C23). __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 that are included in C23 but conditional on __STDC_WANT_IEC_60559_EXT__. (There are currently no features conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 18661-1.) */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # 71 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif # 73 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1 #else # 77 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0 #endif # 79 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_EXT #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 1 #else # 83 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 0 #endif # 85 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-4:2015 defines the __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction functions, the symbols from this TS are enabled unconditionally in C23. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 92 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # 94 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif # 96 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1 #else # 100 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0 #endif # 102 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ #undef __GLIBC_USE_IEC_60559_TYPES_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 #else # 109 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 #endif # 111 "/usr/include/bits/libc-header-start.h" 3 4 #endif /* libc-header-start.h expanded by -frewrite-includes */ # 27 "/usr/include/limits.h" 2 3 4 /* Maximum length of any multibyte character in any locale. We define this value here since the gcc header does not define the correct value. */ #define MB_LEN_MAX 16 /* If we are not using GNU CC we have to define all the symbols ourself. Otherwise use gcc's definitions (see below). */ #if 0 /* disabled by -frewrite-includes */ #if !defined __GNUC__ || __GNUC__ < 2 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/limits.h" 3 4 /* We only protect from multiple inclusion here, because all the other #include's protect themselves, and in GCC 2 we may #include_next through multiple copies of this file before we get to GCC's. */ # ifndef _LIMITS_H # define _LIMITS_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 45 "/usr/include/limits.h" 3 4 # 46 "/usr/include/limits.h" 3 4 /* We don't have #include_next. Define ANSI for standard 32-bit words. */ /* These assume 8-bit `char's, 16-bit `short int's, and 32-bit `int's and `long int's. */ /* Number of bits in a `char'. */ # define CHAR_BIT 8 /* Minimum and maximum values a `signed char' can hold. */ # define SCHAR_MIN (-128) # define SCHAR_MAX 127 /* Maximum value an `unsigned char' can hold. (Minimum is 0.) */ # define UCHAR_MAX 255 /* Minimum and maximum values a `char' can hold. */ # ifdef __CHAR_UNSIGNED__ # define CHAR_MIN 0 # define CHAR_MAX UCHAR_MAX # else # 68 "/usr/include/limits.h" 3 4 # define CHAR_MIN SCHAR_MIN # define CHAR_MAX SCHAR_MAX # endif # 71 "/usr/include/limits.h" 3 4 /* Minimum and maximum values a `signed short int' can hold. */ # define SHRT_MIN (-32768) # define SHRT_MAX 32767 /* Maximum value an `unsigned short int' can hold. (Minimum is 0.) */ # define USHRT_MAX 65535 /* Minimum and maximum values a `signed int' can hold. */ # define INT_MIN (-INT_MAX - 1) # define INT_MAX 2147483647 /* Maximum value an `unsigned int' can hold. (Minimum is 0.) */ # define UINT_MAX 4294967295U /* Minimum and maximum values a `signed long int' can hold. */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/usr/include/limits.h" 3 4 # define LONG_MAX 9223372036854775807L # else # 90 "/usr/include/limits.h" 3 4 # define LONG_MAX 2147483647L # endif # 92 "/usr/include/limits.h" 3 4 # define LONG_MIN (-LONG_MAX - 1L) /* Maximum value an `unsigned long int' can hold. (Minimum is 0.) */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/limits.h" 3 4 # define ULONG_MAX 18446744073709551615UL # else # 98 "/usr/include/limits.h" 3 4 # define ULONG_MAX 4294967295UL # endif # 100 "/usr/include/limits.h" 3 4 # ifdef __USE_ISOC99 /* Minimum and maximum values a `signed long long int' can hold. */ # define LLONG_MAX 9223372036854775807LL # define LLONG_MIN (-LLONG_MAX - 1LL) /* Maximum value an `unsigned long long int' can hold. (Minimum is 0.) */ # define ULLONG_MAX 18446744073709551615ULL # endif /* ISO C99 */ # 111 "/usr/include/limits.h" 3 4 # endif /* limits.h */ # 113 "/usr/include/limits.h" 3 4 #endif /* GCC 2. */ # 114 "/usr/include/limits.h" 3 4 #endif /* !_LIBC_LIMITS_H_ */ # 116 "/usr/include/limits.h" 3 4 /* Get the compiler's limits.h, which defines almost all the ISO constants. We put this #include_next outside the double inclusion check because it should be possible to include this file more than once and still get the definitions from gcc's header. */ #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ && !defined _GCC_LIMITS_H_ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/usr/include/limits.h" 3 4 /* `_GCC_LIMITS_H_' is what GCC's file defines. */ #if 0 /* expanded by -frewrite-includes */ # include_next #endif /* expanded by -frewrite-includes */ # 124 "/usr/include/limits.h" 3 4 # 125 "/usr/include/limits.h" 3 4 #endif # 126 "/usr/include/limits.h" 3 4 /* The files in some gcc versions don't define LLONG_MIN, LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for ages are available. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_ISOC99 && defined __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 131 "/usr/include/limits.h" 3 4 # ifndef LLONG_MIN # define LLONG_MIN (-LLONG_MAX-1) # endif # 134 "/usr/include/limits.h" 3 4 # ifndef LLONG_MAX # define LLONG_MAX __LONG_LONG_MAX__ # endif # 137 "/usr/include/limits.h" 3 4 # ifndef ULLONG_MAX # define ULLONG_MAX (LLONG_MAX * 2ULL + 1) # endif # 140 "/usr/include/limits.h" 3 4 #endif # 141 "/usr/include/limits.h" 3 4 /* The integer width macros are not defined by GCC's before GCC 7, or if _GNU_SOURCE rather than __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. */ #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 146 "/usr/include/limits.h" 3 4 # ifndef CHAR_WIDTH # define CHAR_WIDTH 8 # endif # 149 "/usr/include/limits.h" 3 4 # ifndef SCHAR_WIDTH # define SCHAR_WIDTH 8 # endif # 152 "/usr/include/limits.h" 3 4 # ifndef UCHAR_WIDTH # define UCHAR_WIDTH 8 # endif # 155 "/usr/include/limits.h" 3 4 # ifndef SHRT_WIDTH # define SHRT_WIDTH 16 # endif # 158 "/usr/include/limits.h" 3 4 # ifndef USHRT_WIDTH # define USHRT_WIDTH 16 # endif # 161 "/usr/include/limits.h" 3 4 # ifndef INT_WIDTH # define INT_WIDTH 32 # endif # 164 "/usr/include/limits.h" 3 4 # ifndef UINT_WIDTH # define UINT_WIDTH 32 # endif # 167 "/usr/include/limits.h" 3 4 # ifndef LONG_WIDTH # define LONG_WIDTH __WORDSIZE # endif # 170 "/usr/include/limits.h" 3 4 # ifndef ULONG_WIDTH # define ULONG_WIDTH __WORDSIZE # endif # 173 "/usr/include/limits.h" 3 4 # ifndef LLONG_WIDTH # define LLONG_WIDTH 64 # endif # 176 "/usr/include/limits.h" 3 4 # ifndef ULLONG_WIDTH # define ULLONG_WIDTH 64 # endif # 179 "/usr/include/limits.h" 3 4 #endif /* Use IEC_60559_BFP_EXT. */ # 180 "/usr/include/limits.h" 3 4 /* The macros for _Bool are not defined by GCC's before GCC 11, or if _GNU_SOURCE is defined rather than enabling C23 support with -std. */ #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 185 "/usr/include/limits.h" 3 4 # ifndef BOOL_MAX # define BOOL_MAX 1 # endif # 188 "/usr/include/limits.h" 3 4 # ifndef BOOL_WIDTH # define BOOL_WIDTH 1 # endif # 191 "/usr/include/limits.h" 3 4 #endif # 192 "/usr/include/limits.h" 3 4 #ifdef __USE_POSIX /* POSIX adds things to . */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix1_lim.h expanded by -frewrite-includes */ # include #else /* posix1_lim.h expanded by -frewrite-includes */ # 195 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * POSIX Standard: 2.9.2 Minimum Values Added to * * Never include this file directly; use instead. */ #ifndef _BITS_POSIX1_LIM_H #define _BITS_POSIX1_LIM_H 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 27 "/usr/include/bits/posix1_lim.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 28 "/usr/include/bits/posix1_lim.h" 2 3 4 /* These are the standard-mandated minimum values. */ /* Minimum number of operations in one list I/O call. */ #define _POSIX_AIO_LISTIO_MAX 2 /* Minimal number of outstanding asynchronous I/O operations. */ #define _POSIX_AIO_MAX 1 /* Maximum length of arguments to `execve', including environment. */ #define _POSIX_ARG_MAX 4096 /* Maximum simultaneous processes per real user ID. */ #ifdef __USE_XOPEN2K # define _POSIX_CHILD_MAX 25 #else # 44 "/usr/include/bits/posix1_lim.h" 3 4 # define _POSIX_CHILD_MAX 6 #endif # 46 "/usr/include/bits/posix1_lim.h" 3 4 /* Minimal number of timer expiration overruns. */ #define _POSIX_DELAYTIMER_MAX 32 /* Maximum length of a host name (not including the terminating null) as returned from the GETHOSTNAME function. */ #define _POSIX_HOST_NAME_MAX 255 /* Maximum link count of a file. */ #define _POSIX_LINK_MAX 8 /* Maximum length of login name. */ #define _POSIX_LOGIN_NAME_MAX 9 /* Number of bytes in a terminal canonical input queue. */ #define _POSIX_MAX_CANON 255 /* Number of bytes for which space will be available in a terminal input queue. */ #define _POSIX_MAX_INPUT 255 /* Maximum number of message queues open for a process. */ #define _POSIX_MQ_OPEN_MAX 8 /* Maximum number of supported message priorities. */ #define _POSIX_MQ_PRIO_MAX 32 /* Number of bytes in a filename. */ #define _POSIX_NAME_MAX 14 /* Number of simultaneous supplementary group IDs per process. */ #ifdef __USE_XOPEN2K # define _POSIX_NGROUPS_MAX 8 #else # 80 "/usr/include/bits/posix1_lim.h" 3 4 # define _POSIX_NGROUPS_MAX 0 #endif # 82 "/usr/include/bits/posix1_lim.h" 3 4 /* Number of files one process can have open at once. */ #ifdef __USE_XOPEN2K # define _POSIX_OPEN_MAX 20 #else # 87 "/usr/include/bits/posix1_lim.h" 3 4 # define _POSIX_OPEN_MAX 16 #endif # 89 "/usr/include/bits/posix1_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined __USE_XOPEN2K || defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 91 "/usr/include/bits/posix1_lim.h" 3 4 /* Number of descriptors that a process may examine with `pselect' or `select'. */ # define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX #endif # 95 "/usr/include/bits/posix1_lim.h" 3 4 /* Number of bytes in a pathname. */ #define _POSIX_PATH_MAX 256 /* Number of bytes than can be written atomically to a pipe. */ #define _POSIX_PIPE_BUF 512 /* The number of repeated occurrences of a BRE permitted by the REGEXEC and REGCOMP functions when using the interval notation. */ #define _POSIX_RE_DUP_MAX 255 /* Minimal number of realtime signals reserved for the application. */ #define _POSIX_RTSIG_MAX 8 /* Number of semaphores a process can have. */ #define _POSIX_SEM_NSEMS_MAX 256 /* Maximal value of a semaphore. */ #define _POSIX_SEM_VALUE_MAX 32767 /* Number of pending realtime signals. */ #define _POSIX_SIGQUEUE_MAX 32 /* Largest value of a `ssize_t'. */ #define _POSIX_SSIZE_MAX 32767 /* Number of streams a process can have open at once. */ #define _POSIX_STREAM_MAX 8 /* The number of bytes in a symbolic link. */ #define _POSIX_SYMLINK_MAX 255 /* The number of symbolic links that can be traversed in the resolution of a pathname in the absence of a loop. */ #define _POSIX_SYMLOOP_MAX 8 /* Number of timer for a process. */ #define _POSIX_TIMER_MAX 32 /* Maximum number of characters in a tty name. */ #define _POSIX_TTY_NAME_MAX 9 /* Maximum length of a time zone abbreviation (element of 'tzname'). */ #ifdef __USE_XOPEN2K # define _POSIX_TZNAME_MAX 6 #else # 141 "/usr/include/bits/posix1_lim.h" 3 4 # define _POSIX_TZNAME_MAX 3 #endif # 143 "/usr/include/bits/posix1_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined __USE_XOPEN2K || defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 145 "/usr/include/bits/posix1_lim.h" 3 4 /* Maximum number of connections that can be queued on a socket. */ # define _POSIX_QLIMIT 1 /* Maximum number of bytes that can be buffered on a socket for send or receive. */ # define _POSIX_HIWAT _POSIX_PIPE_BUF /* Maximum number of elements in an `iovec' array. */ # define _POSIX_UIO_MAXIOV 16 #endif # 155 "/usr/include/bits/posix1_lim.h" 3 4 /* Maximum clock resolution in nanoseconds. */ #define _POSIX_CLOCKRES_MIN 20000000 /* Get the implementation-specific values for the above. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* local_lim.h expanded by -frewrite-includes */ #include #else /* local_lim.h expanded by -frewrite-includes */ # 161 "/usr/include/bits/posix1_lim.h" 3 4 # 1 "/usr/include/bits/local_lim.h" 1 3 4 /* Minimum guaranteed maximum values for system limits. Linux version. Copyright (C) 1993-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ /* The kernel header pollutes the namespace with the NR_OPEN symbol and defines LINK_MAX although filesystems have different maxima. A similar thing is true for OPEN_MAX: the limit can be changed at runtime and therefore the macro must not be defined. Remove this after including the header if necessary. */ #ifndef NR_OPEN # define __undef_NR_OPEN #endif # 27 "/usr/include/bits/local_lim.h" 3 4 #ifndef LINK_MAX # define __undef_LINK_MAX #endif # 30 "/usr/include/bits/local_lim.h" 3 4 #ifndef OPEN_MAX # define __undef_OPEN_MAX #endif # 33 "/usr/include/bits/local_lim.h" 3 4 #ifndef ARG_MAX # define __undef_ARG_MAX #endif # 36 "/usr/include/bits/local_lim.h" 3 4 /* The kernel sources contain a file with all the needed information. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* limits.h expanded by -frewrite-includes */ #include #else /* limits.h expanded by -frewrite-includes */ # 38 "/usr/include/bits/local_lim.h" 3 4 # 1 "/usr/include/linux/limits.h" 1 3 4 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _LINUX_LIMITS_H #define _LINUX_LIMITS_H #define NR_OPEN 1024 #define NGROUPS_MAX 65536 /* supplemental group IDs are available */ #define ARG_MAX 131072 /* # bytes of args + environ for exec() */ #define LINK_MAX 127 /* # links a file may have */ #define MAX_CANON 255 /* size of the canonical input queue */ #define MAX_INPUT 255 /* size of the type-ahead buffer */ #define NAME_MAX 255 /* # chars in a file name */ #define PATH_MAX 4096 /* # chars in a path name including nul */ #define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */ #define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */ #define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */ #define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */ #define RTSIG_MAX 32 #endif # 22 "/usr/include/linux/limits.h" 3 4 #endif /* limits.h expanded by -frewrite-includes */ # 39 "/usr/include/bits/local_lim.h" 2 3 4 /* Have to remove NR_OPEN? */ #ifdef __undef_NR_OPEN # undef NR_OPEN # undef __undef_NR_OPEN #endif # 45 "/usr/include/bits/local_lim.h" 3 4 /* Have to remove LINK_MAX? */ #ifdef __undef_LINK_MAX # undef LINK_MAX # undef __undef_LINK_MAX #endif # 50 "/usr/include/bits/local_lim.h" 3 4 /* Have to remove OPEN_MAX? */ #ifdef __undef_OPEN_MAX # undef OPEN_MAX # undef __undef_OPEN_MAX #endif # 55 "/usr/include/bits/local_lim.h" 3 4 /* Have to remove ARG_MAX? */ #ifdef __undef_ARG_MAX # undef ARG_MAX # undef __undef_ARG_MAX #endif # 60 "/usr/include/bits/local_lim.h" 3 4 /* The number of data keys per process. */ #define _POSIX_THREAD_KEYS_MAX 128 /* This is the value this implementation supports. */ #define PTHREAD_KEYS_MAX 1024 /* Controlling the iterations of destructors for thread-specific data. */ #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 /* Number of iterations this implementation does. */ #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS /* The number of threads per process. */ #define _POSIX_THREAD_THREADS_MAX 64 /* We have no predefined limit on the number of threads. */ #undef PTHREAD_THREADS_MAX /* Maximum amount by which a process can decrease its asynchronous I/O priority level. */ #define AIO_PRIO_DELTA_MAX 20 /* Arrange for the definition of PTHREAD_STACK_MIN. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pthread_stack_min-dynamic.h expanded by -frewrite-includes */ #include #else /* pthread_stack_min-dynamic.h expanded by -frewrite-includes */ # 81 "/usr/include/bits/local_lim.h" 3 4 # 1 "/usr/include/bits/pthread_stack_min-dynamic.h" 1 3 4 /* Definition of PTHREAD_STACK_MIN, possibly dynamic. Copyright (C) 2021-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef PTHREAD_STACK_MIN #if 0 /* disabled by -frewrite-includes */ # if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 21 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 # ifndef __ASSEMBLER__ # define __SC_THREAD_STACK_MIN_VALUE 75 __BEGIN_DECLS extern long int __sysconf (int __name) __THROW; __END_DECLS # define PTHREAD_STACK_MIN __sysconf (__SC_THREAD_STACK_MIN_VALUE) # endif # 28 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 # else # 29 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 29 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 # 30 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 # endif # 31 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 #endif # 32 "/usr/include/bits/pthread_stack_min-dynamic.h" 3 4 #endif /* pthread_stack_min-dynamic.h expanded by -frewrite-includes */ # 82 "/usr/include/bits/local_lim.h" 2 3 4 /* Maximum number of timer expiration overruns. */ #define DELAYTIMER_MAX 2147483647 /* Maximum tty name length. */ #define TTY_NAME_MAX 32 /* Maximum login name length. This is arbitrary. */ #define LOGIN_NAME_MAX 256 /* Maximum host name length. */ #define HOST_NAME_MAX 64 /* Maximum message queue priority level. */ #define MQ_PRIO_MAX 32768 /* Maximum value the semaphore can have. */ #define SEM_VALUE_MAX (2147483647) #endif /* local_lim.h expanded by -frewrite-includes */ # 162 "/usr/include/bits/posix1_lim.h" 2 3 4 #ifndef SSIZE_MAX /* ssize_t is not formally required to be the signed type corresponding to size_t, but it is for all configurations supported by glibc. */ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 || __WORDSIZE32_SIZE_ULONG #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 169 "/usr/include/bits/posix1_lim.h" 3 4 # define SSIZE_MAX LONG_MAX # else # 171 "/usr/include/bits/posix1_lim.h" 3 4 # define SSIZE_MAX INT_MAX # endif # 173 "/usr/include/bits/posix1_lim.h" 3 4 #endif # 174 "/usr/include/bits/posix1_lim.h" 3 4 /* This value is a guaranteed minimum maximum. The current maximum can be got from `sysconf'. */ #ifndef NGROUPS_MAX # define NGROUPS_MAX 8 #endif # 182 "/usr/include/bits/posix1_lim.h" 3 4 #endif /* bits/posix1_lim.h */ # 184 "/usr/include/bits/posix1_lim.h" 3 4 #endif /* posix1_lim.h expanded by -frewrite-includes */ # 196 "/usr/include/limits.h" 2 3 4 #endif # 197 "/usr/include/limits.h" 3 4 #ifdef __USE_POSIX2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix2_lim.h expanded by -frewrite-includes */ # include #else /* posix2_lim.h expanded by -frewrite-includes */ # 199 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * Never include this file directly; include instead. */ #ifndef _BITS_POSIX2_LIM_H #define _BITS_POSIX2_LIM_H 1 /* The maximum `ibase' and `obase' values allowed by the `bc' utility. */ #define _POSIX2_BC_BASE_MAX 99 /* The maximum number of elements allowed in an array by the `bc' utility. */ #define _POSIX2_BC_DIM_MAX 2048 /* The maximum `scale' value allowed by the `bc' utility. */ #define _POSIX2_BC_SCALE_MAX 99 /* The maximum length of a string constant accepted by the `bc' utility. */ #define _POSIX2_BC_STRING_MAX 1000 /* The maximum number of weights that can be assigned to an entry of the LC_COLLATE `order' keyword in the locale definition file. */ #define _POSIX2_COLL_WEIGHTS_MAX 2 /* The maximum number of expressions that can be nested within parentheses by the `expr' utility. */ #define _POSIX2_EXPR_NEST_MAX 32 /* The maximum length, in bytes, of an input line. */ #define _POSIX2_LINE_MAX 2048 /* The maximum number of repeated occurrences of a regular expression permitted when using the interval notation `\{M,N\}'. */ #define _POSIX2_RE_DUP_MAX 255 /* The maximum number of bytes in a character class name. We have no fixed limit, 2048 is a high number. */ #define _POSIX2_CHARCLASS_NAME_MAX 14 /* These values are implementation-specific, and may vary within the implementation. Their precise values can be obtained from sysconf. */ #ifndef BC_BASE_MAX #define BC_BASE_MAX _POSIX2_BC_BASE_MAX #endif # 65 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef BC_DIM_MAX #define BC_DIM_MAX _POSIX2_BC_DIM_MAX #endif # 68 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef BC_SCALE_MAX #define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX #endif # 71 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef BC_STRING_MAX #define BC_STRING_MAX _POSIX2_BC_STRING_MAX #endif # 74 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef COLL_WEIGHTS_MAX #define COLL_WEIGHTS_MAX 255 #endif # 77 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef EXPR_NEST_MAX #define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX #endif # 80 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef LINE_MAX #define LINE_MAX _POSIX2_LINE_MAX #endif # 83 "/usr/include/bits/posix2_lim.h" 3 4 #ifndef CHARCLASS_NAME_MAX #define CHARCLASS_NAME_MAX 2048 #endif # 86 "/usr/include/bits/posix2_lim.h" 3 4 /* This value is defined like this in regex.h. */ #define RE_DUP_MAX (0x7fff) #endif /* bits/posix2_lim.h */ # 91 "/usr/include/bits/posix2_lim.h" 3 4 #endif /* posix2_lim.h expanded by -frewrite-includes */ # 200 "/usr/include/limits.h" 2 3 4 #endif # 201 "/usr/include/limits.h" 3 4 #ifdef __USE_XOPEN #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* xopen_lim.h expanded by -frewrite-includes */ # include #else /* xopen_lim.h expanded by -frewrite-includes */ # 203 "/usr/include/limits.h" 3 4 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4 /* Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * Never include this file directly; use instead. */ /* Additional definitions from X/Open Portability Guide, Issue 4, Version 2 System Interfaces and Headers, 4.16 Please note only the values which are not greater than the minimum stated in the standard document are listed. The `sysconf' functions should be used to obtain the actual value. */ #ifndef _XOPEN_LIM_H #define _XOPEN_LIM_H 1 /* We do not provide fixed values for ARG_MAX Maximum length of argument to the `exec' function including environment data. ATEXIT_MAX Maximum number of functions that may be registered with `atexit'. CHILD_MAX Maximum number of simultaneous processes per real user ID. OPEN_MAX Maximum number of files that one process can have open at anyone time. PAGESIZE PAGE_SIZE Size of bytes of a page. PASS_MAX Maximum number of significant bytes in a password. We only provide a fixed limit for IOV_MAX Maximum number of `iovec' structures that one process has available for use with `readv' or writev'. if this is indeed fixed by the underlying system. */ /* Maximum number of `iovec' structures that may be used in a single call to `readv', `writev', etc. */ #define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* uio_lim.h expanded by -frewrite-includes */ #include #else /* uio_lim.h expanded by -frewrite-includes */ # 64 "/usr/include/bits/xopen_lim.h" 3 4 # 1 "/usr/include/bits/uio_lim.h" 1 3 4 /* Implementation limits related to sys/uio.h - Linux version. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_UIO_LIM_H #define _BITS_UIO_LIM_H 1 /* Maximum length of the 'struct iovec' array in a single call to readv or writev. This macro has different values in different kernel versions. The latest versions of the kernel use 1024 and this is good choice. Since the C library implementation of readv/writev is able to emulate the functionality even if the currently running kernel does not support this large value the readv/writev call will not fail because of this. */ #define __IOV_MAX 1024 #endif # 33 "/usr/include/bits/uio_lim.h" 3 4 #endif /* uio_lim.h expanded by -frewrite-includes */ # 65 "/usr/include/bits/xopen_lim.h" 2 3 4 #ifdef __IOV_MAX # define IOV_MAX __IOV_MAX #else # 68 "/usr/include/bits/xopen_lim.h" 3 4 # undef IOV_MAX #endif # 70 "/usr/include/bits/xopen_lim.h" 3 4 /* Maximum value of `digit' in calls to the `printf' and `scanf' functions. We have no limit, so return a reasonable value. */ #define NL_ARGMAX _POSIX_ARG_MAX /* Maximum number of bytes in a `LANG' name. We have no limit. */ #define NL_LANGMAX _POSIX2_LINE_MAX /* Maximum message number. We have no limit. */ #define NL_MSGMAX INT_MAX /* Maximum number of bytes in N-to-1 collation mapping. We have no limit. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || !defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/xopen_lim.h" 3 4 # define NL_NMAX INT_MAX #endif # 86 "/usr/include/bits/xopen_lim.h" 3 4 /* Maximum set number. We have no limit. */ #define NL_SETMAX INT_MAX /* Maximum number of bytes in a message. We have no limit. */ #define NL_TEXTMAX INT_MAX /* Default process priority. */ #define NZERO 20 /* Number of bits in a word of type `int'. */ #ifdef INT_MAX #if 0 /* disabled by -frewrite-includes */ # if INT_MAX == 32767 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 100 "/usr/include/bits/xopen_lim.h" 3 4 # define WORD_BIT 16 # else # 102 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if INT_MAX == 2147483647 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/usr/include/bits/xopen_lim.h" 3 4 # define WORD_BIT 32 # else # 105 "/usr/include/bits/xopen_lim.h" 3 4 /* Safe assumption. */ # define WORD_BIT 64 # endif # 108 "/usr/include/bits/xopen_lim.h" 3 4 # endif # 109 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __INT_MAX__ #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 110 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __INT_MAX__ == 32767 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 111 "/usr/include/bits/xopen_lim.h" 3 4 # define WORD_BIT 16 # else # 113 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __INT_MAX__ == 2147483647 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 114 "/usr/include/bits/xopen_lim.h" 3 4 # define WORD_BIT 32 # else # 116 "/usr/include/bits/xopen_lim.h" 3 4 /* Safe assumption. */ # define WORD_BIT 64 # endif # 119 "/usr/include/bits/xopen_lim.h" 3 4 # endif # 120 "/usr/include/bits/xopen_lim.h" 3 4 #else # 121 "/usr/include/bits/xopen_lim.h" 3 4 # define WORD_BIT 32 #endif # 123 "/usr/include/bits/xopen_lim.h" 3 4 /* Number of bits in a word of type `long int'. */ #ifdef LONG_MAX #if 0 /* disabled by -frewrite-includes */ # if LONG_MAX == 2147483647 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 127 "/usr/include/bits/xopen_lim.h" 3 4 # define LONG_BIT 32 # else # 129 "/usr/include/bits/xopen_lim.h" 3 4 /* Safe assumption. */ # define LONG_BIT 64 # endif # 132 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __LONG_MAX__ #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __LONG_MAX__ == 2147483647 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 134 "/usr/include/bits/xopen_lim.h" 3 4 # define LONG_BIT 32 # else # 136 "/usr/include/bits/xopen_lim.h" 3 4 /* Safe assumption. */ # define LONG_BIT 64 # endif # 139 "/usr/include/bits/xopen_lim.h" 3 4 #else # 140 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 140 "/usr/include/bits/xopen_lim.h" 3 4 # 141 "/usr/include/bits/xopen_lim.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 142 "/usr/include/bits/xopen_lim.h" 3 4 # define LONG_BIT 64 # else # 144 "/usr/include/bits/xopen_lim.h" 3 4 # define LONG_BIT 32 # endif # 146 "/usr/include/bits/xopen_lim.h" 3 4 #endif # 147 "/usr/include/bits/xopen_lim.h" 3 4 #endif /* bits/xopen_lim.h */ # 149 "/usr/include/bits/xopen_lim.h" 3 4 #endif /* xopen_lim.h expanded by -frewrite-includes */ # 204 "/usr/include/limits.h" 2 3 4 #endif # 205 "/usr/include/limits.h" 3 4 #endif /* limits.h expanded by -frewrite-includes */ # 26 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 2 3 #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 /* Many system headers try to "help us out" by defining these. No really, we know how big each datatype is. */ #undef SCHAR_MIN #undef SCHAR_MAX #undef UCHAR_MAX #undef SHRT_MIN #undef SHRT_MAX #undef USHRT_MAX #undef INT_MIN #undef INT_MAX #undef UINT_MAX #undef LONG_MIN #undef LONG_MAX #undef ULONG_MAX #undef CHAR_BIT #undef CHAR_MIN #undef CHAR_MAX /* C90/99 5.2.4.2.1 */ #define SCHAR_MAX __SCHAR_MAX__ #define SHRT_MAX __SHRT_MAX__ #define INT_MAX __INT_MAX__ #define LONG_MAX __LONG_MAX__ #define SCHAR_MIN (-__SCHAR_MAX__-1) #define SHRT_MIN (-__SHRT_MAX__ -1) #define INT_MIN (-__INT_MAX__ -1) #define LONG_MIN (-__LONG_MAX__ -1L) #define UCHAR_MAX (__SCHAR_MAX__*2 +1) #if 0 /* disabled by -frewrite-includes */ #if __SHRT_WIDTH__ < __INT_WIDTH__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 60 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define USHRT_MAX (__SHRT_MAX__ * 2 + 1) #else # 62 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define USHRT_MAX (__SHRT_MAX__ * 2U + 1U) #endif # 64 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define UINT_MAX (__INT_MAX__ *2U +1U) #define ULONG_MAX (__LONG_MAX__ *2UL+1UL) #ifndef MB_LEN_MAX #define MB_LEN_MAX 1 #endif # 70 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define CHAR_BIT __CHAR_BIT__ /* C23 5.2.4.2.1 */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 75 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define BOOL_WIDTH __BOOL_WIDTH__ #define CHAR_WIDTH CHAR_BIT #define SCHAR_WIDTH CHAR_BIT #define UCHAR_WIDTH CHAR_BIT #define USHRT_WIDTH __SHRT_WIDTH__ #define SHRT_WIDTH __SHRT_WIDTH__ #define UINT_WIDTH __INT_WIDTH__ #define INT_WIDTH __INT_WIDTH__ #define ULONG_WIDTH __LONG_WIDTH__ #define LONG_WIDTH __LONG_WIDTH__ #define ULLONG_WIDTH __LLONG_WIDTH__ #define LLONG_WIDTH __LLONG_WIDTH__ #define BITINT_MAXWIDTH __BITINT_MAXWIDTH__ #endif # 90 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #ifdef __CHAR_UNSIGNED__ /* -funsigned-char */ #define CHAR_MIN 0 #define CHAR_MAX UCHAR_MAX #else # 95 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #define CHAR_MIN SCHAR_MIN #define CHAR_MAX __SCHAR_MAX__ #endif # 98 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 /* C99 5.2.4.2.1: Added long long. C++11 18.3.3.2: same contents as the Standard C Library header . */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #undef LLONG_MIN #undef LLONG_MAX #undef ULLONG_MAX #define LLONG_MAX __LONG_LONG_MAX__ #define LLONG_MIN (-__LONG_LONG_MAX__-1LL) #define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) #endif # 113 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 /* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. Android's bionic also defines them. It's too bad that we don't have something like #pragma poison that could be used to deprecate a macro - the code should just use LLONG_MAX and friends. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__GNU_LIBRARY__) ? defined(__USE_GNU) \ : !defined(__STRICT_ANSI__)) || \ defined(__BIONIC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 122 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #undef LONG_LONG_MIN #undef LONG_LONG_MAX #undef ULONG_LONG_MAX #define LONG_LONG_MAX __LONG_LONG_MAX__ #define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL) #define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL) #endif # 131 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #endif /* __MVS__ */ # 133 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #endif /* __CLANG_LIMITS_H */ # 134 "/home/marcus/llvm20/lib/clang/20/include/limits.h" 3 #endif /* limits.h expanded by -frewrite-includes */ # 38 "../mesa/src/c11/threads.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdlib.h expanded by -frewrite-includes */ #include #else /* stdlib.h expanded by -frewrite-includes */ # 38 "../mesa/src/c11/threads.h" # 1 "/usr/include/stdlib.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. Copyright The GNU Toolchain Authors. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.20 General utilities */ #ifndef _STDLIB_H #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libc-header-start.h expanded by -frewrite-includes */ #include #else /* libc-header-start.h expanded by -frewrite-includes */ # 26 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4 /* Handle feature test macros at the start of a header. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header cannot have multiple include guards because ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included. */ #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION # error "Never include directly." #endif # 30 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/bits/libc-header-start.h" 3 4 # 34 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ macro. */ #undef __GLIBC_USE_LIB_EXT2 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 1 #else # 42 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 0 #endif # 44 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ macro. Most but not all symbols enabled by that macro in TS 18661-1 are enabled unconditionally in C23. In C23, the symbols in Annex F still require a new feature test macro __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 18661-1 are not included in C23 (and thus should depend on __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are enabled). __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 18661-1 not included in C23. __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS 18661-1 that are also included in C23 (with no feature test macro required in C23). __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 that are included in C23 but conditional on __STDC_WANT_IEC_60559_EXT__. (There are currently no features conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 18661-1.) */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # 71 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif # 73 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1 #else # 77 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0 #endif # 79 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_EXT #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 1 #else # 83 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 0 #endif # 85 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-4:2015 defines the __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction functions, the symbols from this TS are enabled unconditionally in C23. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 92 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # 94 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif # 96 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1 #else # 100 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0 #endif # 102 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ #undef __GLIBC_USE_IEC_60559_TYPES_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 #else # 109 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 #endif # 111 "/usr/include/bits/libc-header-start.h" 3 4 #endif /* libc-header-start.h expanded by -frewrite-includes */ # 27 "/usr/include/stdlib.h" 2 3 4 /* Get size_t, wchar_t and NULL from . */ #define __need_size_t #define __need_wchar_t #define __need_NULL #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 32 "/usr/include/stdlib.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 4 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 4 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 4 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 4 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 33 "/usr/include/stdlib.h" 2 3 4 __BEGIN_DECLS #define _STDLIB_H 1 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) && !defined _SYS_WAIT_H #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 39 "/usr/include/stdlib.h" 3 4 /* XPG requires a few symbols from being defined. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* waitflags.h expanded by -frewrite-includes */ # include #else /* waitflags.h expanded by -frewrite-includes */ # 40 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/bits/waitflags.h" 1 3 4 /* Definitions of flag bits for `waitpid' et al. Copyright (C) 1992-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #if 0 /* disabled by -frewrite-includes */ #if !defined _SYS_WAIT_H && !defined _STDLIB_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 20 "/usr/include/bits/waitflags.h" 3 4 # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/waitflags.h" 3 4 /* Bits in the third argument to `waitpid'. */ #define WNOHANG 1 /* Don't block waiting. */ #define WUNTRACED 2 /* Report status of stopped children. */ /* Bits in the fourth argument to `waitid'. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 30 "/usr/include/bits/waitflags.h" 3 4 # define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */ # define WEXITED 4 /* Report dead child. */ # define WCONTINUED 8 /* Report continued child. */ # define WNOWAIT 0x01000000 /* Don't reap, just poll status. */ #endif # 35 "/usr/include/bits/waitflags.h" 3 4 #define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads in this group */ #define __WALL 0x40000000 /* Wait for any child. */ #define __WCLONE 0x80000000 /* Wait for cloned process. */ #endif /* waitflags.h expanded by -frewrite-includes */ # 41 "/usr/include/stdlib.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* waitstatus.h expanded by -frewrite-includes */ # include #else /* waitstatus.h expanded by -frewrite-includes */ # 41 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 /* Definitions of status bits for `wait' et al. Copyright (C) 1992-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #if 0 /* disabled by -frewrite-includes */ #if !defined _SYS_WAIT_H && !defined _STDLIB_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 20 "/usr/include/bits/waitstatus.h" 3 4 # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/waitstatus.h" 3 4 /* Everything extant so far uses these same bits. */ /* If WIFEXITED(STATUS), the low-order 8 bits of the status. */ #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8) /* If WIFSIGNALED(STATUS), the terminating signal. */ #define __WTERMSIG(status) ((status) & 0x7f) /* If WIFSTOPPED(STATUS), the signal that stopped the child. */ #define __WSTOPSIG(status) __WEXITSTATUS(status) /* Nonzero if STATUS indicates normal termination. */ #define __WIFEXITED(status) (__WTERMSIG(status) == 0) /* Nonzero if STATUS indicates termination by a signal. */ #define __WIFSIGNALED(status) \ (((signed char) (((status) & 0x7f) + 1) >> 1) > 0) /* Nonzero if STATUS indicates the child is stopped. */ #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f) /* Nonzero if STATUS indicates the child continued after a stop. We only define this if provides the WCONTINUED flag bit. */ #ifdef WCONTINUED # define __WIFCONTINUED(status) ((status) == __W_CONTINUED) #endif # 51 "/usr/include/bits/waitstatus.h" 3 4 /* Nonzero if STATUS indicates the child dumped core. */ #define __WCOREDUMP(status) ((status) & __WCOREFLAG) /* Macros for constructing status values. */ #define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig)) #define __W_STOPCODE(sig) ((sig) << 8 | 0x7f) #define __W_CONTINUED 0xffff #define __WCOREFLAG 0x80 #endif /* waitstatus.h expanded by -frewrite-includes */ # 42 "/usr/include/stdlib.h" 2 3 4 /* Define the macros also would define this way. */ # define WEXITSTATUS(status) __WEXITSTATUS (status) # define WTERMSIG(status) __WTERMSIG (status) # define WSTOPSIG(status) __WSTOPSIG (status) # define WIFEXITED(status) __WIFEXITED (status) # define WIFSIGNALED(status) __WIFSIGNALED (status) # define WIFSTOPPED(status) __WIFSTOPPED (status) # ifdef __WIFCONTINUED # define WIFCONTINUED(status) __WIFCONTINUED (status) # endif # 53 "/usr/include/stdlib.h" 3 4 #endif /* X/Open or XPG7 and not included. */ # 54 "/usr/include/stdlib.h" 3 4 /* _FloatN API tests for enablement. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 56 "/usr/include/stdlib.h" 3 4 # 57 "/usr/include/stdlib.h" 3 4 /* Returned by `div'. */ typedef struct { int quot; /* Quotient. */ int rem; /* Remainder. */ } div_t; /* Returned by `ldiv'. */ #ifndef __ldiv_t_defined typedef struct { long int quot; /* Quotient. */ long int rem; /* Remainder. */ } ldiv_t; # define __ldiv_t_defined 1 #endif # 74 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_ISOC99 && !defined __lldiv_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 76 "/usr/include/stdlib.h" 3 4 /* Returned by `lldiv'. */ __extension__ typedef struct { long long int quot; /* Quotient. */ long long int rem; /* Remainder. */ } lldiv_t; # define __lldiv_t_defined 1 #endif # 84 "/usr/include/stdlib.h" 3 4 /* The largest number rand will return (same as INT_MAX). */ #define RAND_MAX 2147483647 /* We define these the same for all machines. Changes from this to the outside world should be done in `_exit'. */ #define EXIT_FAILURE 1 /* Failing exit status. */ #define EXIT_SUCCESS 0 /* Successful exit status. */ /* Maximum length of a multibyte character in the current locale. */ #define MB_CUR_MAX (__ctype_get_mb_cur_max ()) extern size_t __ctype_get_mb_cur_max (void) __THROW __wur; /* Convert a string to a floating-point number. */ extern double atof (const char *__nptr) __THROW __attribute_pure__ __nonnull ((1)) __wur; /* Convert a string to an integer. */ extern int atoi (const char *__nptr) __THROW __attribute_pure__ __nonnull ((1)) __wur; /* Convert a string to a long integer. */ extern long int atol (const char *__nptr) __THROW __attribute_pure__ __nonnull ((1)) __wur; #ifdef __USE_ISOC99 /* Convert a string to a long long integer. */ __extension__ extern long long int atoll (const char *__nptr) __THROW __attribute_pure__ __nonnull ((1)) __wur; #endif # 116 "/usr/include/stdlib.h" 3 4 /* Convert a string to a floating-point number. */ extern double strtod (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #ifdef __USE_ISOC99 /* Likewise for `float' and `long double' sizes of floating-point numbers. */ extern float strtof (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); extern long double strtold (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 131 "/usr/include/stdlib.h" 3 4 /* Likewise for '_FloatN' and '_FloatNx'. */ #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/usr/include/stdlib.h" 3 4 extern _Float16 strtof16 (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 139 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 141 "/usr/include/stdlib.h" 3 4 extern _Float32 strtof32 (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 145 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 147 "/usr/include/stdlib.h" 3 4 extern _Float64 strtof64 (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 151 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 153 "/usr/include/stdlib.h" 3 4 extern _Float128 strtof128 (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 157 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 159 "/usr/include/stdlib.h" 3 4 extern _Float32x strtof32x (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 163 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 165 "/usr/include/stdlib.h" 3 4 extern _Float64x strtof64x (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 169 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 171 "/usr/include/stdlib.h" 3 4 extern _Float128x strtof128x (const char *__restrict __nptr, char **__restrict __endptr) __THROW __nonnull ((1)); #endif # 175 "/usr/include/stdlib.h" 3 4 /* Convert a string to a long integer. */ extern long int strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); /* Convert a string to an unsigned long integer. */ extern unsigned long int strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); #ifdef __USE_MISC /* Convert a string to a quadword integer. */ __extension__ extern long long int strtoq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); /* Convert a string to an unsigned quadword integer. */ __extension__ extern unsigned long long int strtouq (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); #endif /* Use misc. */ # 197 "/usr/include/stdlib.h" 3 4 #ifdef __USE_ISOC99 /* Convert a string to a quadword integer. */ __extension__ extern long long int strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); /* Convert a string to an unsigned quadword integer. */ __extension__ extern unsigned long long int strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); #endif /* ISO C99 or use MISC. */ # 210 "/usr/include/stdlib.h" 3 4 /* Versions of the above functions that handle '0b' and '0B' prefixes in base 0 or 2. */ #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (C23_STRTOL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 214 "/usr/include/stdlib.h" 3 4 # ifdef __REDIRECT extern long int __REDIRECT_NTH (strtol, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtol) __nonnull ((1)); extern unsigned long int __REDIRECT_NTH (strtoul, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoul) __nonnull ((1)); # ifdef __USE_MISC __extension__ extern long long int __REDIRECT_NTH (strtoq, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoll) __nonnull ((1)); __extension__ extern unsigned long long int __REDIRECT_NTH (strtouq, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoull) __nonnull ((1)); # endif # 237 "/usr/include/stdlib.h" 3 4 __extension__ extern long long int __REDIRECT_NTH (strtoll, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoll) __nonnull ((1)); __extension__ extern unsigned long long int __REDIRECT_NTH (strtoull, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoull) __nonnull ((1)); # else # 249 "/usr/include/stdlib.h" 3 4 extern long int __isoc23_strtol (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); extern unsigned long int __isoc23_strtoul (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); __extension__ extern long long int __isoc23_strtoll (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); __extension__ extern unsigned long long int __isoc23_strtoull (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW __nonnull ((1)); # define strtol __isoc23_strtol # define strtoul __isoc23_strtoul # ifdef __USE_MISC # define strtoq __isoc23_strtoll # define strtouq __isoc23_strtoull # endif # 271 "/usr/include/stdlib.h" 3 4 # define strtoll __isoc23_strtoll # define strtoull __isoc23_strtoull # endif # 274 "/usr/include/stdlib.h" 3 4 #endif # 275 "/usr/include/stdlib.h" 3 4 /* Convert a floating-point number to a string. */ #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 278 "/usr/include/stdlib.h" 3 4 extern int strfromd (char *__dest, size_t __size, const char *__format, double __f) __THROW __nonnull ((3)); extern int strfromf (char *__dest, size_t __size, const char *__format, float __f) __THROW __nonnull ((3)); extern int strfroml (char *__dest, size_t __size, const char *__format, long double __f) __THROW __nonnull ((3)); #endif # 290 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 292 "/usr/include/stdlib.h" 3 4 extern int strfromf16 (char *__dest, size_t __size, const char * __format, _Float16 __f) __THROW __nonnull ((3)); #endif # 296 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 298 "/usr/include/stdlib.h" 3 4 extern int strfromf32 (char *__dest, size_t __size, const char * __format, _Float32 __f) __THROW __nonnull ((3)); #endif # 302 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 304 "/usr/include/stdlib.h" 3 4 extern int strfromf64 (char *__dest, size_t __size, const char * __format, _Float64 __f) __THROW __nonnull ((3)); #endif # 308 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 310 "/usr/include/stdlib.h" 3 4 extern int strfromf128 (char *__dest, size_t __size, const char * __format, _Float128 __f) __THROW __nonnull ((3)); #endif # 314 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 316 "/usr/include/stdlib.h" 3 4 extern int strfromf32x (char *__dest, size_t __size, const char * __format, _Float32x __f) __THROW __nonnull ((3)); #endif # 320 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 322 "/usr/include/stdlib.h" 3 4 extern int strfromf64x (char *__dest, size_t __size, const char * __format, _Float64x __f) __THROW __nonnull ((3)); #endif # 326 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 328 "/usr/include/stdlib.h" 3 4 extern int strfromf128x (char *__dest, size_t __size, const char * __format, _Float128x __f) __THROW __nonnull ((3)); #endif # 332 "/usr/include/stdlib.h" 3 4 #ifdef __USE_GNU /* Parallel versions of the functions above which take the locale to use as an additional parameter. These are GNU extensions inspired by the POSIX.1-2008 extended locale API. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 338 "/usr/include/stdlib.h" 3 4 # 339 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); extern unsigned long int strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); __extension__ extern long long int strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); __extension__ extern unsigned long long int strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); /* Versions of the above functions that handle '0b' and '0B' prefixes in base 0 or 2. */ #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (C23_STRTOL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 364 "/usr/include/stdlib.h" 3 4 # ifdef __REDIRECT extern long int __REDIRECT_NTH (strtol_l, (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc), __isoc23_strtol_l) __nonnull ((1, 4)); extern unsigned long int __REDIRECT_NTH (strtoul_l, (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc), __isoc23_strtoul_l) __nonnull ((1, 4)); __extension__ extern long long int __REDIRECT_NTH (strtoll_l, (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc), __isoc23_strtoll_l) __nonnull ((1, 4)); __extension__ extern unsigned long long int __REDIRECT_NTH (strtoull_l, (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc), __isoc23_strtoull_l) __nonnull ((1, 4)); # else # 391 "/usr/include/stdlib.h" 3 4 extern long int __isoc23_strtol_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); extern unsigned long int __isoc23_strtoul_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); __extension__ extern long long int __isoc23_strtoll_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); __extension__ extern unsigned long long int __isoc23_strtoull_l (const char *__restrict __nptr, char **__restrict __endptr, int __base, locale_t __loc) __THROW __nonnull ((1, 4)); # define strtol_l __isoc23_strtol_l # define strtoul_l __isoc23_strtoul_l # define strtoll_l __isoc23_strtoll_l # define strtoull_l __isoc23_strtoull_l # endif # 413 "/usr/include/stdlib.h" 3 4 # endif # 414 "/usr/include/stdlib.h" 3 4 extern double strtod_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); extern float strtof_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); extern long double strtold_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 429 "/usr/include/stdlib.h" 3 4 extern _Float16 strtof16_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 434 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 436 "/usr/include/stdlib.h" 3 4 extern _Float32 strtof32_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 441 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 443 "/usr/include/stdlib.h" 3 4 extern _Float64 strtof64_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 448 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 450 "/usr/include/stdlib.h" 3 4 extern _Float128 strtof128_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 455 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 457 "/usr/include/stdlib.h" 3 4 extern _Float32x strtof32x_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 462 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 464 "/usr/include/stdlib.h" 3 4 extern _Float64x strtof64x_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 469 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 471 "/usr/include/stdlib.h" 3 4 extern _Float128x strtof128x_l (const char *__restrict __nptr, char **__restrict __endptr, locale_t __loc) __THROW __nonnull ((1, 3)); # endif # 476 "/usr/include/stdlib.h" 3 4 #endif /* GNU */ # 477 "/usr/include/stdlib.h" 3 4 #ifdef __USE_EXTERN_INLINES __extern_inline int __NTH (atoi (const char *__nptr)) { return (int) strtol (__nptr, (char **) NULL, 10); } __extern_inline long int __NTH (atol (const char *__nptr)) { return strtol (__nptr, (char **) NULL, 10); } # ifdef __USE_ISOC99 __extension__ __extern_inline long long int __NTH (atoll (const char *__nptr)) { return strtoll (__nptr, (char **) NULL, 10); } # endif # 498 "/usr/include/stdlib.h" 3 4 #endif /* Optimizing and Inlining. */ # 499 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 502 "/usr/include/stdlib.h" 3 4 /* Convert N to base 64 using the digits "./0-9A-Za-z", least-significant digit first. Returns a pointer to static storage overwritten by the next call. */ extern char *l64a (long int __n) __THROW __wur; /* Read a number from a string S in base 64 as above. */ extern long int a64l (const char *__s) __THROW __attribute_pure__ __nonnull ((1)) __wur; #endif /* Use misc || extended X/Open. */ # 512 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 514 "/usr/include/stdlib.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* types.h expanded by -frewrite-includes */ # include /* we need int32_t... */ #else /* types.h expanded by -frewrite-includes */ # 514 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/sys/types.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * POSIX Standard: 2.6 Primitive System Data Types */ #ifndef _SYS_TYPES_H #define _SYS_TYPES_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/sys/types.h" 3 4 # 26 "/usr/include/sys/types.h" 3 4 __BEGIN_DECLS #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 29 "/usr/include/sys/types.h" 3 4 # 30 "/usr/include/sys/types.h" 3 4 #ifdef __USE_MISC # ifndef __u_char_defined typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; # define __u_char_defined # endif # 42 "/usr/include/sys/types.h" 3 4 typedef __loff_t loff_t; #endif # 44 "/usr/include/sys/types.h" 3 4 #ifndef __ino_t_defined # ifndef __USE_FILE_OFFSET64 typedef __ino_t ino_t; # else # 49 "/usr/include/sys/types.h" 3 4 typedef __ino64_t ino_t; # endif # 51 "/usr/include/sys/types.h" 3 4 # define __ino_t_defined #endif # 53 "/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_LARGEFILE64 && !defined __ino64_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 54 "/usr/include/sys/types.h" 3 4 typedef __ino64_t ino64_t; # define __ino64_t_defined #endif # 57 "/usr/include/sys/types.h" 3 4 #ifndef __dev_t_defined typedef __dev_t dev_t; # define __dev_t_defined #endif # 62 "/usr/include/sys/types.h" 3 4 #ifndef __gid_t_defined typedef __gid_t gid_t; # define __gid_t_defined #endif # 67 "/usr/include/sys/types.h" 3 4 #ifndef __mode_t_defined typedef __mode_t mode_t; # define __mode_t_defined #endif # 72 "/usr/include/sys/types.h" 3 4 #ifndef __nlink_t_defined typedef __nlink_t nlink_t; # define __nlink_t_defined #endif # 77 "/usr/include/sys/types.h" 3 4 #ifndef __uid_t_defined typedef __uid_t uid_t; # define __uid_t_defined #endif # 82 "/usr/include/sys/types.h" 3 4 #ifndef __off_t_defined # ifndef __USE_FILE_OFFSET64 typedef __off_t off_t; # else # 87 "/usr/include/sys/types.h" 3 4 typedef __off64_t off_t; # endif # 89 "/usr/include/sys/types.h" 3 4 # define __off_t_defined #endif # 91 "/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_LARGEFILE64 && !defined __off64_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 92 "/usr/include/sys/types.h" 3 4 typedef __off64_t off64_t; # define __off64_t_defined #endif # 95 "/usr/include/sys/types.h" 3 4 #ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined #endif # 100 "/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN || defined __USE_XOPEN2K8) \ && !defined __id_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/usr/include/sys/types.h" 3 4 typedef __id_t id_t; # define __id_t_defined #endif # 106 "/usr/include/sys/types.h" 3 4 #ifndef __ssize_t_defined typedef __ssize_t ssize_t; # define __ssize_t_defined #endif # 111 "/usr/include/sys/types.h" 3 4 #ifdef __USE_MISC # ifndef __daddr_t_defined typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; # define __daddr_t_defined # endif # 118 "/usr/include/sys/types.h" 3 4 #endif # 119 "/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || defined __USE_XOPEN) && !defined __key_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 121 "/usr/include/sys/types.h" 3 4 typedef __key_t key_t; # define __key_t_defined #endif # 124 "/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 126 "/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 126 "/usr/include/sys/types.h" 3 4 # 127 "/usr/include/sys/types.h" 3 4 #endif # 128 "/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 128 "/usr/include/sys/types.h" 3 4 # 129 "/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 129 "/usr/include/sys/types.h" 3 4 # 130 "/usr/include/sys/types.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 130 "/usr/include/sys/types.h" 3 4 # 131 "/usr/include/sys/types.h" 3 4 #ifdef __USE_XOPEN # ifndef __useconds_t_defined typedef __useconds_t useconds_t; # define __useconds_t_defined # endif # 137 "/usr/include/sys/types.h" 3 4 # ifndef __suseconds_t_defined typedef __suseconds_t suseconds_t; # define __suseconds_t_defined # endif # 141 "/usr/include/sys/types.h" 3 4 #endif # 142 "/usr/include/sys/types.h" 3 4 #define __need_size_t #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 144 "/usr/include/sys/types.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 145 "/usr/include/sys/types.h" 2 3 4 #ifdef __USE_MISC /* Old compatibility names for C types. */ typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; #endif # 152 "/usr/include/sys/types.h" 3 4 /* These size-specific names are used by some of the inet code. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 155 "/usr/include/sys/types.h" 3 4 # 156 "/usr/include/sys/types.h" 3 4 /* These were defined by ISO C without the first `_'. */ typedef __uint8_t u_int8_t; typedef __uint16_t u_int16_t; typedef __uint32_t u_int32_t; typedef __uint64_t u_int64_t; #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2, 7) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 164 "/usr/include/sys/types.h" 3 4 typedef int register_t __attribute__ ((__mode__ (__word__))); #else # 166 "/usr/include/sys/types.h" 3 4 typedef int register_t; #endif # 168 "/usr/include/sys/types.h" 3 4 /* Some code from BIND tests this macro to see if the types above are defined. */ #define __BIT_TYPES_DEFINED__ 1 #ifdef __USE_MISC /* In BSD is expected to define BYTE_ORDER. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* endian.h expanded by -frewrite-includes */ # include #else /* endian.h expanded by -frewrite-includes */ # 176 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 /* Copyright (C) 1992-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _ENDIAN_H #define _ENDIAN_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/endian.h" 3 4 # 22 "/usr/include/endian.h" 3 4 /* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 24 "/usr/include/endian.h" 3 4 # 25 "/usr/include/endian.h" 3 4 #ifdef __USE_MISC # define LITTLE_ENDIAN __LITTLE_ENDIAN # define BIG_ENDIAN __BIG_ENDIAN # define PDP_ENDIAN __PDP_ENDIAN # define BYTE_ORDER __BYTE_ORDER #endif # 32 "/usr/include/endian.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC && !defined __ASSEMBLER__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 34 "/usr/include/endian.h" 3 4 /* Conversion interfaces. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* byteswap.h expanded by -frewrite-includes */ # include #else /* byteswap.h expanded by -frewrite-includes */ # 35 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/byteswap.h" 1 3 4 /* Macros and inline functions to swap the order of bytes in integer values. Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #if 0 /* disabled by -frewrite-includes */ #if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 20 "/usr/include/bits/byteswap.h" 3 4 # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/byteswap.h" 3 4 #ifndef _BITS_BYTESWAP_H #define _BITS_BYTESWAP_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "/usr/include/bits/byteswap.h" 3 4 # 27 "/usr/include/bits/byteswap.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "/usr/include/bits/byteswap.h" 3 4 # 28 "/usr/include/bits/byteswap.h" 3 4 /* Swap bytes in 16-bit value. */ #define __bswap_constant_16(x) \ ((__uint16_t) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))) static __inline __uint16_t __bswap_16 (__uint16_t __bsx) { #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4, 8) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 37 "/usr/include/bits/byteswap.h" 3 4 return __builtin_bswap16 (__bsx); #else # 39 "/usr/include/bits/byteswap.h" 3 4 return __bswap_constant_16 (__bsx); #endif # 41 "/usr/include/bits/byteswap.h" 3 4 } /* Swap bytes in 32-bit value. */ #define __bswap_constant_32(x) \ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) \ | (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24)) static __inline __uint32_t __bswap_32 (__uint32_t __bsx) { #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 52 "/usr/include/bits/byteswap.h" 3 4 return __builtin_bswap32 (__bsx); #else # 54 "/usr/include/bits/byteswap.h" 3 4 return __bswap_constant_32 (__bsx); #endif # 56 "/usr/include/bits/byteswap.h" 3 4 } /* Swap bytes in 64-bit value. */ #define __bswap_constant_64(x) \ ((((x) & 0xff00000000000000ull) >> 56) \ | (((x) & 0x00ff000000000000ull) >> 40) \ | (((x) & 0x0000ff0000000000ull) >> 24) \ | (((x) & 0x000000ff00000000ull) >> 8) \ | (((x) & 0x00000000ff000000ull) << 8) \ | (((x) & 0x0000000000ff0000ull) << 24) \ | (((x) & 0x000000000000ff00ull) << 40) \ | (((x) & 0x00000000000000ffull) << 56)) __extension__ static __inline __uint64_t __bswap_64 (__uint64_t __bsx) { #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (4, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 73 "/usr/include/bits/byteswap.h" 3 4 return __builtin_bswap64 (__bsx); #else # 75 "/usr/include/bits/byteswap.h" 3 4 return __bswap_constant_64 (__bsx); #endif # 77 "/usr/include/bits/byteswap.h" 3 4 } #endif /* _BITS_BYTESWAP_H */ # 80 "/usr/include/bits/byteswap.h" 3 4 #endif /* byteswap.h expanded by -frewrite-includes */ # 36 "/usr/include/endian.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* uintn-identity.h expanded by -frewrite-includes */ # include #else /* uintn-identity.h expanded by -frewrite-includes */ # 36 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/uintn-identity.h" 1 3 4 /* Inline functions to return unsigned integer values unchanged. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #if 0 /* disabled by -frewrite-includes */ #if !defined _NETINET_IN_H && !defined _ENDIAN_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 20 "/usr/include/bits/uintn-identity.h" 3 4 # error "Never use directly; include or instead." #endif # 22 "/usr/include/bits/uintn-identity.h" 3 4 #ifndef _BITS_UINTN_IDENTITY_H #define _BITS_UINTN_IDENTITY_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "/usr/include/bits/uintn-identity.h" 3 4 # 27 "/usr/include/bits/uintn-identity.h" 3 4 /* These inline functions are to ensure the appropriate type conversions and associated diagnostics from macros that convert to a given endianness. */ static __inline __uint16_t __uint16_identity (__uint16_t __x) { return __x; } static __inline __uint32_t __uint32_identity (__uint32_t __x) { return __x; } static __inline __uint64_t __uint64_identity (__uint64_t __x) { return __x; } #endif /* _BITS_UINTN_IDENTITY_H. */ # 51 "/usr/include/bits/uintn-identity.h" 3 4 #endif /* uintn-identity.h expanded by -frewrite-includes */ # 37 "/usr/include/endian.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ # if __BYTE_ORDER == __LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 39 "/usr/include/endian.h" 3 4 # define htobe16(x) __bswap_16 (x) # define htole16(x) __uint16_identity (x) # define be16toh(x) __bswap_16 (x) # define le16toh(x) __uint16_identity (x) # define htobe32(x) __bswap_32 (x) # define htole32(x) __uint32_identity (x) # define be32toh(x) __bswap_32 (x) # define le32toh(x) __uint32_identity (x) # define htobe64(x) __bswap_64 (x) # define htole64(x) __uint64_identity (x) # define be64toh(x) __bswap_64 (x) # define le64toh(x) __uint64_identity (x) # else # 55 "/usr/include/endian.h" 3 4 # define htobe16(x) __uint16_identity (x) # define htole16(x) __bswap_16 (x) # define be16toh(x) __uint16_identity (x) # define le16toh(x) __bswap_16 (x) # define htobe32(x) __uint32_identity (x) # define htole32(x) __bswap_32 (x) # define be32toh(x) __uint32_identity (x) # define le32toh(x) __bswap_32 (x) # define htobe64(x) __uint64_identity (x) # define htole64(x) __bswap_64 (x) # define be64toh(x) __uint64_identity (x) # define le64toh(x) __bswap_64 (x) # endif # 70 "/usr/include/endian.h" 3 4 #endif # 71 "/usr/include/endian.h" 3 4 #endif /* endian.h */ # 73 "/usr/include/endian.h" 3 4 #endif /* endian.h expanded by -frewrite-includes */ # 177 "/usr/include/sys/types.h" 2 3 4 /* It also defines `fd_set' and the FD_* macros for `select'. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* select.h expanded by -frewrite-includes */ # include #else /* select.h expanded by -frewrite-includes */ # 179 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 /* `fd_set' type and related macros, and `select'/`pselect' declarations. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* POSIX 1003.1g: 6.2 Select from File Descriptor Sets */ #ifndef _SYS_SELECT_H #define _SYS_SELECT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 24 "/usr/include/sys/select.h" 3 4 # 25 "/usr/include/sys/select.h" 3 4 /* Get definition of needed basic types. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "/usr/include/sys/select.h" 3 4 # 28 "/usr/include/sys/select.h" 3 4 /* Get __FD_* definitions. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* select.h expanded by -frewrite-includes */ #include #else /* select.h expanded by -frewrite-includes */ # 30 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/select.h" 1 3 4 /* Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SYS_SELECT_H # error "Never use directly; include instead." #endif # 21 "/usr/include/bits/select.h" 3 4 /* We don't use `memset' because this would require a prototype and the array isn't too big. */ #define __FD_ZERO(s) \ do { \ unsigned int __i; \ fd_set *__arr = (s); \ for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \ __FDS_BITS (__arr)[__i] = 0; \ } while (0) #define __FD_SET(d, s) \ ((void) (__FDS_BITS (s)[__FD_ELT(d)] |= __FD_MASK(d))) #define __FD_CLR(d, s) \ ((void) (__FDS_BITS (s)[__FD_ELT(d)] &= ~__FD_MASK(d))) #define __FD_ISSET(d, s) \ ((__FDS_BITS (s)[__FD_ELT (d)] & __FD_MASK (d)) != 0) #endif /* select.h expanded by -frewrite-includes */ # 31 "/usr/include/sys/select.h" 2 3 4 /* Get sigset_t. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigset_t.h expanded by -frewrite-includes */ #include #else /* sigset_t.h expanded by -frewrite-includes */ # 33 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/types/sigset_t.h" 1 3 4 #ifndef __sigset_t_defined #define __sigset_t_defined 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __sigset_t.h expanded by -frewrite-includes */ #include #else /* __sigset_t.h expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/sigset_t.h" 3 4 # 1 "/usr/include/bits/types/__sigset_t.h" 1 3 4 #ifndef ____sigset_t_defined #define ____sigset_t_defined #define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int))) typedef struct { unsigned long int __val[_SIGSET_NWORDS]; } __sigset_t; #endif # 11 "/usr/include/bits/types/__sigset_t.h" 3 4 #endif /* __sigset_t.h expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/sigset_t.h" 2 3 4 /* A set of signals to be blocked, unblocked, or waited for. */ typedef __sigset_t sigset_t; #endif # 10 "/usr/include/bits/types/sigset_t.h" 3 4 #endif /* sigset_t.h expanded by -frewrite-includes */ # 34 "/usr/include/sys/select.h" 2 3 4 /* Get definition of timer specification structures. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "/usr/include/sys/select.h" 3 4 # 37 "/usr/include/sys/select.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "/usr/include/sys/select.h" 3 4 # 38 "/usr/include/sys/select.h" 3 4 #ifdef __USE_XOPEN2K #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 39 "/usr/include/sys/select.h" 3 4 # 40 "/usr/include/sys/select.h" 3 4 #endif # 41 "/usr/include/sys/select.h" 3 4 #ifndef __suseconds_t_defined typedef __suseconds_t suseconds_t; # define __suseconds_t_defined #endif # 46 "/usr/include/sys/select.h" 3 4 /* The fd_set member is required to be an array of longs. */ typedef long int __fd_mask; /* Some versions of define this macros. */ #undef __NFDBITS /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (8 * (int) sizeof (__fd_mask)) #define __FD_ELT(d) ((d) / __NFDBITS) #define __FD_MASK(d) ((__fd_mask) (1UL << ((d) % __NFDBITS))) /* fd_set for select and pselect. */ typedef struct { /* XPG4.2 requires this member name. Otherwise avoid the name from the global namespace. */ #ifdef __USE_XOPEN __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS]; # define __FDS_BITS(set) ((set)->fds_bits) #else # 67 "/usr/include/sys/select.h" 3 4 __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS]; # define __FDS_BITS(set) ((set)->__fds_bits) #endif # 70 "/usr/include/sys/select.h" 3 4 } fd_set; /* Maximum number of file descriptors in `fd_set'. */ #define FD_SETSIZE __FD_SETSIZE #ifdef __USE_MISC /* Sometimes the fd_set member is assumed to have this type. */ typedef __fd_mask fd_mask; /* Number of bits per word of `fd_set' (some code assumes this is 32). */ # define NFDBITS __NFDBITS #endif # 82 "/usr/include/sys/select.h" 3 4 /* Access macros for `fd_set'. */ #define FD_SET(fd, fdsetp) __FD_SET (fd, fdsetp) #define FD_CLR(fd, fdsetp) __FD_CLR (fd, fdsetp) #define FD_ISSET(fd, fdsetp) __FD_ISSET (fd, fdsetp) #define FD_ZERO(fdsetp) __FD_ZERO (fdsetp) __BEGIN_DECLS /* Check the first NFDS descriptors each in READFDS (if not NULL) for read readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out after waiting the interval specified therein. Returns the number of ready descriptors, or -1 for errors. This function is a cancellation point and therefore not marked with __THROW. */ #ifndef __USE_TIME64_REDIRECTS extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); #else # 107 "/usr/include/sys/select.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (select, (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout), __select64); # else # 115 "/usr/include/sys/select.h" 3 4 # define select __select64 # endif # 117 "/usr/include/sys/select.h" 3 4 #endif # 118 "/usr/include/sys/select.h" 3 4 #ifdef __USE_XOPEN2K /* Same as above only that the TIMEOUT value is given with higher resolution and a sigmask which is been set temporarily. This version should be used. This function is a cancellation point and therefore not marked with __THROW. */ # ifndef __USE_TIME64_REDIRECTS extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # else # 133 "/usr/include/sys/select.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (pselect, (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask), __pselect64); # else # 142 "/usr/include/sys/select.h" 3 4 # define pselect __pselect64 # endif # 144 "/usr/include/sys/select.h" 3 4 # endif # 145 "/usr/include/sys/select.h" 3 4 #endif # 146 "/usr/include/sys/select.h" 3 4 /* Define some inlines helping to catch common problems. */ #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL > 0 && defined __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 150 "/usr/include/sys/select.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 150 "/usr/include/sys/select.h" 3 4 # 151 "/usr/include/sys/select.h" 3 4 #endif # 152 "/usr/include/sys/select.h" 3 4 __END_DECLS #endif /* sys/select.h */ # 156 "/usr/include/sys/select.h" 3 4 #endif /* select.h expanded by -frewrite-includes */ # 180 "/usr/include/sys/types.h" 2 3 4 #endif /* Use misc. */ # 181 "/usr/include/sys/types.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_UNIX98 || defined __USE_XOPEN2K8) \ && !defined __blksize_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 185 "/usr/include/sys/types.h" 3 4 typedef __blksize_t blksize_t; # define __blksize_t_defined #endif # 188 "/usr/include/sys/types.h" 3 4 /* Types from the Large File Support interface. */ #ifndef __USE_FILE_OFFSET64 # ifndef __blkcnt_t_defined typedef __blkcnt_t blkcnt_t; /* Type to count number of disk blocks. */ # define __blkcnt_t_defined # endif # 195 "/usr/include/sys/types.h" 3 4 # ifndef __fsblkcnt_t_defined typedef __fsblkcnt_t fsblkcnt_t; /* Type to count file system blocks. */ # define __fsblkcnt_t_defined # endif # 199 "/usr/include/sys/types.h" 3 4 # ifndef __fsfilcnt_t_defined typedef __fsfilcnt_t fsfilcnt_t; /* Type to count file system inodes. */ # define __fsfilcnt_t_defined # endif # 203 "/usr/include/sys/types.h" 3 4 #else # 204 "/usr/include/sys/types.h" 3 4 # ifndef __blkcnt_t_defined typedef __blkcnt64_t blkcnt_t; /* Type to count number of disk blocks. */ # define __blkcnt_t_defined # endif # 208 "/usr/include/sys/types.h" 3 4 # ifndef __fsblkcnt_t_defined typedef __fsblkcnt64_t fsblkcnt_t; /* Type to count file system blocks. */ # define __fsblkcnt_t_defined # endif # 212 "/usr/include/sys/types.h" 3 4 # ifndef __fsfilcnt_t_defined typedef __fsfilcnt64_t fsfilcnt_t; /* Type to count file system inodes. */ # define __fsfilcnt_t_defined # endif # 216 "/usr/include/sys/types.h" 3 4 #endif # 217 "/usr/include/sys/types.h" 3 4 #ifdef __USE_LARGEFILE64 typedef __blkcnt64_t blkcnt64_t; /* Type to count number of disk blocks. */ typedef __fsblkcnt64_t fsblkcnt64_t; /* Type to count file system blocks. */ typedef __fsfilcnt64_t fsfilcnt64_t; /* Type to count file system inodes. */ #endif # 223 "/usr/include/sys/types.h" 3 4 /* Now add the thread types. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199506 || defined __USE_UNIX98 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 227 "/usr/include/sys/types.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pthreadtypes.h expanded by -frewrite-includes */ # include #else /* pthreadtypes.h expanded by -frewrite-includes */ # 227 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 /* Declaration of common pthread types for all architectures. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_PTHREADTYPES_COMMON_H # define _BITS_PTHREADTYPES_COMMON_H 1 /* For internal mutex and condition variable definitions. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* thread-shared-types.h expanded by -frewrite-includes */ #include #else /* thread-shared-types.h expanded by -frewrite-includes */ # 23 "/usr/include/bits/pthreadtypes.h" 3 4 # 1 "/usr/include/bits/thread-shared-types.h" 1 3 4 /* Common threading primitives definitions for both POSIX and C11. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _THREAD_SHARED_TYPES_H #define _THREAD_SHARED_TYPES_H 1 /* Arch-specific definitions. Each architecture must define the following macros to define the expected sizes of pthread data types: __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. The additional macro defines any constraint for the lock alignment inside the thread structures: __LOCK_ALIGNMENT - for internal lock/futex usage. Same idea but for the once locking primitive: __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pthreadtypes-arch.h expanded by -frewrite-includes */ #include #else /* pthreadtypes-arch.h expanded by -frewrite-includes */ # 44 "/usr/include/bits/thread-shared-types.h" 3 4 # 1 "/usr/include/bits/pthreadtypes-arch.h" 1 3 4 /* Copyright (C) 2002-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_PTHREADTYPES_ARCH_H #define _BITS_PTHREADTYPES_ARCH_H 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 21 "/usr/include/bits/pthreadtypes-arch.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 22 "/usr/include/bits/pthreadtypes-arch.h" 2 3 4 #ifdef __x86_64__ #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 25 "/usr/include/bits/pthreadtypes-arch.h" 3 4 # define __SIZEOF_PTHREAD_MUTEX_T 40 # define __SIZEOF_PTHREAD_ATTR_T 56 # define __SIZEOF_PTHREAD_RWLOCK_T 56 # define __SIZEOF_PTHREAD_BARRIER_T 32 # else # 30 "/usr/include/bits/pthreadtypes-arch.h" 3 4 # define __SIZEOF_PTHREAD_MUTEX_T 32 # define __SIZEOF_PTHREAD_ATTR_T 32 # define __SIZEOF_PTHREAD_RWLOCK_T 44 # define __SIZEOF_PTHREAD_BARRIER_T 20 # endif # 35 "/usr/include/bits/pthreadtypes-arch.h" 3 4 #else # 36 "/usr/include/bits/pthreadtypes-arch.h" 3 4 # define __SIZEOF_PTHREAD_MUTEX_T 24 # define __SIZEOF_PTHREAD_ATTR_T 36 # define __SIZEOF_PTHREAD_RWLOCK_T 32 # define __SIZEOF_PTHREAD_BARRIER_T 20 #endif # 41 "/usr/include/bits/pthreadtypes-arch.h" 3 4 #define __SIZEOF_PTHREAD_MUTEXATTR_T 4 #define __SIZEOF_PTHREAD_COND_T 48 #define __SIZEOF_PTHREAD_CONDATTR_T 4 #define __SIZEOF_PTHREAD_RWLOCKATTR_T 8 #define __SIZEOF_PTHREAD_BARRIERATTR_T 4 #define __LOCK_ALIGNMENT #define __ONCE_ALIGNMENT #ifndef __x86_64__ /* Extra attributes for the cleanup functions. */ # define __cleanup_fct_attribute __attribute__ ((__regparm__ (1))) #endif # 54 "/usr/include/bits/pthreadtypes-arch.h" 3 4 #endif /* bits/pthreadtypes.h */ # 56 "/usr/include/bits/pthreadtypes-arch.h" 3 4 #endif /* pthreadtypes-arch.h expanded by -frewrite-includes */ # 45 "/usr/include/bits/thread-shared-types.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* atomic_wide_counter.h expanded by -frewrite-includes */ #include #else /* atomic_wide_counter.h expanded by -frewrite-includes */ # 46 "/usr/include/bits/thread-shared-types.h" 3 4 # 1 "/usr/include/bits/atomic_wide_counter.h" 1 3 4 /* Monotonically increasing wide counters (at least 62 bits). Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_ATOMIC_WIDE_COUNTER_H #define _BITS_ATOMIC_WIDE_COUNTER_H /* Counter that is monotonically increasing (by less than 2**31 per increment), with a single writer, and an arbitrary number of readers. */ typedef union { __extension__ unsigned long long int __value64; struct { unsigned int __low; unsigned int __high; } __value32; } __atomic_wide_counter; #endif /* _BITS_ATOMIC_WIDE_COUNTER_H */ # 36 "/usr/include/bits/atomic_wide_counter.h" 3 4 #endif /* atomic_wide_counter.h expanded by -frewrite-includes */ # 47 "/usr/include/bits/thread-shared-types.h" 2 3 4 /* Common definition of pthread_mutex_t. */ typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; typedef struct __pthread_internal_slist { struct __pthread_internal_slist *__next; } __pthread_slist_t; /* Arch-specific mutex definitions. A generic implementation is provided by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture can override it by defining: 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t definition). It should contains at least the internal members defined in the generic version. 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with atomic operations. 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. It should initialize the mutex internal flag. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_mutex.h expanded by -frewrite-includes */ #include #else /* struct_mutex.h expanded by -frewrite-includes */ # 76 "/usr/include/bits/thread-shared-types.h" 3 4 # 1 "/usr/include/bits/struct_mutex.h" 1 3 4 /* x86 internal mutex struct definitions. Copyright (C) 2019-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _THREAD_MUTEX_INTERNAL_H #define _THREAD_MUTEX_INTERNAL_H 1 struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; #ifdef __x86_64__ unsigned int __nusers; #endif # 30 "/usr/include/bits/struct_mutex.h" 3 4 /* KIND must stay at this position in the structure to maintain binary compatibility with static initializers. */ int __kind; #ifdef __x86_64__ short __spins; short __elision; __pthread_list_t __list; # define __PTHREAD_MUTEX_HAVE_PREV 1 #else # 39 "/usr/include/bits/struct_mutex.h" 3 4 unsigned int __nusers; __extension__ union { struct { short __espins; short __eelision; # define __spins __elision_data.__espins # define __elision __elision_data.__eelision } __elision_data; __pthread_slist_t __list; }; # define __PTHREAD_MUTEX_HAVE_PREV 0 #endif # 53 "/usr/include/bits/struct_mutex.h" 3 4 }; #ifdef __x86_64__ # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } #else # 59 "/usr/include/bits/struct_mutex.h" 3 4 # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ 0, 0, 0, __kind, 0, { { 0, 0 } } #endif # 62 "/usr/include/bits/struct_mutex.h" 3 4 #endif # 64 "/usr/include/bits/struct_mutex.h" 3 4 #endif /* struct_mutex.h expanded by -frewrite-includes */ # 77 "/usr/include/bits/thread-shared-types.h" 2 3 4 /* Arch-sepecific read-write lock definitions. A generic implementation is provided by struct_rwlock.h. If required, an architecture can override it by defining: 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). It should contain at least the internal members defined in the generic version. 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. It should initialize the rwlock internal type. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_rwlock.h expanded by -frewrite-includes */ #include #else /* struct_rwlock.h expanded by -frewrite-includes */ # 89 "/usr/include/bits/thread-shared-types.h" 3 4 # 1 "/usr/include/bits/struct_rwlock.h" 1 3 4 /* x86 internal rwlock struct definitions. Copyright (C) 2019-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _RWLOCK_INTERNAL_H #define _RWLOCK_INTERNAL_H struct __pthread_rwlock_arch_t { unsigned int __readers; unsigned int __writers; unsigned int __wrphase_futex; unsigned int __writers_futex; unsigned int __pad3; unsigned int __pad4; #ifdef __x86_64__ int __cur_writer; int __shared; signed char __rwelision; # ifdef __ILP32__ unsigned char __pad1[3]; # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 } # else # 39 "/usr/include/bits/struct_rwlock.h" 3 4 unsigned char __pad1[7]; # define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 } # endif # 42 "/usr/include/bits/struct_rwlock.h" 3 4 unsigned long int __pad2; /* FLAGS must stay at this position in the structure to maintain binary compatibility. */ unsigned int __flags; #else /* __x86_64__ */ # 47 "/usr/include/bits/struct_rwlock.h" 3 4 /* FLAGS must stay at this position in the structure to maintain binary compatibility. */ unsigned char __flags; unsigned char __shared; signed char __rwelision; unsigned char __pad2; int __cur_writer; #endif # 55 "/usr/include/bits/struct_rwlock.h" 3 4 }; #ifdef __x86_64__ # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags #else # 61 "/usr/include/bits/struct_rwlock.h" 3 4 # define __PTHREAD_RWLOCK_INITIALIZER(__flags) \ 0, 0, 0, 0, 0, 0, __flags, 0, 0, 0, 0 #endif # 64 "/usr/include/bits/struct_rwlock.h" 3 4 #endif # 66 "/usr/include/bits/struct_rwlock.h" 3 4 #endif /* struct_rwlock.h expanded by -frewrite-includes */ # 90 "/usr/include/bits/thread-shared-types.h" 2 3 4 /* Common definition of pthread_cond_t. */ struct __pthread_cond_s { __atomic_wide_counter __wseq; __atomic_wide_counter __g1_start; unsigned int __g_refs[2] __LOCK_ALIGNMENT; unsigned int __g_size[2]; unsigned int __g1_orig_size; unsigned int __wrefs; unsigned int __g_signals[2]; }; typedef unsigned int __tss_t; typedef unsigned long int __thrd_t; typedef struct { int __data __ONCE_ALIGNMENT; } __once_flag; #define __ONCE_FLAG_INIT { 0 } #endif /* _THREAD_SHARED_TYPES_H */ # 116 "/usr/include/bits/thread-shared-types.h" 3 4 #endif /* thread-shared-types.h expanded by -frewrite-includes */ # 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 /* Thread identifiers. The structure of the attribute type is not exposed on purpose. */ typedef unsigned long int pthread_t; /* Data structures for mutex handling. The structure of the attribute type is not exposed on purpose. */ typedef union { char __size[__SIZEOF_PTHREAD_MUTEXATTR_T]; int __align; } pthread_mutexattr_t; /* Data structure for condition variable handling. The structure of the attribute type is not exposed on purpose. */ typedef union { char __size[__SIZEOF_PTHREAD_CONDATTR_T]; int __align; } pthread_condattr_t; /* Keys for thread-specific data */ typedef unsigned int pthread_key_t; /* Once-only execution */ typedef int __ONCE_ALIGNMENT pthread_once_t; union pthread_attr_t { char __size[__SIZEOF_PTHREAD_ATTR_T]; long int __align; }; #ifndef __have_pthread_attr_t typedef union pthread_attr_t pthread_attr_t; # define __have_pthread_attr_t 1 #endif # 65 "/usr/include/bits/pthreadtypes.h" 3 4 typedef union { struct __pthread_mutex_s __data; char __size[__SIZEOF_PTHREAD_MUTEX_T]; long int __align; } pthread_mutex_t; typedef union { struct __pthread_cond_s __data; char __size[__SIZEOF_PTHREAD_COND_T]; __extension__ long long int __align; } pthread_cond_t; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/pthreadtypes.h" 3 4 /* Data structure for reader-writer lock variable handling. The structure of the attribute type is deliberately not exposed. */ typedef union { struct __pthread_rwlock_arch_t __data; char __size[__SIZEOF_PTHREAD_RWLOCK_T]; long int __align; } pthread_rwlock_t; typedef union { char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T]; long int __align; } pthread_rwlockattr_t; #endif # 99 "/usr/include/bits/pthreadtypes.h" 3 4 #ifdef __USE_XOPEN2K /* POSIX spinlock data type. */ typedef volatile int pthread_spinlock_t; /* POSIX barriers data type. The structure of the type is deliberately not exposed. */ typedef union { char __size[__SIZEOF_PTHREAD_BARRIER_T]; long int __align; } pthread_barrier_t; typedef union { char __size[__SIZEOF_PTHREAD_BARRIERATTR_T]; int __align; } pthread_barrierattr_t; #endif # 120 "/usr/include/bits/pthreadtypes.h" 3 4 #endif # 122 "/usr/include/bits/pthreadtypes.h" 3 4 #endif /* pthreadtypes.h expanded by -frewrite-includes */ # 228 "/usr/include/sys/types.h" 2 3 4 #endif # 229 "/usr/include/sys/types.h" 3 4 __END_DECLS #endif /* sys/types.h */ # 233 "/usr/include/sys/types.h" 3 4 #endif /* types.h expanded by -frewrite-includes */ # 515 "/usr/include/stdlib.h" 2 3 4 /* These are the functions that actually do things. The `random', `srandom', `initstate' and `setstate' functions are those from BSD Unices. The `rand' and `srand' functions are required by the ANSI standard. We provide both interfaces to the same random number generator. */ /* Return a random long integer between 0 and 2^31-1 inclusive. */ extern long int random (void) __THROW; /* Seed the random number generator with the given number. */ extern void srandom (unsigned int __seed) __THROW; /* Initialize the random number generator to use state buffer STATEBUF, of length STATELEN, and seed it with SEED. Optimal lengths are 8, 16, 32, 64, 128 and 256, the bigger the better; values less than 8 will cause an error and values greater than 256 will be rounded down. */ extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) __THROW __nonnull ((2)); /* Switch the random number generator to state buffer STATEBUF, which should have been previously initialized by `initstate'. */ extern char *setstate (char *__statebuf) __THROW __nonnull ((1)); # ifdef __USE_MISC /* Reentrant versions of the `random' family of functions. These functions all use the following data structure to contain state, rather than global state variables. */ struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) __THROW __nonnull ((1, 2)); extern int srandom_r (unsigned int __seed, struct random_data *__buf) __THROW __nonnull ((2)); extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) __THROW __nonnull ((2, 4)); extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) __THROW __nonnull ((1, 2)); # endif /* Use misc. */ # 569 "/usr/include/stdlib.h" 3 4 #endif /* Use extended X/Open || misc. */ # 570 "/usr/include/stdlib.h" 3 4 /* Return a random integer between 0 and RAND_MAX inclusive. */ extern int rand (void) __THROW; /* Seed the random number generator with the given number. */ extern void srand (unsigned int __seed) __THROW; #ifdef __USE_POSIX199506 /* Reentrant interface according to POSIX.1. */ extern int rand_r (unsigned int *__seed) __THROW; #endif # 581 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 584 "/usr/include/stdlib.h" 3 4 /* System V style 48-bit random number generator functions. */ /* Return non-negative, double-precision floating-point value in [0.0,1.0). */ extern double drand48 (void) __THROW; extern double erand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1)); /* Return non-negative, long integer in [0,2^31). */ extern long int lrand48 (void) __THROW; extern long int nrand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1)); /* Return signed, long integers in [-2^31,2^31). */ extern long int mrand48 (void) __THROW; extern long int jrand48 (unsigned short int __xsubi[3]) __THROW __nonnull ((1)); /* Seed random number generator. */ extern void srand48 (long int __seedval) __THROW; extern unsigned short int *seed48 (unsigned short int __seed16v[3]) __THROW __nonnull ((1)); extern void lcong48 (unsigned short int __param[7]) __THROW __nonnull ((1)); # ifdef __USE_MISC /* Data structure for communication with thread safe versions. This type is to be regarded as opaque. It's only exported because users have to allocate objects of this type. */ struct drand48_data { unsigned short int __x[3]; /* Current state. */ unsigned short int __old_x[3]; /* Old state. */ unsigned short int __c; /* Additive const. in congruential formula. */ unsigned short int __init; /* Flag for initializing. */ __extension__ unsigned long long int __a; /* Factor in congruential formula. */ }; /* Return non-negative, double-precision floating-point value in [0.0,1.0). */ extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) __THROW __nonnull ((1, 2)); extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) __THROW __nonnull ((1, 2)); /* Return non-negative, long integer in [0,2^31). */ extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __THROW __nonnull ((1, 2)); extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __THROW __nonnull ((1, 2)); /* Return signed, long integers in [-2^31,2^31). */ extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) __THROW __nonnull ((1, 2)); extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) __THROW __nonnull ((1, 2)); /* Seed random number generator. */ extern int srand48_r (long int __seedval, struct drand48_data *__buffer) __THROW __nonnull ((2)); extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) __THROW __nonnull ((1, 2)); extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) __THROW __nonnull ((1, 2)); /* Return a random integer between zero and 2**32-1 (inclusive). */ extern __uint32_t arc4random (void) __THROW __wur; /* Fill the buffer with random data. */ extern void arc4random_buf (void *__buf, size_t __size) __THROW __nonnull ((1)); /* Return a random number between zero (inclusive) and the specified limit (exclusive). */ extern __uint32_t arc4random_uniform (__uint32_t __upper_bound) __THROW __wur; # endif /* Use misc. */ # 669 "/usr/include/stdlib.h" 3 4 #endif /* Use misc or X/Open. */ # 670 "/usr/include/stdlib.h" 3 4 /* Allocate SIZE bytes of memory. */ extern void *malloc (size_t __size) __THROW __attribute_malloc__ __attribute_alloc_size__ ((1)) __wur; /* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */ extern void *calloc (size_t __nmemb, size_t __size) __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur; /* Re-allocate the previously allocated block in PTR, making the new block SIZE bytes long. */ /* __attribute_malloc__ is not used, because if realloc returns the same pointer that was passed to it, aliasing needs to be allowed between objects pointed by the old and new pointers. */ extern void *realloc (void *__ptr, size_t __size) __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2)); /* Free a block allocated by `malloc', `realloc' or `calloc'. */ extern void free (void *__ptr) __THROW; #ifdef __USE_MISC /* Re-allocate the previously allocated block in PTR, making the new block large enough for NMEMB elements of SIZE bytes each. */ /* __attribute_malloc__ is not used, because if reallocarray returns the same pointer that was passed to it, aliasing needs to be allowed between objects pointed by the old and new pointers. */ extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2, 3)) __attr_dealloc_free; /* Add reallocarray as its own deallocator. */ extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) __THROW __attr_dealloc (reallocarray, 1); #endif # 704 "/usr/include/stdlib.h" 3 4 #ifdef __USE_MISC #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* alloca.h expanded by -frewrite-includes */ # include #else /* alloca.h expanded by -frewrite-includes */ # 706 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/alloca.h" 1 3 4 /* Copyright (C) 1992-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _ALLOCA_H #define _ALLOCA_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/alloca.h" 3 4 # 22 "/usr/include/alloca.h" 3 4 #define __need_size_t #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 24 "/usr/include/alloca.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 25 "/usr/include/alloca.h" 2 3 4 __BEGIN_DECLS /* Remove any previous definition. */ #undef alloca /* Allocate a block that will be freed when the calling function exits. */ extern void *alloca (size_t __size) __THROW; #ifdef __GNUC__ # define alloca(size) __builtin_alloca (size) #endif /* GCC. */ # 37 "/usr/include/alloca.h" 3 4 __END_DECLS #endif /* alloca.h */ # 41 "/usr/include/alloca.h" 3 4 #endif /* alloca.h expanded by -frewrite-includes */ # 707 "/usr/include/stdlib.h" 2 3 4 #endif /* Use misc. */ # 708 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \ || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 711 "/usr/include/stdlib.h" 3 4 /* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */ extern void *valloc (size_t __size) __THROW __attribute_malloc__ __attribute_alloc_size__ ((1)) __wur; #endif # 715 "/usr/include/stdlib.h" 3 4 #ifdef __USE_XOPEN2K /* Allocate memory of SIZE bytes with an alignment of ALIGNMENT. */ extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __THROW __nonnull ((1)) __wur; #endif # 721 "/usr/include/stdlib.h" 3 4 #ifdef __USE_ISOC11 /* ISO C variant of aligned allocation. */ extern void *aligned_alloc (size_t __alignment, size_t __size) __THROW __attribute_malloc__ __attribute_alloc_align__ ((1)) __attribute_alloc_size__ ((2)) __wur; #endif # 728 "/usr/include/stdlib.h" 3 4 /* Abort execution and generate a core-dump. */ extern void abort (void) __THROW __attribute__ ((__noreturn__)); /* Register a function to be called when `exit' is called. */ extern int atexit (void (*__func) (void)) __THROW __nonnull ((1)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_ISOC11 || defined __USE_ISOCXX11 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 737 "/usr/include/stdlib.h" 3 4 /* Register a function to be called when `quick_exit' is called. */ # ifdef __cplusplus extern "C++" int at_quick_exit (void (*__func) (void)) __THROW __asm ("at_quick_exit") __nonnull ((1)); # else # 742 "/usr/include/stdlib.h" 3 4 extern int at_quick_exit (void (*__func) (void)) __THROW __nonnull ((1)); # endif # 744 "/usr/include/stdlib.h" 3 4 #endif # 745 "/usr/include/stdlib.h" 3 4 #ifdef __USE_MISC /* Register a function to be called with the status given to `exit' and the given argument. */ extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) __THROW __nonnull ((1)); #endif # 752 "/usr/include/stdlib.h" 3 4 /* Call all functions registered with `atexit' and `on_exit', in the reverse of the order in which they were registered, perform stdio cleanup, and terminate program execution with STATUS. */ extern void exit (int __status) __THROW __attribute__ ((__noreturn__)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_ISOC11 || defined __USE_ISOCXX11 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 759 "/usr/include/stdlib.h" 3 4 /* Call all functions registered with `at_quick_exit' in the reverse of the order in which they were registered and terminate program execution with STATUS. */ extern void quick_exit (int __status) __THROW __attribute__ ((__noreturn__)); #endif # 764 "/usr/include/stdlib.h" 3 4 #ifdef __USE_ISOC99 /* Terminate the program with STATUS without calling any of the functions registered with `atexit' or `on_exit'. */ extern void _Exit (int __status) __THROW __attribute__ ((__noreturn__)); #endif # 770 "/usr/include/stdlib.h" 3 4 /* Return the value of envariable NAME, or NULL if it doesn't exist. */ extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur; #ifdef __USE_GNU /* This function is similar to the above but returns NULL if the programs is running with SUID or SGID enabled. */ extern char *secure_getenv (const char *__name) __THROW __nonnull ((1)) __wur; #endif # 781 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 783 "/usr/include/stdlib.h" 3 4 /* The SVID says this is in , but this seems a better place. */ /* Put STRING, which is of the form "NAME=VALUE", in the environment. If there is no `=', remove NAME from the environment. */ extern int putenv (char *__string) __THROW __nonnull ((1)); #endif # 788 "/usr/include/stdlib.h" 3 4 #ifdef __USE_XOPEN2K /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ extern int setenv (const char *__name, const char *__value, int __replace) __THROW __nonnull ((2)); /* Remove the variable NAME from the environment. */ extern int unsetenv (const char *__name) __THROW __nonnull ((1)); #endif # 798 "/usr/include/stdlib.h" 3 4 #ifdef __USE_MISC /* The `clearenv' was planned to be added to POSIX.1 but probably never made it. Nevertheless the POSIX.9 standard (POSIX bindings for Fortran 77) requires this function. */ extern int clearenv (void) __THROW; #endif # 805 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC \ || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 809 "/usr/include/stdlib.h" 3 4 /* Generate a unique temporary file name from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. Always returns TEMPLATE, it's either a temporary file name or a null string if it cannot get a unique file name. */ extern char *mktemp (char *__template) __THROW __nonnull ((1)); #endif # 816 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 818 "/usr/include/stdlib.h" 3 4 /* Generate a unique temporary file name from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the filename unique. Returns a file descriptor open on the file for reading and writing, or -1 if it cannot create a uniquely-named file. This function is a possible cancellation point and therefore not marked with __THROW. */ # ifndef __USE_FILE_OFFSET64 extern int mkstemp (char *__template) __nonnull ((1)) __wur; # else # 829 "/usr/include/stdlib.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (mkstemp, (char *__template), mkstemp64) __nonnull ((1)) __wur; # else # 833 "/usr/include/stdlib.h" 3 4 # define mkstemp mkstemp64 # endif # 835 "/usr/include/stdlib.h" 3 4 # endif # 836 "/usr/include/stdlib.h" 3 4 # ifdef __USE_LARGEFILE64 extern int mkstemp64 (char *__template) __nonnull ((1)) __wur; # endif # 839 "/usr/include/stdlib.h" 3 4 #endif # 840 "/usr/include/stdlib.h" 3 4 #ifdef __USE_MISC /* Similar to mkstemp, but the template can have a suffix after the XXXXXX. The length of the suffix is specified in the second parameter. This function is a possible cancellation point and therefore not marked with __THROW. */ # ifndef __USE_FILE_OFFSET64 extern int mkstemps (char *__template, int __suffixlen) __nonnull ((1)) __wur; # else # 851 "/usr/include/stdlib.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (mkstemps, (char *__template, int __suffixlen), mkstemps64) __nonnull ((1)) __wur; # else # 855 "/usr/include/stdlib.h" 3 4 # define mkstemps mkstemps64 # endif # 857 "/usr/include/stdlib.h" 3 4 # endif # 858 "/usr/include/stdlib.h" 3 4 # ifdef __USE_LARGEFILE64 extern int mkstemps64 (char *__template, int __suffixlen) __nonnull ((1)) __wur; # endif # 862 "/usr/include/stdlib.h" 3 4 #endif # 863 "/usr/include/stdlib.h" 3 4 #ifdef __USE_XOPEN2K8 /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur; #endif # 872 "/usr/include/stdlib.h" 3 4 #ifdef __USE_GNU /* Generate a unique temporary file name from TEMPLATE similar to mkstemp. But allow the caller to pass additional flags which are used in the open call to create the file.. This function is a possible cancellation point and therefore not marked with __THROW. */ # ifndef __USE_FILE_OFFSET64 extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur; # else # 883 "/usr/include/stdlib.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64) __nonnull ((1)) __wur; # else # 887 "/usr/include/stdlib.h" 3 4 # define mkostemp mkostemp64 # endif # 889 "/usr/include/stdlib.h" 3 4 # endif # 890 "/usr/include/stdlib.h" 3 4 # ifdef __USE_LARGEFILE64 extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur; # endif # 893 "/usr/include/stdlib.h" 3 4 /* Similar to mkostemp, but the template can have a suffix after the XXXXXX. The length of the suffix is specified in the second parameter. This function is a possible cancellation point and therefore not marked with __THROW. */ # ifndef __USE_FILE_OFFSET64 extern int mkostemps (char *__template, int __suffixlen, int __flags) __nonnull ((1)) __wur; # else # 904 "/usr/include/stdlib.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (mkostemps, (char *__template, int __suffixlen, int __flags), mkostemps64) __nonnull ((1)) __wur; # else # 909 "/usr/include/stdlib.h" 3 4 # define mkostemps mkostemps64 # endif # 911 "/usr/include/stdlib.h" 3 4 # endif # 912 "/usr/include/stdlib.h" 3 4 # ifdef __USE_LARGEFILE64 extern int mkostemps64 (char *__template, int __suffixlen, int __flags) __nonnull ((1)) __wur; # endif # 916 "/usr/include/stdlib.h" 3 4 #endif # 917 "/usr/include/stdlib.h" 3 4 /* Execute the given line as a shell command. This function is a cancellation point and therefore not marked with __THROW. */ extern int system (const char *__command) __wur; #ifdef __USE_GNU /* Return a malloc'd string containing the canonical absolute name of the existing named file. */ extern char *canonicalize_file_name (const char *__name) __THROW __nonnull ((1)) __attribute_malloc__ __attr_dealloc_free __wur; #endif # 933 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 935 "/usr/include/stdlib.h" 3 4 /* Return the canonical absolute name of file NAME. If RESOLVED is null, the result is malloc'd; otherwise, if the canonical name is PATH_MAX chars or more, returns null with `errno' set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, returns the name in RESOLVED. */ extern char *realpath (const char *__restrict __name, char *__restrict __resolved) __THROW __wur; #endif # 943 "/usr/include/stdlib.h" 3 4 /* Shorthand for type of comparison functions. */ #ifndef __COMPAR_FN_T # define __COMPAR_FN_T typedef int (*__compar_fn_t) (const void *, const void *); # ifdef __USE_GNU typedef __compar_fn_t comparison_fn_t; # endif # 953 "/usr/include/stdlib.h" 3 4 #endif # 954 "/usr/include/stdlib.h" 3 4 #ifdef __USE_GNU typedef int (*__compar_d_fn_t) (const void *, const void *, void *); #endif # 957 "/usr/include/stdlib.h" 3 4 /* Do a binary search for KEY in BASE, which consists of NMEMB elements of SIZE bytes each, using COMPAR to perform the comparisons. */ extern void *bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __nonnull ((1, 2, 5)) __wur; #ifdef __USE_EXTERN_INLINES #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdlib-bsearch.h expanded by -frewrite-includes */ # include #else /* stdlib-bsearch.h expanded by -frewrite-includes */ # 965 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/bits/stdlib-bsearch.h" 1 3 4 /* Perform binary search - inline version. Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ __extern_inline void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) { size_t __l, __u, __idx; const void *__p; int __comparison; __l = 0; __u = __nmemb; while (__l < __u) { __idx = (__l + __u) / 2; __p = (const void *) (((const char *) __base) + (__idx * __size)); __comparison = (*__compar) (__key, __p); if (__comparison < 0) __u = __idx; else if (__comparison > 0) __l = __idx + 1; else { #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ(4, 6) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 41 "/usr/include/bits/stdlib-bsearch.h" 3 4 # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wcast-qual" #endif # 44 "/usr/include/bits/stdlib-bsearch.h" 3 4 return (void *) __p; #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ(4, 6) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 46 "/usr/include/bits/stdlib-bsearch.h" 3 4 # pragma GCC diagnostic pop #endif # 48 "/usr/include/bits/stdlib-bsearch.h" 3 4 } } return NULL; } #endif /* stdlib-bsearch.h expanded by -frewrite-includes */ # 966 "/usr/include/stdlib.h" 2 3 4 #endif # 967 "/usr/include/stdlib.h" 3 4 /* Sort NMEMB elements of BASE, of SIZE bytes each, using COMPAR to perform the comparisons. */ extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar) __nonnull ((1, 4)); #ifdef __USE_GNU extern void qsort_r (void *__base, size_t __nmemb, size_t __size, __compar_d_fn_t __compar, void *__arg) __nonnull ((1, 4)); #endif # 977 "/usr/include/stdlib.h" 3 4 /* Return the absolute value of X. */ extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; extern long int labs (long int __x) __THROW __attribute__ ((__const__)) __wur; #ifdef __USE_ISOC99 __extension__ extern long long int llabs (long long int __x) __THROW __attribute__ ((__const__)) __wur; #endif # 987 "/usr/include/stdlib.h" 3 4 /* Return the `div_t', `ldiv_t' or `lldiv_t' representation of the value of NUMER over DENOM. */ /* GCC may have built-ins for these someday. */ extern div_t div (int __numer, int __denom) __THROW __attribute__ ((__const__)) __wur; extern ldiv_t ldiv (long int __numer, long int __denom) __THROW __attribute__ ((__const__)) __wur; #ifdef __USE_ISOC99 __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __THROW __attribute__ ((__const__)) __wur; #endif # 1002 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1006 "/usr/include/stdlib.h" 3 4 /* Convert floating point numbers to strings. The returned values are valid only until another call to the same function. */ /* Convert VALUE to a string with NDIGIT digits and return a pointer to this. Set *DECPT with the position of the decimal character and *SIGN with the sign of the number. */ extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur; /* Convert VALUE to a string rounded to NDIGIT decimal digits. Set *DECPT with the position of the decimal character and *SIGN with the sign of the number. */ extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur; /* If possible convert VALUE to a string with NDIGIT significant digits. Otherwise use exponential representation. The resulting string will be written to BUF. */ extern char *gcvt (double __value, int __ndigit, char *__buf) __THROW __nonnull ((3)) __wur; #endif # 1027 "/usr/include/stdlib.h" 3 4 #ifdef __USE_MISC /* Long double versions of above functions. */ extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur; extern char *qgcvt (long double __value, int __ndigit, char *__buf) __THROW __nonnull ((3)) __wur; /* Reentrant version of the functions above which provide their own buffers. */ extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW __nonnull ((3, 4, 5)); extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW __nonnull ((3, 4, 5)); extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW __nonnull ((3, 4, 5)); extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) __THROW __nonnull ((3, 4, 5)); #endif /* misc */ # 1058 "/usr/include/stdlib.h" 3 4 /* Return the length of the multibyte character in S, which is no longer than N. */ extern int mblen (const char *__s, size_t __n) __THROW; /* Return the length of the given multibyte character, putting its `wchar_t' representation in *PWC. */ extern int mbtowc (wchar_t *__restrict __pwc, const char *__restrict __s, size_t __n) __THROW; /* Put the multibyte character represented by WCHAR in S, returning its length. */ extern int wctomb (char *__s, wchar_t __wchar) __THROW; /* Convert a multibyte string to a wide char string. */ extern size_t mbstowcs (wchar_t *__restrict __pwcs, const char *__restrict __s, size_t __n) __THROW __attr_access ((__read_only__, 2)); /* Convert a wide char string to multibyte string. */ extern size_t wcstombs (char *__restrict __s, const wchar_t *__restrict __pwcs, size_t __n) __THROW __fortified_attr_access (__write_only__, 1, 3) __attr_access ((__read_only__, 2)); #ifdef __USE_MISC /* Determine whether the string value of RESPONSE matches the affirmation or negative response expression as specified by the LC_MESSAGES category in the program's current locale. Returns 1 if affirmative, 0 if negative, and -1 if not matching. */ extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur; #endif # 1090 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1093 "/usr/include/stdlib.h" 3 4 /* Parse comma separated suboption from *OPTIONP and match against strings in TOKENS. If found return index and set *VALUEP to optional value introduced by an equal sign. If the suboption is not part of TOKENS return in *VALUEP beginning of unknown suboption. On exit *OPTIONP is set to the beginning of the next token or at the terminating NUL character. */ extern int getsubopt (char **__restrict __optionp, char *const *__restrict __tokens, char **__restrict __valuep) __THROW __nonnull ((1, 2, 3)) __wur; #endif # 1104 "/usr/include/stdlib.h" 3 4 /* X/Open pseudo terminal handling. */ #ifdef __USE_XOPEN2KXSI /* Return a master pseudo-terminal handle. */ extern int posix_openpt (int __oflag) __wur; #endif # 1112 "/usr/include/stdlib.h" 3 4 #ifdef __USE_XOPEN_EXTENDED /* The next four functions all take a master pseudo-tty fd and perform an operation on the associated slave: */ /* Chown the slave to the calling user. */ extern int grantpt (int __fd) __THROW; /* Release an internal lock so the slave can be opened. Call after grantpt(). */ extern int unlockpt (int __fd) __THROW; /* Return the pathname of the pseudo terminal slave associated with the master FD is open on, or NULL on errors. The returned storage is good until the next call to this function. */ extern char *ptsname (int __fd) __THROW __wur; #endif # 1129 "/usr/include/stdlib.h" 3 4 #ifdef __USE_GNU /* Store at most BUFLEN characters of the pathname of the slave pseudo terminal associated with the master FD is open on in BUF. Return 0 on success, otherwise an error number. */ extern int ptsname_r (int __fd, char *__buf, size_t __buflen) __THROW __nonnull ((2)) __fortified_attr_access (__write_only__, 2, 3); /* Open a master pseudo terminal and return its file descriptor. */ extern int getpt (void); #endif # 1140 "/usr/include/stdlib.h" 3 4 #ifdef __USE_MISC /* Put the 1 minute, 5 minute and 15 minute load averages into the first NELEM elements of LOADAVG. Return the number written (never more than three, but may be less than NELEM), or -1 if an error occurred. */ extern int getloadavg (double __loadavg[], int __nelem) __THROW __nonnull ((1)); #endif # 1148 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1150 "/usr/include/stdlib.h" 3 4 /* Return the index into the active-logins file (utmp) for the controlling terminal. */ extern int ttyslot (void) __THROW; #endif # 1154 "/usr/include/stdlib.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdlib-float.h expanded by -frewrite-includes */ #include #else /* stdlib-float.h expanded by -frewrite-includes */ # 1155 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/bits/stdlib-float.h" 1 3 4 /* Floating-point inline functions for stdlib.h. Copyright (C) 2012-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _STDLIB_H # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/stdlib-float.h" 3 4 #ifdef __USE_EXTERN_INLINES __extern_inline double __NTH (atof (const char *__nptr)) { return strtod (__nptr, (char **) NULL); } #endif /* Optimizing and Inlining. */ # 30 "/usr/include/bits/stdlib-float.h" 3 4 #endif /* stdlib-float.h expanded by -frewrite-includes */ # 1156 "/usr/include/stdlib.h" 2 3 4 /* Define some macros helping to catch buffer overflows. */ #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1159 "/usr/include/stdlib.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 1159 "/usr/include/stdlib.h" 3 4 # 1160 "/usr/include/stdlib.h" 3 4 #endif # 1161 "/usr/include/stdlib.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 1162 "/usr/include/stdlib.h" 3 4 # 1163 "/usr/include/stdlib.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __LDBL_COMPAT || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1164 "/usr/include/stdlib.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 1164 "/usr/include/stdlib.h" 3 4 # 1165 "/usr/include/stdlib.h" 3 4 #endif # 1166 "/usr/include/stdlib.h" 3 4 __END_DECLS #endif /* stdlib.h */ # 1170 "/usr/include/stdlib.h" 3 4 #endif /* stdlib.h expanded by -frewrite-includes */ # 39 "../mesa/src/c11/threads.h" 2 #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(HAVE_PTHREAD) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../mesa/src/c11/threads.h" #if 0 /* expanded by -frewrite-includes */ # include /* close */ #endif /* expanded by -frewrite-includes */ # 41 "../mesa/src/c11/threads.h" # 42 "../mesa/src/c11/threads.h" #if 0 /* expanded by -frewrite-includes */ # include /* _exit */ #endif /* expanded by -frewrite-includes */ # 42 "../mesa/src/c11/threads.h" # 43 "../mesa/src/c11/threads.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(HAVE_PTHREAD) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 44 "../mesa/src/c11/threads.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pthread.h expanded by -frewrite-includes */ # include #else /* pthread.h expanded by -frewrite-includes */ # 44 "../mesa/src/c11/threads.h" # 1 "/usr/include/pthread.h" 1 3 4 /* Copyright (C) 2002-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _PTHREAD_H #define _PTHREAD_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/pthread.h" 3 4 # 22 "/usr/include/pthread.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sched.h expanded by -frewrite-includes */ #include #else /* sched.h expanded by -frewrite-includes */ # 22 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/sched.h" 1 3 4 /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SCHED_H #define _SCHED_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 22 "/usr/include/sched.h" 3 4 # 23 "/usr/include/sched.h" 3 4 /* Get type definitions. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/sched.h" 3 4 # 26 "/usr/include/sched.h" 3 4 #define __need_size_t #define __need_NULL #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 29 "/usr/include/sched.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 30 "/usr/include/sched.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "/usr/include/sched.h" 3 4 # 32 "/usr/include/sched.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "/usr/include/sched.h" 3 4 # 33 "/usr/include/sched.h" 3 4 #ifndef __USE_XOPEN2K #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 34 "/usr/include/sched.h" 3 4 # 35 "/usr/include/sched.h" 3 4 #endif # 36 "/usr/include/sched.h" 3 4 #ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined #endif # 41 "/usr/include/sched.h" 3 4 /* Get system specific constant and data structure definitions. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sched.h expanded by -frewrite-includes */ #include #else /* sched.h expanded by -frewrite-includes */ # 43 "/usr/include/sched.h" 3 4 # 1 "/usr/include/bits/sched.h" 1 3 4 /* Definitions of constants and data structure for POSIX 1003.1b-1993 scheduling interface. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SCHED_H #define _BITS_SCHED_H 1 #ifndef _SCHED_H # error "Never include directly; use instead." #endif # 26 "/usr/include/bits/sched.h" 3 4 /* Scheduling algorithms. */ #define SCHED_OTHER 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #ifdef __USE_GNU # define SCHED_BATCH 3 # define SCHED_ISO 4 # define SCHED_IDLE 5 # define SCHED_DEADLINE 6 # define SCHED_RESET_ON_FORK 0x40000000 #endif # 39 "/usr/include/bits/sched.h" 3 4 #ifdef __USE_GNU /* Cloning flags. */ # define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */ # define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ # define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */ # define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */ # define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */ # define CLONE_PIDFD 0x00001000 /* Set if a pidfd should be placed in parent. */ # define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */ # define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to wake it up on mm_release. */ # define CLONE_PARENT 0x00008000 /* Set if we want to have the same parent as the cloner. */ # define CLONE_THREAD 0x00010000 /* Set to add to same thread group. */ # define CLONE_NEWNS 0x00020000 /* Set to create new namespace. */ # define CLONE_SYSVSEM 0x00040000 /* Set to shared SVID SEM_UNDO semantics. */ # define CLONE_SETTLS 0x00080000 /* Set TLS info. */ # define CLONE_PARENT_SETTID 0x00100000 /* Store TID in userlevel buffer before MM copy. */ # define CLONE_CHILD_CLEARTID 0x00200000 /* Register exit futex and memory location to clear. */ # define CLONE_DETACHED 0x00400000 /* Create clone detached. */ # define CLONE_UNTRACED 0x00800000 /* Set if the tracing process can't force CLONE_PTRACE on this clone. */ # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in the child. */ # define CLONE_NEWCGROUP 0x02000000 /* New cgroup namespace. */ # define CLONE_NEWUTS 0x04000000 /* New utsname group. */ # define CLONE_NEWIPC 0x08000000 /* New ipcs. */ # define CLONE_NEWUSER 0x10000000 /* New user namespace. */ # define CLONE_NEWPID 0x20000000 /* New pid namespace. */ # define CLONE_NEWNET 0x40000000 /* New network namespace. */ # define CLONE_IO 0x80000000 /* Clone I/O context. */ /* cloning flags intersect with CSIGNAL so can be used only with unshare and clone3 syscalls. */ #define CLONE_NEWTIME 0x00000080 /* New time namespace */ #endif # 79 "/usr/include/bits/sched.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_sched_param.h expanded by -frewrite-includes */ #include #else /* struct_sched_param.h expanded by -frewrite-includes */ # 80 "/usr/include/bits/sched.h" 3 4 # 1 "/usr/include/bits/types/struct_sched_param.h" 1 3 4 /* Sched parameter structure. Generic version. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_TYPES_STRUCT_SCHED_PARAM #define _BITS_TYPES_STRUCT_SCHED_PARAM 1 /* Data structure to describe a process' schedulability. */ struct sched_param { int sched_priority; }; #endif /* bits/types/struct_sched_param.h */ # 29 "/usr/include/bits/types/struct_sched_param.h" 3 4 #endif /* struct_sched_param.h expanded by -frewrite-includes */ # 81 "/usr/include/bits/sched.h" 2 3 4 __BEGIN_DECLS #ifdef __USE_GNU /* Clone current process. */ extern int clone (int (*__fn) (void *__arg), void *__child_stack, int __flags, void *__arg, ...) __THROW; /* Unshare the specified resources. */ extern int unshare (int __flags) __THROW; /* Get index of currently used CPU. */ extern int sched_getcpu (void) __THROW; /* Get currently used CPU and NUMA node. */ extern int getcpu (unsigned int *, unsigned int *) __THROW; /* Switch process to namespace of type NSTYPE indicated by FD. */ extern int setns (int __fd, int __nstype) __THROW; #endif # 101 "/usr/include/bits/sched.h" 3 4 __END_DECLS #endif /* bits/sched.h */ # 105 "/usr/include/bits/sched.h" 3 4 #endif /* sched.h expanded by -frewrite-includes */ # 44 "/usr/include/sched.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* cpu-set.h expanded by -frewrite-includes */ #include #else /* cpu-set.h expanded by -frewrite-includes */ # 44 "/usr/include/sched.h" 3 4 # 1 "/usr/include/bits/cpu-set.h" 1 3 4 /* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993 scheduling interface. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_CPU_SET_H #define _BITS_CPU_SET_H 1 #ifndef _SCHED_H # error "Never include directly; use instead." #endif # 26 "/usr/include/bits/cpu-set.h" 3 4 /* Size definition for CPU sets. */ #define __CPU_SETSIZE 1024 #define __NCPUBITS (8 * sizeof (__cpu_mask)) /* Type for array elements in 'cpu_set_t'. */ typedef __CPU_MASK_TYPE __cpu_mask; /* Basic access functions. */ #define __CPUELT(cpu) ((cpu) / __NCPUBITS) #define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) /* Data structure to describe CPU mask. */ typedef struct { __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS]; } cpu_set_t; /* Access functions for CPU masks. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2, 91) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 46 "/usr/include/bits/cpu-set.h" 3 4 # define __CPU_ZERO_S(setsize, cpusetp) \ do __builtin_memset (cpusetp, '\0', setsize); while (0) #else # 49 "/usr/include/bits/cpu-set.h" 3 4 # define __CPU_ZERO_S(setsize, cpusetp) \ do { \ size_t __i; \ size_t __imax = (setsize) / sizeof (__cpu_mask); \ __cpu_mask *__bits = (cpusetp)->__bits; \ for (__i = 0; __i < __imax; ++__i) \ __bits[__i] = 0; \ } while (0) #endif # 58 "/usr/include/bits/cpu-set.h" 3 4 #define __CPU_SET_S(cpu, setsize, cpusetp) \ (__extension__ \ ({ size_t __cpu = (cpu); \ __cpu / 8 < (setsize) \ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ |= __CPUMASK (__cpu)) \ : 0; })) #define __CPU_CLR_S(cpu, setsize, cpusetp) \ (__extension__ \ ({ size_t __cpu = (cpu); \ __cpu / 8 < (setsize) \ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ &= ~__CPUMASK (__cpu)) \ : 0; })) #define __CPU_ISSET_S(cpu, setsize, cpusetp) \ (__extension__ \ ({ size_t __cpu = (cpu); \ __cpu / 8 < (setsize) \ ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \ & __CPUMASK (__cpu))) != 0 \ : 0; })) #define __CPU_COUNT_S(setsize, cpusetp) \ __sched_cpucount (setsize, cpusetp) #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (2, 91) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/cpu-set.h" 3 4 # define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0) #else # 87 "/usr/include/bits/cpu-set.h" 3 4 # define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ (__extension__ \ ({ const __cpu_mask *__arr1 = (cpusetp1)->__bits; \ const __cpu_mask *__arr2 = (cpusetp2)->__bits; \ size_t __imax = (setsize) / sizeof (__cpu_mask); \ size_t __i; \ for (__i = 0; __i < __imax; ++__i) \ if (__arr1[__i] != __arr2[__i]) \ break; \ __i == __imax; })) #endif # 98 "/usr/include/bits/cpu-set.h" 3 4 #define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \ (__extension__ \ ({ cpu_set_t *__dest = (destset); \ const __cpu_mask *__arr1 = (srcset1)->__bits; \ const __cpu_mask *__arr2 = (srcset2)->__bits; \ size_t __imax = (setsize) / sizeof (__cpu_mask); \ size_t __i; \ for (__i = 0; __i < __imax; ++__i) \ ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; \ __dest; })) #define __CPU_ALLOC_SIZE(count) \ ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask)) #define __CPU_ALLOC(count) __sched_cpualloc (count) #define __CPU_FREE(cpuset) __sched_cpufree (cpuset) __BEGIN_DECLS extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) __THROW; extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur; extern void __sched_cpufree (cpu_set_t *__set) __THROW; __END_DECLS #endif /* bits/cpu-set.h */ # 125 "/usr/include/bits/cpu-set.h" 3 4 #endif /* cpu-set.h expanded by -frewrite-includes */ # 45 "/usr/include/sched.h" 2 3 4 /* Backward compatibility. */ #define sched_priority sched_priority #define __sched_priority sched_priority __BEGIN_DECLS /* Set scheduling parameters for a process. */ extern int sched_setparam (__pid_t __pid, const struct sched_param *__param) __THROW; /* Retrieve scheduling parameters for a particular process. */ extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __THROW; /* Set scheduling algorithm and/or parameters for a process. */ extern int sched_setscheduler (__pid_t __pid, int __policy, const struct sched_param *__param) __THROW; /* Retrieve scheduling algorithm for a particular purpose. */ extern int sched_getscheduler (__pid_t __pid) __THROW; /* Yield the processor. */ extern int sched_yield (void) __THROW; /* Get maximum priority value for a scheduler. */ extern int sched_get_priority_max (int __algorithm) __THROW; /* Get minimum priority value for a scheduler. */ extern int sched_get_priority_min (int __algorithm) __THROW; /* Get the SCHED_RR interval for the named process. */ #ifndef __USE_TIME64_REDIRECTS extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW; #else # 80 "/usr/include/sched.h" 3 4 # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (sched_rr_get_interval, (__pid_t __pid, struct timespec *__t), __sched_rr_get_interval64); # else # 85 "/usr/include/sched.h" 3 4 # define sched_rr_get_interval __sched_rr_get_interval64 # endif # 87 "/usr/include/sched.h" 3 4 #endif # 88 "/usr/include/sched.h" 3 4 #ifdef __USE_GNU /* Access macros for `cpu_set'. */ # define CPU_SETSIZE __CPU_SETSIZE # define CPU_SET(cpu, cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp) # define CPU_CLR(cpu, cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp) # define CPU_ISSET(cpu, cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), \ cpusetp) # define CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp) # define CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp) # define CPU_SET_S(cpu, setsize, cpusetp) __CPU_SET_S (cpu, setsize, cpusetp) # define CPU_CLR_S(cpu, setsize, cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp) # define CPU_ISSET_S(cpu, setsize, cpusetp) __CPU_ISSET_S (cpu, setsize, \ cpusetp) # define CPU_ZERO_S(setsize, cpusetp) __CPU_ZERO_S (setsize, cpusetp) # define CPU_COUNT_S(setsize, cpusetp) __CPU_COUNT_S (setsize, cpusetp) # define CPU_EQUAL(cpusetp1, cpusetp2) \ __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2) # define CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2) # define CPU_AND(destset, srcset1, srcset2) \ __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &) # define CPU_OR(destset, srcset1, srcset2) \ __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |) # define CPU_XOR(destset, srcset1, srcset2) \ __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^) # define CPU_AND_S(setsize, destset, srcset1, srcset2) \ __CPU_OP_S (setsize, destset, srcset1, srcset2, &) # define CPU_OR_S(setsize, destset, srcset1, srcset2) \ __CPU_OP_S (setsize, destset, srcset1, srcset2, |) # define CPU_XOR_S(setsize, destset, srcset1, srcset2) \ __CPU_OP_S (setsize, destset, srcset1, srcset2, ^) # define CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count) # define CPU_ALLOC(count) __CPU_ALLOC (count) # define CPU_FREE(cpuset) __CPU_FREE (cpuset) /* Set the CPU affinity for a task */ extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, const cpu_set_t *__cpuset) __THROW; /* Get the CPU affinity for a task */ extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, cpu_set_t *__cpuset) __THROW; #endif # 137 "/usr/include/sched.h" 3 4 __END_DECLS #endif /* sched.h */ # 141 "/usr/include/sched.h" 3 4 #endif /* sched.h expanded by -frewrite-includes */ # 23 "/usr/include/pthread.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 23 "/usr/include/pthread.h" 3 4 # 24 "/usr/include/pthread.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/pthread.h" 3 4 # 26 "/usr/include/pthread.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "/usr/include/pthread.h" 3 4 # 27 "/usr/include/pthread.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* setjmp.h expanded by -frewrite-includes */ #include #else /* setjmp.h expanded by -frewrite-includes */ # 27 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/bits/setjmp.h" 1 3 4 /* Copyright (C) 2001-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Define the machine-dependent type `jmp_buf'. x86-64 version. */ #ifndef _BITS_SETJMP_H #define _BITS_SETJMP_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _SETJMP_H && !defined _PTHREAD_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/usr/include/bits/setjmp.h" 3 4 # error "Never include directly; use instead." #endif # 25 "/usr/include/bits/setjmp.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 26 "/usr/include/bits/setjmp.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 27 "/usr/include/bits/setjmp.h" 2 3 4 #ifndef _ASM #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 31 "/usr/include/bits/setjmp.h" 3 4 typedef long int __jmp_buf[8]; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined __x86_64__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 33 "/usr/include/bits/setjmp.h" 3 4 __extension__ typedef long long int __jmp_buf[8]; # else # 35 "/usr/include/bits/setjmp.h" 3 4 typedef int __jmp_buf[6]; # endif # 37 "/usr/include/bits/setjmp.h" 3 4 #endif # 39 "/usr/include/bits/setjmp.h" 3 4 #endif /* bits/setjmp.h */ # 41 "/usr/include/bits/setjmp.h" 3 4 #endif /* setjmp.h expanded by -frewrite-includes */ # 28 "/usr/include/pthread.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 28 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 29 "/usr/include/pthread.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 29 "/usr/include/pthread.h" 3 4 # 30 "/usr/include/pthread.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 30 "/usr/include/pthread.h" 3 4 # 31 "/usr/include/pthread.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct___jmp_buf_tag.h expanded by -frewrite-includes */ #include #else /* struct___jmp_buf_tag.h expanded by -frewrite-includes */ # 31 "/usr/include/pthread.h" 3 4 # 1 "/usr/include/bits/types/struct___jmp_buf_tag.h" 1 3 4 /* Define struct __jmp_buf_tag. Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __jmp_buf_tag_defined #define __jmp_buf_tag_defined 1 #if 0 /* expanded by -frewrite-includes */ #include /* Get `__jmp_buf'. */ #endif /* expanded by -frewrite-includes */ # 22 "/usr/include/bits/types/struct___jmp_buf_tag.h" 3 4 # 23 "/usr/include/bits/types/struct___jmp_buf_tag.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 23 "/usr/include/bits/types/struct___jmp_buf_tag.h" 3 4 # 24 "/usr/include/bits/types/struct___jmp_buf_tag.h" 3 4 /* Calling environment, plus possibly a saved signal mask. */ struct __jmp_buf_tag { /* NOTE: The machine-dependent definitions of `__sigsetjmp' assume that a `jmp_buf' begins with a `__jmp_buf' and that `__mask_was_saved' follows it. Do not move these members or add others before it. */ __jmp_buf __jmpbuf; /* Calling environment. */ int __mask_was_saved; /* Saved the signal mask? */ __sigset_t __saved_mask; /* Saved signal mask. */ }; #endif # 38 "/usr/include/bits/types/struct___jmp_buf_tag.h" 3 4 #endif /* struct___jmp_buf_tag.h expanded by -frewrite-includes */ # 32 "/usr/include/pthread.h" 2 3 4 #ifdef __USE_MISC #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/pthread.h" 3 4 # 34 "/usr/include/pthread.h" 3 4 #endif # 35 "/usr/include/pthread.h" 3 4 /* Detach state. */ enum { PTHREAD_CREATE_JOINABLE, #define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_DETACHED #define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED }; /* Mutex types. */ enum { PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_ADAPTIVE_NP #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 54 "/usr/include/pthread.h" 3 4 , PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL #endif # 60 "/usr/include/pthread.h" 3 4 #ifdef __USE_GNU /* For compatibility. */ , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP #endif # 64 "/usr/include/pthread.h" 3 4 }; #ifdef __USE_XOPEN2K /* Robust mutex or not flags. */ enum { PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST }; #endif # 77 "/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199506 || defined __USE_UNIX98 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 80 "/usr/include/pthread.h" 3 4 /* Mutex protocols. */ enum { PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT }; #endif # 88 "/usr/include/pthread.h" 3 4 #define PTHREAD_MUTEX_INITIALIZER \ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } } #ifdef __USE_GNU # define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } } # define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } } # define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \ { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } } #endif # 100 "/usr/include/pthread.h" 3 4 /* Read-write lock types. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 104 "/usr/include/pthread.h" 3 4 enum { PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP }; /* Read-write lock initializers. */ # define PTHREAD_RWLOCK_INITIALIZER \ { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } } # ifdef __USE_GNU # define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \ { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } } # endif # 120 "/usr/include/pthread.h" 3 4 #endif /* Unix98 or XOpen2K */ # 121 "/usr/include/pthread.h" 3 4 /* Scheduler inheritance. */ enum { PTHREAD_INHERIT_SCHED, #define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED PTHREAD_EXPLICIT_SCHED #define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED }; /* Scope handling. */ enum { PTHREAD_SCOPE_SYSTEM, #define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_PROCESS #define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS }; /* Process shared or private flag. */ enum { PTHREAD_PROCESS_PRIVATE, #define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED #define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED }; /* Conditional variable handling. */ #define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } } /* Cleanup buffers */ struct _pthread_cleanup_buffer { void (*__routine) (void *); /* Function to call. */ void *__arg; /* Its argument. */ int __canceltype; /* Saved cancellation type. */ struct _pthread_cleanup_buffer *__prev; /* Chaining of cleanup functions. */ }; /* Cancellation */ enum { PTHREAD_CANCEL_ENABLE, #define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_DISABLE #define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE }; enum { PTHREAD_CANCEL_DEFERRED, #define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_ASYNCHRONOUS #define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS }; #define PTHREAD_CANCELED ((void *) -1) /* Single execution handling. */ #define PTHREAD_ONCE_INIT 0 #ifdef __USE_XOPEN2K /* Value returned by 'pthread_barrier_wait' for one of the threads after the required number of threads have called this function. -1 is distinct from 0 and all errno constants */ # define PTHREAD_BARRIER_SERIAL_THREAD -1 #endif # 195 "/usr/include/pthread.h" 3 4 __BEGIN_DECLS /* Create a new thread, starting with execution of START-ROUTINE getting passed ARG. Creation attributed come from ATTR. The new handle is stored in *NEWTHREAD. */ extern int pthread_create (pthread_t *__restrict __newthread, const pthread_attr_t *__restrict __attr, void *(*__start_routine) (void *), void *__restrict __arg) __THROWNL __nonnull ((1, 3)); /* Terminate calling thread. The registered cleanup handlers are called via exception handling so we cannot mark this function with __THROW.*/ extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); /* Make calling thread wait for termination of the thread TH. The exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN is not NULL. This function is a cancellation point and therefore not marked with __THROW. */ extern int pthread_join (pthread_t __th, void **__thread_return); #ifdef __USE_GNU /* Check whether thread TH has terminated. If yes return the status of the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL. */ extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW; # ifndef __USE_TIME64_REDIRECTS /* Make calling thread wait for termination of the thread TH, but only until TIMEOUT. The exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN is not NULL. This function is a cancellation point and therefore not marked with __THROW. */ extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, const struct timespec *__abstime); /* Make calling thread wait for termination of the thread TH, but only until TIMEOUT measured against the clock specified by CLOCKID. The exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN is not NULL. This function is a cancellation point and therefore not marked with __THROW. */ extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return, clockid_t __clockid, const struct timespec *__abstime); # else # 247 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (pthread_timedjoin_np, (pthread_t __th, void **__thread_return, const struct timespec *__abstime), __pthread_timedjoin_np64); extern int __REDIRECT (pthread_clockjoin_np, (pthread_t __th, void **__thread_return, clockid_t __clockid, const struct timespec *__abstime), __pthread_clockjoin_np64); # else # 259 "/usr/include/pthread.h" 3 4 # define pthread_timedjoin_np __pthread_timedjoin_np64 # define pthread_clockjoin_np __pthread_clockjoin_np64 # endif # 262 "/usr/include/pthread.h" 3 4 # endif # 263 "/usr/include/pthread.h" 3 4 #endif # 264 "/usr/include/pthread.h" 3 4 /* Indicate that the thread TH is never to be joined with PTHREAD_JOIN. The resources of TH will therefore be freed immediately when it terminates, instead of waiting for another thread to perform PTHREAD_JOIN on it. */ extern int pthread_detach (pthread_t __th) __THROW; /* Obtain the identifier of the current thread. */ extern pthread_t pthread_self (void) __THROW __attribute__ ((__const__)); /* Compare two thread identifiers. */ extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __THROW __attribute__ ((__const__)); /* Thread attribute handling. */ /* Initialize thread attribute *ATTR with default attributes (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER, no user-provided stack). */ extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1)); /* Destroy thread attribute *ATTR. */ extern int pthread_attr_destroy (pthread_attr_t *__attr) __THROW __nonnull ((1)); /* Get detach state attribute. */ extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr, int *__detachstate) __THROW __nonnull ((1, 2)); /* Set detach state attribute. */ extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, int __detachstate) __THROW __nonnull ((1)); /* Get the size of the guard area created for stack overflow protection. */ extern int pthread_attr_getguardsize (const pthread_attr_t *__attr, size_t *__guardsize) __THROW __nonnull ((1, 2)); /* Set the size of the guard area created for stack overflow protection. */ extern int pthread_attr_setguardsize (pthread_attr_t *__attr, size_t __guardsize) __THROW __nonnull ((1)); /* Return in *PARAM the scheduling parameters of *ATTR. */ extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr, struct sched_param *__restrict __param) __THROW __nonnull ((1, 2)); /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */ extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, const struct sched_param *__restrict __param) __THROW __nonnull ((1, 2)); /* Return in *POLICY the scheduling policy of *ATTR. */ extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict __attr, int *__restrict __policy) __THROW __nonnull ((1, 2)); /* Set scheduling policy in *ATTR according to POLICY. */ extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) __THROW __nonnull ((1)); /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */ extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict __attr, int *__restrict __inherit) __THROW __nonnull ((1, 2)); /* Set scheduling inheritance mode in *ATTR according to INHERIT. */ extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, int __inherit) __THROW __nonnull ((1)); /* Return in *SCOPE the scheduling contention scope of *ATTR. */ extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr, int *__restrict __scope) __THROW __nonnull ((1, 2)); /* Set scheduling contention scope in *ATTR according to SCOPE. */ extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) __THROW __nonnull ((1)); /* Return the previously set address for the stack. */ extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr) __THROW __nonnull ((1, 2)) __attribute_deprecated__; /* Set the starting address of the stack of the thread to be created. Depending on whether the stack grows up or down the value must either be higher or lower than all the address in the memory block. The minimal size of the block must be PTHREAD_STACK_MIN. */ extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, void *__stackaddr) __THROW __nonnull ((1)) __attribute_deprecated__; /* Return the currently used minimal stack size. */ extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict __attr, size_t *__restrict __stacksize) __THROW __nonnull ((1, 2)); /* Add information about the minimum stack size needed for the thread to be started. This size must never be less than PTHREAD_STACK_MIN and must also not exceed the system limits. */ extern int pthread_attr_setstacksize (pthread_attr_t *__attr, size_t __stacksize) __THROW __nonnull ((1)); #ifdef __USE_XOPEN2K /* Return the previously set address for the stack. */ extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr, void **__restrict __stackaddr, size_t *__restrict __stacksize) __THROW __nonnull ((1, 2, 3)); /* The following two interfaces are intended to replace the last two. They require setting the address as well as the size since only setting the address will make the implementation on some architectures impossible. */ extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, size_t __stacksize) __THROW __nonnull ((1)); #endif # 390 "/usr/include/pthread.h" 3 4 #ifdef __USE_GNU /* Thread created with attribute ATTR will be limited to run only on the processors represented in CPUSET. */ extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, size_t __cpusetsize, const cpu_set_t *__cpuset) __THROW __nonnull ((1, 3)); /* Get bit set in CPUSET representing the processors threads created with ATTR can run on. */ extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr, size_t __cpusetsize, cpu_set_t *__cpuset) __THROW __nonnull ((1, 3)); /* Get the default attributes used by pthread_create in this process. */ extern int pthread_getattr_default_np (pthread_attr_t *__attr) __THROW __nonnull ((1)); /* Store *SIGMASK as the signal mask for the new thread in *ATTR. */ extern int pthread_attr_setsigmask_np (pthread_attr_t *__attr, const __sigset_t *sigmask); /* Store the signal mask of *ATTR in *SIGMASK. If there is no signal mask stored, return PTHREAD_ATTR_NOSIGMASK_NP. Return zero on success. */ extern int pthread_attr_getsigmask_np (const pthread_attr_t *__attr, __sigset_t *sigmask); /* Special return value from pthread_attr_getsigmask_np if the signal mask has not been set. */ #define PTHREAD_ATTR_NO_SIGMASK_NP (-1) /* Set the default attributes to be used by pthread_create in this process. */ extern int pthread_setattr_default_np (const pthread_attr_t *__attr) __THROW __nonnull ((1)); /* Initialize thread attribute *ATTR with attributes corresponding to the already running thread TH. It shall be called on uninitialized ATTR and destroyed with pthread_attr_destroy when no longer needed. */ extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __THROW __nonnull ((2)); #endif # 435 "/usr/include/pthread.h" 3 4 /* Functions for scheduling control. */ /* Set the scheduling parameters for TARGET_THREAD according to POLICY and *PARAM. */ extern int pthread_setschedparam (pthread_t __target_thread, int __policy, const struct sched_param *__param) __THROW __nonnull ((3)); /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */ extern int pthread_getschedparam (pthread_t __target_thread, int *__restrict __policy, struct sched_param *__restrict __param) __THROW __nonnull ((2, 3)); /* Set the scheduling priority for TARGET_THREAD. */ extern int pthread_setschedprio (pthread_t __target_thread, int __prio) __THROW; #ifdef __USE_GNU /* Get thread name visible in the kernel and its interfaces. */ extern int pthread_getname_np (pthread_t __target_thread, char *__buf, size_t __buflen) __THROW __nonnull ((2)); /* Set thread name visible in the kernel and its interfaces. */ extern int pthread_setname_np (pthread_t __target_thread, const char *__name) __THROW __nonnull ((2)); #endif # 466 "/usr/include/pthread.h" 3 4 #ifdef __USE_UNIX98 /* Determine level of concurrency. */ extern int pthread_getconcurrency (void) __THROW; /* Set new concurrency level to LEVEL. */ extern int pthread_setconcurrency (int __level) __THROW; #endif # 475 "/usr/include/pthread.h" 3 4 #ifdef __USE_GNU extern int pthread_yield (void) __THROW; # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (pthread_yield, (void), sched_yield) __attribute_deprecated_msg__ ("\ pthread_yield is deprecated, use sched_yield instead"); # else # 483 "/usr/include/pthread.h" 3 4 # define pthread_yield sched_yield # endif # 485 "/usr/include/pthread.h" 3 4 /* Limit specified thread TH to run only on the processors represented in CPUSET. */ extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, const cpu_set_t *__cpuset) __THROW __nonnull ((3)); /* Get bit set in CPUSET representing the processors TH can run on. */ extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, cpu_set_t *__cpuset) __THROW __nonnull ((3)); #endif # 498 "/usr/include/pthread.h" 3 4 /* Functions for handling initialization. */ /* Guarantee that the initialization function INIT_ROUTINE will be called only once, even if pthread_once is executed several times with the same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or extern variable initialized to PTHREAD_ONCE_INIT. The initialization functions might throw exception which is why this function is not marked with __THROW. */ extern int pthread_once (pthread_once_t *__once_control, void (*__init_routine) (void)) __nonnull ((1, 2)); /* Functions for handling cancellation. Note that these functions are explicitly not marked to not throw an exception in C++ code. If cancellation is implemented by unwinding this is necessary to have the compiler generate the unwind information. */ /* Set cancellability state of current thread to STATE, returning old state in *OLDSTATE if OLDSTATE is not NULL. */ extern int pthread_setcancelstate (int __state, int *__oldstate); /* Set cancellation state of current thread to TYPE, returning the old type in *OLDTYPE if OLDTYPE is not NULL. */ extern int pthread_setcanceltype (int __type, int *__oldtype); /* Cancel THREAD immediately or at the next possibility. */ extern int pthread_cancel (pthread_t __th); /* Test for pending cancellation for the current thread and terminate the thread as per pthread_exit(PTHREAD_CANCELED) if it has been cancelled. */ extern void pthread_testcancel (void); /* Cancellation handling with integration into exception handling. */ struct __cancel_jmp_buf_tag { __jmp_buf __cancel_jmp_buf; int __mask_was_saved; }; typedef struct { struct __cancel_jmp_buf_tag __cancel_jmp_buf[1]; void *__pad[4]; } __pthread_unwind_buf_t __attribute__ ((__aligned__)); /* No special attributes by default. */ #ifndef __cleanup_fct_attribute # define __cleanup_fct_attribute #endif # 554 "/usr/include/pthread.h" 3 4 /* Structure to hold the cleanup handler information. */ struct __pthread_cleanup_frame { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; }; #if 0 /* disabled by -frewrite-includes */ #if defined __GNUC__ && defined __EXCEPTIONS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 566 "/usr/include/pthread.h" 3 4 # ifdef __cplusplus /* Class to handle cancellation handler invocation. */ class __pthread_cleanup_class { void (*__cancel_routine) (void *); void *__cancel_arg; int __do_it; int __cancel_type; public: __pthread_cleanup_class (void (*__fct) (void *), void *__arg) : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } void __setdoit (int __newval) { __do_it = __newval; } void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &__cancel_type); } void __restore () const { pthread_setcanceltype (__cancel_type, 0); } }; /* Install a cleanup handler: ROUTINE will be called with arguments ARG when the thread is canceled or calls pthread_exit. ROUTINE will also be called with arguments ARG when the matching pthread_cleanup_pop is executed with non-zero EXECUTE argument. pthread_cleanup_push and pthread_cleanup_pop are macros and must always be used in matching pairs at the same nesting level of braces. */ # define pthread_cleanup_push(routine, arg) \ do { \ __pthread_cleanup_class __clframe (routine, arg) /* Remove a cleanup handler installed by the matching pthread_cleanup_push. If EXECUTE is non-zero, the handler function is called. */ # define pthread_cleanup_pop(execute) \ __clframe.__setdoit (execute); \ } while (0) # ifdef __USE_GNU /* Install a cleanup handler as pthread_cleanup_push does, but also saves the current cancellation type and sets it to deferred cancellation. */ # define pthread_cleanup_push_defer_np(routine, arg) \ do { \ __pthread_cleanup_class __clframe (routine, arg); \ __clframe.__defer () /* Remove a cleanup handler as pthread_cleanup_pop does, but also restores the cancellation type that was in effect when the matching pthread_cleanup_push_defer was called. */ # define pthread_cleanup_pop_restore_np(execute) \ __clframe.__restore (); \ __clframe.__setdoit (execute); \ } while (0) # endif # 619 "/usr/include/pthread.h" 3 4 # else # 620 "/usr/include/pthread.h" 3 4 /* Function called to call the cleanup handler. As an extern inline function the compiler is free to decide inlining the change when needed or fall back on the copy which must exist somewhere else. */ __extern_inline void __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame) { if (__frame->__do_it) __frame->__cancel_routine (__frame->__cancel_arg); } /* Install a cleanup handler: ROUTINE will be called with arguments ARG when the thread is canceled or calls pthread_exit. ROUTINE will also be called with arguments ARG when the matching pthread_cleanup_pop is executed with non-zero EXECUTE argument. pthread_cleanup_push and pthread_cleanup_pop are macros and must always be used in matching pairs at the same nesting level of braces. */ # define pthread_cleanup_push(routine, arg) \ do { \ struct __pthread_cleanup_frame __clframe \ __attribute__ ((__cleanup__ (__pthread_cleanup_routine))) \ = { .__cancel_routine = (routine), .__cancel_arg = (arg), \ .__do_it = 1 }; /* Remove a cleanup handler installed by the matching pthread_cleanup_push. If EXECUTE is non-zero, the handler function is called. */ # define pthread_cleanup_pop(execute) \ __clframe.__do_it = (execute); \ } while (0) # ifdef __USE_GNU /* Install a cleanup handler as pthread_cleanup_push does, but also saves the current cancellation type and sets it to deferred cancellation. */ # define pthread_cleanup_push_defer_np(routine, arg) \ do { \ struct __pthread_cleanup_frame __clframe \ __attribute__ ((__cleanup__ (__pthread_cleanup_routine))) \ = { .__cancel_routine = (routine), .__cancel_arg = (arg), \ .__do_it = 1 }; \ (void) pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, \ &__clframe.__cancel_type) /* Remove a cleanup handler as pthread_cleanup_pop does, but also restores the cancellation type that was in effect when the matching pthread_cleanup_push_defer was called. */ # define pthread_cleanup_pop_restore_np(execute) \ (void) pthread_setcanceltype (__clframe.__cancel_type, NULL); \ __clframe.__do_it = (execute); \ } while (0) # endif # 672 "/usr/include/pthread.h" 3 4 # endif # 673 "/usr/include/pthread.h" 3 4 #else # 674 "/usr/include/pthread.h" 3 4 /* Install a cleanup handler: ROUTINE will be called with arguments ARG when the thread is canceled or calls pthread_exit. ROUTINE will also be called with arguments ARG when the matching pthread_cleanup_pop is executed with non-zero EXECUTE argument. pthread_cleanup_push and pthread_cleanup_pop are macros and must always be used in matching pairs at the same nesting level of braces. */ # define pthread_cleanup_push(routine, arg) \ do { \ __pthread_unwind_buf_t __cancel_buf; \ void (*__cancel_routine) (void *) = (routine); \ void *__cancel_arg = (arg); \ int __not_first_call = __sigsetjmp_cancel (__cancel_buf.__cancel_jmp_buf, \ 0); \ if (__glibc_unlikely (__not_first_call)) \ { \ __cancel_routine (__cancel_arg); \ __pthread_unwind_next (&__cancel_buf); \ /* NOTREACHED */ \ } \ \ __pthread_register_cancel (&__cancel_buf); \ do { extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) __cleanup_fct_attribute; /* Remove a cleanup handler installed by the matching pthread_cleanup_push. If EXECUTE is non-zero, the handler function is called. */ # define pthread_cleanup_pop(execute) \ do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\ } while (0); \ __pthread_unregister_cancel (&__cancel_buf); \ if (execute) \ __cancel_routine (__cancel_arg); \ } while (0) extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) __cleanup_fct_attribute; # ifdef __USE_GNU /* Install a cleanup handler as pthread_cleanup_push does, but also saves the current cancellation type and sets it to deferred cancellation. */ # define pthread_cleanup_push_defer_np(routine, arg) \ do { \ __pthread_unwind_buf_t __cancel_buf; \ void (*__cancel_routine) (void *) = (routine); \ void *__cancel_arg = (arg); \ int __not_first_call = __sigsetjmp_cancel (__cancel_buf.__cancel_jmp_buf, \ 0); \ if (__glibc_unlikely (__not_first_call)) \ { \ __cancel_routine (__cancel_arg); \ __pthread_unwind_next (&__cancel_buf); \ /* NOTREACHED */ \ } \ \ __pthread_register_cancel_defer (&__cancel_buf); \ do { extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) __cleanup_fct_attribute; /* Remove a cleanup handler as pthread_cleanup_pop does, but also restores the cancellation type that was in effect when the matching pthread_cleanup_push_defer was called. */ # define pthread_cleanup_pop_restore_np(execute) \ do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\ } while (0); \ __pthread_unregister_cancel_restore (&__cancel_buf); \ if (execute) \ __cancel_routine (__cancel_arg); \ } while (0) extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) __cleanup_fct_attribute; # endif # 748 "/usr/include/pthread.h" 3 4 /* Internal interface to initiate cleanup. */ extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) __cleanup_fct_attribute __attribute__ ((__noreturn__)) # ifndef SHARED __attribute__ ((__weak__)) # endif # 755 "/usr/include/pthread.h" 3 4 ; #endif # 757 "/usr/include/pthread.h" 3 4 /* Function used in the macros. Calling __sigsetjmp, with its first argument declared as an array, results in a -Wstringop-overflow warning from GCC 11 because struct pthread_unwind_buf is smaller than jmp_buf. The calls from the macros have __SAVEMASK set to 0, so nothing beyond the common prefix is used and this warning is a false positive. Use an alias with its first argument declared to use the type in the macros if possible to avoid this warning. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (11, 0) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 766 "/usr/include/pthread.h" 3 4 extern int __REDIRECT_NTHNL (__sigsetjmp_cancel, (struct __cancel_jmp_buf_tag __env[1], int __savemask), __sigsetjmp) __attribute_returns_twice__; #else # 771 "/usr/include/pthread.h" 3 4 # define __sigsetjmp_cancel(env, savemask) \ __sigsetjmp ((struct __jmp_buf_tag *) (void *) (env), (savemask)) extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL; #endif # 776 "/usr/include/pthread.h" 3 4 /* Mutex handling. */ /* Initialize a mutex. */ extern int pthread_mutex_init (pthread_mutex_t *__mutex, const pthread_mutexattr_t *__mutexattr) __THROW __nonnull ((1)); /* Destroy a mutex. */ extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) __THROW __nonnull ((1)); /* Try locking a mutex. */ extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) __THROWNL __nonnull ((1)); /* Lock a mutex. */ extern int pthread_mutex_lock (pthread_mutex_t *__mutex) __THROWNL __nonnull ((1)); #ifdef __USE_XOPEN2K /* Wait until lock becomes available, or specified time passes. */ # ifndef __USE_TIME64_REDIRECTS extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) __THROWNL __nonnull ((1, 2)); # else # 804 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT_NTHNL extern int __REDIRECT_NTHNL (pthread_mutex_timedlock, (pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime), __pthread_mutex_timedlock64) __nonnull ((1, 2)); # else # 810 "/usr/include/pthread.h" 3 4 # define pthread_mutex_timedlock __pthread_mutex_timedlock64 # endif # 812 "/usr/include/pthread.h" 3 4 # endif # 813 "/usr/include/pthread.h" 3 4 #endif # 814 "/usr/include/pthread.h" 3 4 #ifdef __USE_GNU # ifndef __USE_TIME64_REDIRECTS extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, clockid_t __clockid, const struct timespec *__restrict __abstime) __THROWNL __nonnull ((1, 3)); # else # 822 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT_NTHNL extern int __REDIRECT_NTHNL (pthread_mutex_clocklock, (pthread_mutex_t *__restrict __mutex, clockid_t __clockid, const struct timespec *__restrict __abstime), __pthread_mutex_clocklock64) __nonnull ((1, 3)); # else # 829 "/usr/include/pthread.h" 3 4 # define pthread_mutex_clocklock __pthread_mutex_clocklock64 # endif # 831 "/usr/include/pthread.h" 3 4 # endif # 832 "/usr/include/pthread.h" 3 4 #endif # 833 "/usr/include/pthread.h" 3 4 /* Unlock a mutex. */ extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __THROWNL __nonnull ((1)); /* Get the priority ceiling of MUTEX. */ extern int pthread_mutex_getprioceiling (const pthread_mutex_t * __restrict __mutex, int *__restrict __prioceiling) __THROW __nonnull ((1, 2)); /* Set the priority ceiling of MUTEX to PRIOCEILING, return old priority ceiling value in *OLD_CEILING. */ extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, int __prioceiling, int *__restrict __old_ceiling) __THROW __nonnull ((1, 3)); #ifdef __USE_XOPEN2K8 /* Declare the state protected by MUTEX as consistent. */ extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) __THROW __nonnull ((1)); # ifdef __USE_GNU # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (pthread_mutex_consistent_np, (pthread_mutex_t *), pthread_mutex_consistent) __nonnull ((1)) __attribute_deprecated_msg__ ("\ pthread_mutex_consistent_np is deprecated, use pthread_mutex_consistent"); # else # 864 "/usr/include/pthread.h" 3 4 # define pthread_mutex_consistent_np pthread_mutex_consistent # endif # 866 "/usr/include/pthread.h" 3 4 # endif # 867 "/usr/include/pthread.h" 3 4 #endif # 868 "/usr/include/pthread.h" 3 4 /* Functions for handling mutex attributes. */ /* Initialize mutex attribute object ATTR with default attributes (kind is PTHREAD_MUTEX_TIMED_NP). */ extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) __THROW __nonnull ((1)); /* Destroy mutex attribute object ATTR. */ extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW __nonnull ((1)); /* Get the process-shared flag of the mutex attribute ATTR. */ extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t * __restrict __attr, int *__restrict __pshared) __THROW __nonnull ((1, 2)); /* Set the process-shared flag of the mutex attribute ATTR. */ extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, int __pshared) __THROW __nonnull ((1)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 893 "/usr/include/pthread.h" 3 4 /* Return in *KIND the mutex kind attribute in *ATTR. */ extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict __attr, int *__restrict __kind) __THROW __nonnull ((1, 2)); /* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL, PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or PTHREAD_MUTEX_DEFAULT). */ extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) __THROW __nonnull ((1)); #endif # 904 "/usr/include/pthread.h" 3 4 /* Return in *PROTOCOL the mutex protocol attribute in *ATTR. */ extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t * __restrict __attr, int *__restrict __protocol) __THROW __nonnull ((1, 2)); /* Set the mutex protocol attribute in *ATTR to PROTOCOL (either PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT). */ extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, int __protocol) __THROW __nonnull ((1)); /* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR. */ extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t * __restrict __attr, int *__restrict __prioceiling) __THROW __nonnull ((1, 2)); /* Set the mutex prioceiling attribute in *ATTR to PRIOCEILING. */ extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, int __prioceiling) __THROW __nonnull ((1)); #ifdef __USE_XOPEN2K /* Get the robustness flag of the mutex attribute ATTR. */ extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr, int *__robustness) __THROW __nonnull ((1, 2)); # ifdef __USE_GNU # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (pthread_mutexattr_getrobust_np, (pthread_mutexattr_t *, int *), pthread_mutexattr_getrobust) __nonnull ((1)) __attribute_deprecated_msg__ ("\ pthread_mutexattr_getrobust_np is deprecated, use pthread_mutexattr_getrobust"); # else # 941 "/usr/include/pthread.h" 3 4 # define pthread_mutexattr_getrobust_np pthread_mutexattr_getrobust # endif # 943 "/usr/include/pthread.h" 3 4 # endif # 944 "/usr/include/pthread.h" 3 4 /* Set the robustness flag of the mutex attribute ATTR. */ extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, int __robustness) __THROW __nonnull ((1)); # ifdef __USE_GNU # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (pthread_mutexattr_setrobust_np, (pthread_mutexattr_t *, int), pthread_mutexattr_setrobust) __nonnull ((1)) __attribute_deprecated_msg__ ("\ pthread_mutexattr_setrobust_np is deprecated, use pthread_mutexattr_setrobust"); # else # 957 "/usr/include/pthread.h" 3 4 # define pthread_mutexattr_setrobust_np pthread_mutexattr_setrobust # endif # 959 "/usr/include/pthread.h" 3 4 # endif # 960 "/usr/include/pthread.h" 3 4 #endif # 961 "/usr/include/pthread.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 963 "/usr/include/pthread.h" 3 4 /* Functions for handling read-write locks. */ /* Initialize read-write lock RWLOCK using attributes ATTR, or use the default values if later is NULL. */ extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, const pthread_rwlockattr_t *__restrict __attr) __THROW __nonnull ((1)); /* Destroy read-write lock RWLOCK. */ extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) __THROW __nonnull ((1)); /* Acquire read lock for RWLOCK. */ extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); /* Try to acquire read lock for RWLOCK. */ extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); # ifdef __USE_XOPEN2K /* Try to acquire read lock for RWLOCK or return after specified time. */ # ifndef __USE_TIME64_REDIRECTS extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) __THROWNL __nonnull ((1, 2)); # else # 990 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT_NTHNL extern int __REDIRECT_NTHNL (pthread_rwlock_timedrdlock, (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime), __pthread_rwlock_timedrdlock64) __nonnull ((1, 2)); # else # 997 "/usr/include/pthread.h" 3 4 # define pthread_rwlock_timedrdlock __pthread_rwlock_timedrdlock64 # endif # 999 "/usr/include/pthread.h" 3 4 # endif # 1000 "/usr/include/pthread.h" 3 4 # endif # 1001 "/usr/include/pthread.h" 3 4 # ifdef __USE_GNU # ifndef __USE_TIME64_REDIRECTS extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime) __THROWNL __nonnull ((1, 3)); # else # 1009 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT_NTHNL extern int __REDIRECT_NTHNL (pthread_rwlock_clockrdlock, (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime), __pthread_rwlock_clockrdlock64) __nonnull ((1, 3)); # else # 1017 "/usr/include/pthread.h" 3 4 # define pthread_rwlock_clockrdlock __pthread_rwlock_clockrdlock64 # endif # 1019 "/usr/include/pthread.h" 3 4 # endif # 1020 "/usr/include/pthread.h" 3 4 # endif # 1021 "/usr/include/pthread.h" 3 4 /* Acquire write lock for RWLOCK. */ extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); /* Try to acquire write lock for RWLOCK. */ extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); # ifdef __USE_XOPEN2K /* Try to acquire write lock for RWLOCK or return after specified time. */ # ifndef __USE_TIME64_REDIRECTS extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime) __THROWNL __nonnull ((1, 2)); # else # 1037 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT_NTHNL extern int __REDIRECT_NTHNL (pthread_rwlock_timedwrlock, (pthread_rwlock_t *__restrict __rwlock, const struct timespec *__restrict __abstime), __pthread_rwlock_timedwrlock64) __nonnull ((1, 2)); # else # 1044 "/usr/include/pthread.h" 3 4 # define pthread_rwlock_timedwrlock __pthread_rwlock_timedwrlock64 # endif # 1046 "/usr/include/pthread.h" 3 4 # endif # 1047 "/usr/include/pthread.h" 3 4 # endif # 1048 "/usr/include/pthread.h" 3 4 # ifdef __USE_GNU # ifndef __USE_TIME64_REDIRECTS extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime) __THROWNL __nonnull ((1, 3)); # else # 1057 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT_NTHNL extern int __REDIRECT_NTHNL (pthread_rwlock_clockwrlock, (pthread_rwlock_t *__restrict __rwlock, clockid_t __clockid, const struct timespec *__restrict __abstime), __pthread_rwlock_clockwrlock64) __nonnull ((1, 3)); # else # 1065 "/usr/include/pthread.h" 3 4 # define pthread_rwlock_clockwrlock __pthread_rwlock_clockwrlock64 # endif # 1067 "/usr/include/pthread.h" 3 4 # endif # 1068 "/usr/include/pthread.h" 3 4 # endif # 1069 "/usr/include/pthread.h" 3 4 /* Unlock RWLOCK. */ extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); /* Functions for handling read-write lock attributes. */ /* Initialize attribute object ATTR with default values. */ extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) __THROW __nonnull ((1)); /* Destroy attribute object ATTR. */ extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW __nonnull ((1)); /* Return current setting of process-shared attribute of ATTR in PSHARED. */ extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pshared) __THROW __nonnull ((1, 2)); /* Set process-shared attribute of ATTR to PSHARED. */ extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, int __pshared) __THROW __nonnull ((1)); /* Return current setting of reader/writer preference. */ extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t * __restrict __attr, int *__restrict __pref) __THROW __nonnull ((1, 2)); /* Set reader/write preference. */ extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, int __pref) __THROW __nonnull ((1)); #endif # 1106 "/usr/include/pthread.h" 3 4 /* Functions for handling conditional variables. */ /* Initialize condition variable COND using attributes ATTR, or use the default values if later is NULL. */ extern int pthread_cond_init (pthread_cond_t *__restrict __cond, const pthread_condattr_t *__restrict __cond_attr) __THROW __nonnull ((1)); /* Destroy condition variable COND. */ extern int pthread_cond_destroy (pthread_cond_t *__cond) __THROW __nonnull ((1)); /* Wake up one thread waiting for condition variable COND. */ extern int pthread_cond_signal (pthread_cond_t *__cond) __THROWNL __nonnull ((1)); /* Wake up all threads waiting for condition variables COND. */ extern int pthread_cond_broadcast (pthread_cond_t *__cond) __THROWNL __nonnull ((1)); /* Wait for condition variable COND to be signaled or broadcast. MUTEX is assumed to be locked before. This function is a cancellation point and therefore not marked with __THROW. */ extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex) __nonnull ((1, 2)); /* Wait for condition variable COND to be signaled or broadcast until ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an absolute time specification; zero is the beginning of the epoch (00:00:00 GMT, January 1, 1970). This function is a cancellation point and therefore not marked with __THROW. */ # ifndef __USE_TIME64_REDIRECTS extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime) __nonnull ((1, 2, 3)); # else # 1150 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (pthread_cond_timedwait, (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, const struct timespec *__restrict __abstime), __pthread_cond_timedwait64) __nonnull ((1, 2, 3)); # else # 1158 "/usr/include/pthread.h" 3 4 # define pthread_cond_timedwait __pthread_cond_timedwait64 # endif # 1160 "/usr/include/pthread.h" 3 4 # endif # 1161 "/usr/include/pthread.h" 3 4 # ifdef __USE_GNU /* Wait for condition variable COND to be signaled or broadcast until ABSTIME measured by the specified clock. MUTEX is assumed to be locked before. CLOCK is the clock to use. ABSTIME is an absolute time specification against CLOCK's epoch. This function is a cancellation point and therefore not marked with __THROW. */ # ifndef __USE_TIME64_REDIRECTS extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __clockid_t __clock_id, const struct timespec *__restrict __abstime) __nonnull ((1, 2, 4)); # else # 1177 "/usr/include/pthread.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (pthread_cond_clockwait, (pthread_cond_t *__restrict __cond, pthread_mutex_t *__restrict __mutex, __clockid_t __clock_id, const struct timespec *__restrict __abstime), __pthread_cond_clockwait64) __nonnull ((1, 2, 4)); # else # 1186 "/usr/include/pthread.h" 3 4 # define pthread_cond_clockwait __pthread_cond_clockwait64 # endif # 1188 "/usr/include/pthread.h" 3 4 # endif # 1189 "/usr/include/pthread.h" 3 4 # endif # 1190 "/usr/include/pthread.h" 3 4 /* Functions for handling condition variable attributes. */ /* Initialize condition variable attribute ATTR. */ extern int pthread_condattr_init (pthread_condattr_t *__attr) __THROW __nonnull ((1)); /* Destroy condition variable attribute ATTR. */ extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW __nonnull ((1)); /* Get the process-shared flag of the condition variable attribute ATTR. */ extern int pthread_condattr_getpshared (const pthread_condattr_t * __restrict __attr, int *__restrict __pshared) __THROW __nonnull ((1, 2)); /* Set the process-shared flag of the condition variable attribute ATTR. */ extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, int __pshared) __THROW __nonnull ((1)); #ifdef __USE_XOPEN2K /* Get the clock selected for the condition variable attribute ATTR. */ extern int pthread_condattr_getclock (const pthread_condattr_t * __restrict __attr, __clockid_t *__restrict __clock_id) __THROW __nonnull ((1, 2)); /* Set the clock selected for the condition variable attribute ATTR. */ extern int pthread_condattr_setclock (pthread_condattr_t *__attr, __clockid_t __clock_id) __THROW __nonnull ((1)); #endif # 1223 "/usr/include/pthread.h" 3 4 #ifdef __USE_XOPEN2K /* Functions to handle spinlocks. */ /* Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can be shared between different processes. */ extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) __THROW __nonnull ((1)); /* Destroy the spinlock LOCK. */ extern int pthread_spin_destroy (pthread_spinlock_t *__lock) __THROW __nonnull ((1)); /* Wait until spinlock LOCK is retrieved. */ extern int pthread_spin_lock (pthread_spinlock_t *__lock) __THROWNL __nonnull ((1)); /* Try to lock spinlock LOCK. */ extern int pthread_spin_trylock (pthread_spinlock_t *__lock) __THROWNL __nonnull ((1)); /* Release spinlock LOCK. */ extern int pthread_spin_unlock (pthread_spinlock_t *__lock) __THROWNL __nonnull ((1)); /* Functions to handle barriers. */ /* Initialize BARRIER with the attributes in ATTR. The barrier is opened when COUNT waiters arrived. */ extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, const pthread_barrierattr_t *__restrict __attr, unsigned int __count) __THROW __nonnull ((1)); /* Destroy a previously dynamically initialized barrier BARRIER. */ extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW __nonnull ((1)); /* Wait on barrier BARRIER. */ extern int pthread_barrier_wait (pthread_barrier_t *__barrier) __THROWNL __nonnull ((1)); /* Initialize barrier attribute ATTR. */ extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) __THROW __nonnull ((1)); /* Destroy previously dynamically initialized barrier attribute ATTR. */ extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW __nonnull ((1)); /* Get the process-shared flag of the barrier attribute ATTR. */ extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t * __restrict __attr, int *__restrict __pshared) __THROW __nonnull ((1, 2)); /* Set the process-shared flag of the barrier attribute ATTR. */ extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, int __pshared) __THROW __nonnull ((1)); #endif # 1287 "/usr/include/pthread.h" 3 4 /* Functions for handling thread-specific data. */ /* Create a key value identifying a location in the thread-specific data area. Each thread maintains a distinct thread-specific data area. DESTR_FUNCTION, if non-NULL, is called with the value associated to that key when the key is destroyed. DESTR_FUNCTION is not called if the value associated is NULL when the key is destroyed. */ extern int pthread_key_create (pthread_key_t *__key, void (*__destr_function) (void *)) __THROW __nonnull ((1)); /* Destroy KEY. */ extern int pthread_key_delete (pthread_key_t __key) __THROW; /* Return current value of the thread-specific data slot identified by KEY. */ extern void *pthread_getspecific (pthread_key_t __key) __THROW; /* Store POINTER in the thread-specific data slot identified by KEY. */ extern int pthread_setspecific (pthread_key_t __key, const void *__pointer) __THROW __attr_access_none (2); #ifdef __USE_XOPEN2K /* Get ID of CPU-time clock for thread THREAD_ID. */ extern int pthread_getcpuclockid (pthread_t __thread_id, __clockid_t *__clock_id) __THROW __nonnull ((2)); #endif # 1319 "/usr/include/pthread.h" 3 4 /* Install handlers to be called when a new process is created with FORK. The PREPARE handler is called in the parent process just before performing FORK. The PARENT handler is called in the parent process just after FORK. The CHILD handler is called in the child process. Each of the three handlers can be NULL, meaning that no handler needs to be called at that point. PTHREAD_ATFORK can be called several times, in which case the PREPARE handlers are called in LIFO order (last added with PTHREAD_ATFORK, first called before FORK), and the PARENT and CHILD handlers are called in FIFO (first added, first called). */ extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) __THROW; #ifdef __USE_EXTERN_INLINES /* Optimizations. */ __extern_inline int __NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2)) { return __thread1 == __thread2; } #endif # 1345 "/usr/include/pthread.h" 3 4 __END_DECLS #endif /* pthread.h */ # 1349 "/usr/include/pthread.h" 3 4 #endif /* pthread.h expanded by -frewrite-includes */ # 45 "../mesa/src/c11/threads.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* unistd.h expanded by -frewrite-includes */ # include /* close, _exit */ #else /* unistd.h expanded by -frewrite-includes */ # 45 "../mesa/src/c11/threads.h" # 1 "/usr/include/unistd.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * POSIX Standard: 2.10 Symbolic Constants */ #ifndef _UNISTD_H #define _UNISTD_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/unistd.h" 3 4 # 26 "/usr/include/unistd.h" 3 4 __BEGIN_DECLS /* These may be used to determine what facilities are present at compile time. Their values can be obtained at run time from `sysconf'. */ #ifdef __USE_XOPEN2K8 /* POSIX Standard approved as ISO/IEC 9945-1 as of September 2008. */ # define _POSIX_VERSION 200809L #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 36 "/usr/include/unistd.h" 3 4 /* POSIX Standard approved as ISO/IEC 9945-1 as of December 2001. */ # define _POSIX_VERSION 200112L #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_POSIX199506 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 39 "/usr/include/unistd.h" 3 4 /* POSIX Standard approved as ISO/IEC 9945-1 as of June 1995. */ # define _POSIX_VERSION 199506L #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_POSIX199309 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 42 "/usr/include/unistd.h" 3 4 /* POSIX Standard approved as ISO/IEC 9945-1 as of September 1993. */ # define _POSIX_VERSION 199309L #else # 45 "/usr/include/unistd.h" 3 4 /* POSIX Standard approved as ISO/IEC 9945-1 as of September 1990. */ # define _POSIX_VERSION 199009L #endif # 48 "/usr/include/unistd.h" 3 4 /* These are not #ifdef __USE_POSIX2 because they are in the theoretically application-owned namespace. */ #ifdef __USE_XOPEN2K8 # define __POSIX2_THIS_VERSION 200809L /* The utilities on GNU systems also correspond to this version. */ #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 56 "/usr/include/unistd.h" 3 4 /* The utilities on GNU systems also correspond to this version. */ # define __POSIX2_THIS_VERSION 200112L #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_POSIX199506 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 59 "/usr/include/unistd.h" 3 4 /* The utilities on GNU systems also correspond to this version. */ # define __POSIX2_THIS_VERSION 199506L #else # 62 "/usr/include/unistd.h" 3 4 /* The utilities on GNU systems also correspond to this version. */ # define __POSIX2_THIS_VERSION 199209L #endif # 65 "/usr/include/unistd.h" 3 4 /* The utilities on GNU systems also correspond to this version. */ #define _POSIX2_VERSION __POSIX2_THIS_VERSION /* This symbol was required until the 2001 edition of POSIX. */ #define _POSIX2_C_VERSION __POSIX2_THIS_VERSION /* If defined, the implementation supports the C Language Bindings Option. */ #define _POSIX2_C_BIND __POSIX2_THIS_VERSION /* If defined, the implementation supports the C Language Development Utilities Option. */ #define _POSIX2_C_DEV __POSIX2_THIS_VERSION /* If defined, the implementation supports the Software Development Utilities Option. */ #define _POSIX2_SW_DEV __POSIX2_THIS_VERSION /* If defined, the implementation supports the creation of locales with the localedef utility. */ #define _POSIX2_LOCALEDEF __POSIX2_THIS_VERSION /* X/Open version number to which the library conforms. It is selectable. */ #ifdef __USE_XOPEN2K8 # define _XOPEN_VERSION 700 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 92 "/usr/include/unistd.h" 3 4 # define _XOPEN_VERSION 600 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __USE_UNIX98 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 94 "/usr/include/unistd.h" 3 4 # define _XOPEN_VERSION 500 #else # 96 "/usr/include/unistd.h" 3 4 # define _XOPEN_VERSION 4 #endif # 98 "/usr/include/unistd.h" 3 4 /* Commands and utilities from XPG4 are available. */ #define _XOPEN_XCU_VERSION 4 /* We are compatible with the old published standards as well. */ #define _XOPEN_XPG2 1 #define _XOPEN_XPG3 1 #define _XOPEN_XPG4 1 /* The X/Open Unix extensions are available. */ #define _XOPEN_UNIX 1 /* The enhanced internationalization capabilities according to XPG4.2 are present. */ #define _XOPEN_ENH_I18N 1 /* The legacy interfaces are also available. */ #define _XOPEN_LEGACY 1 /* Get values of POSIX options: If these symbols are defined, the corresponding features are always available. If not, they may be available sometimes. The current values can be obtained with `sysconf'. _POSIX_JOB_CONTROL Job control is supported. _POSIX_SAVED_IDS Processes have a saved set-user-ID and a saved set-group-ID. _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported. _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported. _POSIX_TIMERS POSIX.4 clocks and timers are supported. _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported. _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported. _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported. _POSIX_FSYNC The fsync function is present. _POSIX_MAPPED_FILES Mapping of files to memory is supported. _POSIX_MEMLOCK Locking of all memory is supported. _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported. _POSIX_MEMORY_PROTECTION Setting of memory protections is supported. _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported. _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported. _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported. _POSIX_THREADS POSIX.1c pthreads are supported. _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported. _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported. _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported. _POSIX_THREAD_PRIORITY_SCHEDULING POSIX.1c thread execution scheduling supported. _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported. _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported. _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported. _POSIX_PII Protocol-independent interfaces are supported. _POSIX_PII_XTI XTI protocol-indep. interfaces are supported. _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported. _POSIX_PII_INTERNET Internet family of protocols supported. _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported. _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported. _POSIX_PII_OSI ISO/OSI family of protocols supported. _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported. _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported. _POSIX_POLL Implementation supports `poll' function. _POSIX_SELECT Implementation supports `select' and `pselect'. _XOPEN_REALTIME X/Open realtime support is available. _XOPEN_REALTIME_THREADS X/Open realtime thread support is available. _XOPEN_SHM Shared memory interface according to XPG4.2. _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit int, long, pointer, and off_t types. _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit int, long, and pointer and off_t with at least 64 bits. _XBS5_LP64_OFF64 Implementation provides environment with 32-bit int, and 64-bit long, pointer, and off_t types. _XBS5_LPBIG_OFFBIG Implementation provides environment with at least 32 bits int and long, pointer, and off_t with at least 64 bits. If any of these symbols is defined as -1, the corresponding option is not true for any file. If any is defined as other than -1, the corresponding option is true for all files. If a symbol is not defined at all, the value for a specific file can be obtained from `pathconf' and `fpathconf'. _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change the owner of a file. `chown' can only be used to change the group ID of a file to a group of which the calling process is a member. _POSIX_NO_TRUNC Pathname components longer than NAME_MAX generate an error. _POSIX_VDISABLE If defined, if the value of an element of the `c_cc' member of `struct termios' is _POSIX_VDISABLE, no character will have the effect associated with that element. _POSIX_SYNC_IO Synchronous I/O may be performed. _POSIX_ASYNC_IO Asynchronous I/O may be performed. _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed. Support for the Large File Support interface is not generally available. If it is available the following constants are defined to one. _LFS64_LARGEFILE Low-level I/O supports large files. _LFS64_STDIO Standard I/O supports large files. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* posix_opt.h expanded by -frewrite-includes */ #include #else /* posix_opt.h expanded by -frewrite-includes */ # 202 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/posix_opt.h" 1 3 4 /* Define POSIX options for Linux. Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ #ifndef _BITS_POSIX_OPT_H #define _BITS_POSIX_OPT_H 1 /* Job control is supported. */ #define _POSIX_JOB_CONTROL 1 /* Processes have a saved set-user-ID and a saved set-group-ID. */ #define _POSIX_SAVED_IDS 1 /* Priority scheduling is not supported with the correct semantics, but GNU/Linux applications expect that the corresponding interfaces are available, even though the semantics do not meet the POSIX requirements. See glibc bug 14829. */ #define _POSIX_PRIORITY_SCHEDULING 200809L /* Synchronizing file data is supported. */ #define _POSIX_SYNCHRONIZED_IO 200809L /* The fsync function is present. */ #define _POSIX_FSYNC 200809L /* Mapping of files to memory is supported. */ #define _POSIX_MAPPED_FILES 200809L /* Locking of all memory is supported. */ #define _POSIX_MEMLOCK 200809L /* Locking of ranges of memory is supported. */ #define _POSIX_MEMLOCK_RANGE 200809L /* Setting of memory protections is supported. */ #define _POSIX_MEMORY_PROTECTION 200809L /* Some filesystems allow all users to change file ownership. */ #define _POSIX_CHOWN_RESTRICTED 0 /* `c_cc' member of 'struct termios' structure can be disabled by using the value _POSIX_VDISABLE. */ #define _POSIX_VDISABLE '\0' /* Filenames are not silently truncated. */ #define _POSIX_NO_TRUNC 1 /* X/Open realtime support is available. */ #define _XOPEN_REALTIME 1 /* X/Open thread realtime support is available. */ #define _XOPEN_REALTIME_THREADS 1 /* XPG4.2 shared memory is supported. */ #define _XOPEN_SHM 1 /* Tell we have POSIX threads. */ #define _POSIX_THREADS 200809L /* We have the reentrant functions described in POSIX. */ #define _POSIX_REENTRANT_FUNCTIONS 1 #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L /* We provide priority scheduling for threads. */ #define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L /* We support user-defined stack sizes. */ #define _POSIX_THREAD_ATTR_STACKSIZE 200809L /* We support user-defined stacks. */ #define _POSIX_THREAD_ATTR_STACKADDR 200809L /* We support priority inheritance. */ #define _POSIX_THREAD_PRIO_INHERIT 200809L /* We support priority protection, though only for non-robust mutexes. */ #define _POSIX_THREAD_PRIO_PROTECT 200809L #ifdef __USE_XOPEN2K8 /* We support priority inheritance for robust mutexes. */ # define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L /* We do not support priority protection for robust mutexes. */ # define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1 #endif # 101 "/usr/include/bits/posix_opt.h" 3 4 /* We support POSIX.1b semaphores. */ #define _POSIX_SEMAPHORES 200809L /* Real-time signals are supported. */ #define _POSIX_REALTIME_SIGNALS 200809L /* We support asynchronous I/O. */ #define _POSIX_ASYNCHRONOUS_IO 200809L #define _POSIX_ASYNC_IO 1 /* Alternative name for Unix98. */ #define _LFS_ASYNCHRONOUS_IO 1 /* Support for prioritization is also available. */ #define _POSIX_PRIORITIZED_IO 200809L /* The LFS support in asynchronous I/O is also available. */ #define _LFS64_ASYNCHRONOUS_IO 1 /* The rest of the LFS is also available. */ #define _LFS_LARGEFILE 1 #define _LFS64_LARGEFILE 1 #define _LFS64_STDIO 1 /* POSIX shared memory objects are implemented. */ #define _POSIX_SHARED_MEMORY_OBJECTS 200809L /* CPU-time clocks support needs to be checked at runtime. */ #define _POSIX_CPUTIME 0 /* Clock support in threads must be also checked at runtime. */ #define _POSIX_THREAD_CPUTIME 0 /* GNU libc provides regular expression handling. */ #define _POSIX_REGEXP 1 /* Reader/Writer locks are available. */ #define _POSIX_READER_WRITER_LOCKS 200809L /* We have a POSIX shell. */ #define _POSIX_SHELL 1 /* We support the Timeouts option. */ #define _POSIX_TIMEOUTS 200809L /* We support spinlocks. */ #define _POSIX_SPIN_LOCKS 200809L /* The `spawn' function family is supported. */ #define _POSIX_SPAWN 200809L /* We have POSIX timers. */ #define _POSIX_TIMERS 200809L /* The barrier functions are available. */ #define _POSIX_BARRIERS 200809L /* POSIX message queues are available. */ #define _POSIX_MESSAGE_PASSING 200809L /* Thread process-shared synchronization is supported. */ #define _POSIX_THREAD_PROCESS_SHARED 200809L /* The monotonic clock might be available. */ #define _POSIX_MONOTONIC_CLOCK 0 /* The clock selection interfaces are available. */ #define _POSIX_CLOCK_SELECTION 200809L /* Advisory information interfaces are available. */ #define _POSIX_ADVISORY_INFO 200809L /* IPv6 support is available. */ #define _POSIX_IPV6 200809L /* Raw socket support is available. */ #define _POSIX_RAW_SOCKETS 200809L /* We have at least one terminal. */ #define _POSIX2_CHAR_TERM 200809L /* Neither process nor thread sporadic server interfaces is available. */ #define _POSIX_SPORADIC_SERVER -1 #define _POSIX_THREAD_SPORADIC_SERVER -1 /* trace.h is not available. */ #define _POSIX_TRACE -1 #define _POSIX_TRACE_EVENT_FILTER -1 #define _POSIX_TRACE_INHERIT -1 #define _POSIX_TRACE_LOG -1 /* Typed memory objects are not available. */ #define _POSIX_TYPED_MEMORY_OBJECTS -1 #endif /* bits/posix_opt.h */ # 195 "/usr/include/bits/posix_opt.h" 3 4 #endif /* posix_opt.h expanded by -frewrite-includes */ # 203 "/usr/include/unistd.h" 2 3 4 /* Get the environment definitions from Unix98. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 206 "/usr/include/unistd.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* environments.h expanded by -frewrite-includes */ # include #else /* environments.h expanded by -frewrite-includes */ # 206 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/environments.h" 1 3 4 /* Copyright (C) 1999-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _UNISTD_H # error "Never include this file directly. Use instead" #endif # 21 "/usr/include/bits/environments.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 22 "/usr/include/bits/environments.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 23 "/usr/include/bits/environments.h" 2 3 4 /* This header should define the following symbols under the described situations. A value `1' means that the model is always supported, `-1' means it is never supported. Undefined means it cannot be statically decided. _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard and are available only for compatibility. */ #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/usr/include/bits/environments.h" 3 4 /* Environments with 32-bit wide pointers are optionally provided. Therefore following macros aren't defined: # undef _POSIX_V7_ILP32_OFF32 # undef _POSIX_V7_ILP32_OFFBIG # undef _POSIX_V6_ILP32_OFF32 # undef _POSIX_V6_ILP32_OFFBIG # undef _XBS5_ILP32_OFF32 # undef _XBS5_ILP32_OFFBIG and users need to check at runtime. */ /* We also have no use (for now) for an environment with bigger pointers and offsets. */ # define _POSIX_V7_LPBIG_OFFBIG -1 # define _POSIX_V6_LPBIG_OFFBIG -1 # define _XBS5_LPBIG_OFFBIG -1 /* By default we have 64-bit wide `long int', pointers and `off_t'. */ # define _POSIX_V7_LP64_OFF64 1 # define _POSIX_V6_LP64_OFF64 1 # define _XBS5_LP64_OFF64 1 #else /* __WORDSIZE == 32 */ # 66 "/usr/include/bits/environments.h" 3 4 /* We have 32-bit wide `int', `long int' and pointers and all platforms support LFS. -mx32 has 64-bit wide `off_t'. */ # define _POSIX_V7_ILP32_OFFBIG 1 # define _POSIX_V6_ILP32_OFFBIG 1 # define _XBS5_ILP32_OFFBIG 1 # ifndef __x86_64__ /* -m32 has 32-bit wide `off_t'. */ # define _POSIX_V7_ILP32_OFF32 1 # define _POSIX_V6_ILP32_OFF32 1 # define _XBS5_ILP32_OFF32 1 # endif # 79 "/usr/include/bits/environments.h" 3 4 /* We optionally provide an environment with the above size but an 64-bit side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ /* Environments with 64-bit wide pointers can be provided, so these macros aren't defined: # undef _POSIX_V7_LP64_OFF64 # undef _POSIX_V7_LPBIG_OFFBIG # undef _POSIX_V6_LP64_OFF64 # undef _POSIX_V6_LPBIG_OFFBIG # undef _XBS5_LP64_OFF64 # undef _XBS5_LPBIG_OFFBIG and sysconf tests for it at runtime. */ #endif /* __WORDSIZE == 32 */ # 94 "/usr/include/bits/environments.h" 3 4 #define __ILP32_OFF32_CFLAGS "-m32" #define __ILP32_OFF32_LDFLAGS "-m32" #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/environments.h" 3 4 # define __ILP32_OFFBIG_CFLAGS "-mx32" # define __ILP32_OFFBIG_LDFLAGS "-mx32" #else # 101 "/usr/include/bits/environments.h" 3 4 # define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" # define __ILP32_OFFBIG_LDFLAGS "-m32" #endif # 104 "/usr/include/bits/environments.h" 3 4 #define __LP64_OFF64_CFLAGS "-m64" #define __LP64_OFF64_LDFLAGS "-m64" #endif /* environments.h expanded by -frewrite-includes */ # 207 "/usr/include/unistd.h" 2 3 4 #endif # 208 "/usr/include/unistd.h" 3 4 /* Standard file descriptors. */ #define STDIN_FILENO 0 /* Standard input. */ #define STDOUT_FILENO 1 /* Standard output. */ #define STDERR_FILENO 2 /* Standard error output. */ /* All functions that are not declared anywhere else. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 217 "/usr/include/unistd.h" 3 4 # 218 "/usr/include/unistd.h" 3 4 #ifndef __ssize_t_defined typedef __ssize_t ssize_t; # define __ssize_t_defined #endif # 223 "/usr/include/unistd.h" 3 4 #define __need_size_t #define __need_NULL #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 226 "/usr/include/unistd.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 227 "/usr/include/unistd.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 229 "/usr/include/unistd.h" 3 4 /* The Single Unix specification says that some more types are available here. */ # ifndef __gid_t_defined typedef __gid_t gid_t; # define __gid_t_defined # endif # 235 "/usr/include/unistd.h" 3 4 # ifndef __uid_t_defined typedef __uid_t uid_t; # define __uid_t_defined # endif # 240 "/usr/include/unistd.h" 3 4 # ifndef __off_t_defined # ifndef __USE_FILE_OFFSET64 typedef __off_t off_t; # else # 245 "/usr/include/unistd.h" 3 4 typedef __off64_t off_t; # endif # 247 "/usr/include/unistd.h" 3 4 # define __off_t_defined # endif # 249 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __USE_LARGEFILE64 && !defined __off64_t_defined #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 250 "/usr/include/unistd.h" 3 4 typedef __off64_t off64_t; # define __off64_t_defined # endif # 253 "/usr/include/unistd.h" 3 4 # ifndef __useconds_t_defined typedef __useconds_t useconds_t; # define __useconds_t_defined # endif # 258 "/usr/include/unistd.h" 3 4 # ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined # endif # 263 "/usr/include/unistd.h" 3 4 #endif /* X/Open */ # 264 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 266 "/usr/include/unistd.h" 3 4 # ifndef __intptr_t_defined typedef __intptr_t intptr_t; # define __intptr_t_defined # endif # 270 "/usr/include/unistd.h" 3 4 #endif # 271 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 273 "/usr/include/unistd.h" 3 4 # ifndef __socklen_t_defined typedef __socklen_t socklen_t; # define __socklen_t_defined # endif # 277 "/usr/include/unistd.h" 3 4 #endif # 278 "/usr/include/unistd.h" 3 4 /* Values for the second argument to access. These may be OR'd together. */ #define R_OK 4 /* Test for read permission. */ #define W_OK 2 /* Test for write permission. */ #define X_OK 1 /* Test for execute permission. */ #define F_OK 0 /* Test for existence. */ /* Test for access to NAME using the real UID and real GID. */ extern int access (const char *__name, int __type) __THROW __nonnull ((1)); #ifdef __USE_GNU /* Test for access to NAME using the effective UID and GID (as normal file operations use). */ extern int euidaccess (const char *__name, int __type) __THROW __nonnull ((1)); /* An alias for `euidaccess', used by some other systems. */ extern int eaccess (const char *__name, int __type) __THROW __nonnull ((1)); /* Execute program relative to a directory file descriptor. */ extern int execveat (int __fd, const char *__path, char *const __argv[], char *const __envp[], int __flags) __THROW __nonnull ((2, 3)); #endif # 304 "/usr/include/unistd.h" 3 4 #ifdef __USE_ATFILE /* Test for access to FILE relative to the directory FD is open on. If AT_EACCESS is set in FLAG, then use effective IDs like `eaccess', otherwise use real IDs like `access'. */ extern int faccessat (int __fd, const char *__file, int __type, int __flag) __THROW __nonnull ((2)) __wur; #endif /* Use GNU. */ # 312 "/usr/include/unistd.h" 3 4 /* Values for the WHENCE argument to lseek. */ #ifndef _STDIO_H /* has the same definitions. */ # define SEEK_SET 0 /* Seek from beginning of file. */ # define SEEK_CUR 1 /* Seek from current position. */ # define SEEK_END 2 /* Seek from end of file. */ # ifdef __USE_GNU # define SEEK_DATA 3 /* Seek to next data. */ # define SEEK_HOLE 4 /* Seek to next hole. */ # endif # 323 "/usr/include/unistd.h" 3 4 #endif # 324 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC && !defined L_SET #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 326 "/usr/include/unistd.h" 3 4 /* Old BSD names for the same constants; just for compatibility. */ # define L_SET SEEK_SET # define L_INCR SEEK_CUR # define L_XTND SEEK_END #endif # 331 "/usr/include/unistd.h" 3 4 /* Move FD's file position to OFFSET bytes from the beginning of the file (if WHENCE is SEEK_SET), the current position (if WHENCE is SEEK_CUR), or the end of the file (if WHENCE is SEEK_END). Return the new file position. */ #ifndef __USE_FILE_OFFSET64 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW; #else # 341 "/usr/include/unistd.h" 3 4 # ifdef __REDIRECT_NTH extern __off64_t __REDIRECT_NTH (lseek, (int __fd, __off64_t __offset, int __whence), lseek64); # else # 346 "/usr/include/unistd.h" 3 4 # define lseek lseek64 # endif # 348 "/usr/include/unistd.h" 3 4 #endif # 349 "/usr/include/unistd.h" 3 4 #ifdef __USE_LARGEFILE64 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) __THROW; #endif # 353 "/usr/include/unistd.h" 3 4 /* Close the file descriptor FD. This function is a cancellation point and therefore not marked with __THROW. */ extern int close (int __fd); #ifdef __USE_MISC /* Close all open file descriptors greater than or equal to LOWFD. Negative LOWFD is clamped to 0. */ extern void closefrom (int __lowfd) __THROW; #endif # 365 "/usr/include/unistd.h" 3 4 /* Read NBYTES into BUF from FD. Return the number read, -1 for errors or 0 for EOF. This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur __fortified_attr_access (__write_only__, 2, 3); /* Write N bytes of BUF to FD. Return the number written, or -1. This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur __attr_access ((__read_only__, 2, 3)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 382 "/usr/include/unistd.h" 3 4 # ifndef __USE_FILE_OFFSET64 /* Read NBYTES into BUF from FD at the given position OFFSET without changing the file pointer. Return the number read, -1 for errors or 0 for EOF. This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __wur __fortified_attr_access (__write_only__, 2, 3); /* Write N bytes of BUF to FD at the given position OFFSET without changing the file pointer. Return the number written, or -1. This function is a cancellation point and therefore not marked with __THROW. */ extern ssize_t pwrite (int __fd, const void *__buf, size_t __n, __off_t __offset) __wur __attr_access ((__read_only__, 2, 3)); # else # 403 "/usr/include/unistd.h" 3 4 # ifdef __REDIRECT extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes, __off64_t __offset), pread64) __wur __fortified_attr_access (__write_only__, 2, 3); extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf, size_t __nbytes, __off64_t __offset), pwrite64) __wur __attr_access ((__read_only__, 2, 3)); # else # 413 "/usr/include/unistd.h" 3 4 # define pread pread64 # define pwrite pwrite64 # endif # 416 "/usr/include/unistd.h" 3 4 # endif # 417 "/usr/include/unistd.h" 3 4 # ifdef __USE_LARGEFILE64 /* Read NBYTES into BUF from FD at the given position OFFSET without changing the file pointer. Return the number read, -1 for errors or 0 for EOF. */ extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __wur __fortified_attr_access (__write_only__, 2, 3); /* Write N bytes of BUF to FD at the given position OFFSET without changing the file pointer. Return the number written, or -1. */ extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n, __off64_t __offset) __wur __attr_access ((__read_only__, 2, 3)); # endif # 431 "/usr/include/unistd.h" 3 4 #endif # 432 "/usr/include/unistd.h" 3 4 /* Create a one-way communication channel (pipe). If successful, two file descriptors are stored in PIPEDES; bytes written on PIPEDES[1] can be read from PIPEDES[0]. Returns 0 if successful, -1 if not. */ extern int pipe (int __pipedes[2]) __THROW __wur; #ifdef __USE_GNU /* Same as pipe but apply flags passed in FLAGS to the new file descriptors. */ extern int pipe2 (int __pipedes[2], int __flags) __THROW __wur; #endif # 444 "/usr/include/unistd.h" 3 4 /* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM. If SECONDS is zero, any currently scheduled alarm will be cancelled. The function returns the number of seconds remaining until the last alarm scheduled would have signaled, or zero if there wasn't one. There is no return value to indicate an error, but you can set `errno' to 0 and check its value after calling `alarm', and this might tell you. The signal may come late due to processor scheduling. */ extern unsigned int alarm (unsigned int __seconds) __THROW; /* Make the process sleep for SECONDS seconds, or until a signal arrives and is not ignored. The function returns the number of seconds less than SECONDS which it actually slept (thus zero if it slept the full time). If a signal handler does a `longjmp' or modifies the handling of the SIGALRM signal while inside `sleep' call, the handling of the SIGALRM signal afterwards is undefined. There is no return value to indicate error, but if `sleep' returns SECONDS, it probably didn't work. This function is a cancellation point and therefore not marked with __THROW. */ extern unsigned int sleep (unsigned int __seconds); #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 468 "/usr/include/unistd.h" 3 4 /* Set an alarm to go off (generating a SIGALRM signal) in VALUE microseconds. If INTERVAL is nonzero, when the alarm goes off, the timer is reset to go off every INTERVAL microseconds thereafter. Returns the number of microseconds remaining before the alarm. */ extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) __THROW; /* Sleep USECONDS microseconds, or until a signal arrives that is not blocked or ignored. This function is a cancellation point and therefore not marked with __THROW. */ extern int usleep (__useconds_t __useconds); #endif # 482 "/usr/include/unistd.h" 3 4 /* Suspend the process until a signal arrives. This always returns -1 and sets `errno' to EINTR. This function is a cancellation point and therefore not marked with __THROW. */ extern int pause (void); /* Change the owner and group of FILE. */ extern int chown (const char *__file, __uid_t __owner, __gid_t __group) __THROW __nonnull ((1)) __wur; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 497 "/usr/include/unistd.h" 3 4 /* Change the owner and group of the file that FD is open on. */ extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __THROW __wur; /* Change owner and group of FILE, if it is a symbolic link the ownership of the symbolic link is changed. */ extern int lchown (const char *__file, __uid_t __owner, __gid_t __group) __THROW __nonnull ((1)) __wur; #endif /* Use X/Open Unix. */ # 507 "/usr/include/unistd.h" 3 4 #ifdef __USE_ATFILE /* Change the owner and group of FILE relative to the directory FD is open on. */ extern int fchownat (int __fd, const char *__file, __uid_t __owner, __gid_t __group, int __flag) __THROW __nonnull ((2)) __wur; #endif /* Use GNU. */ # 515 "/usr/include/unistd.h" 3 4 /* Change the process's working directory to PATH. */ extern int chdir (const char *__path) __THROW __nonnull ((1)) __wur; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 520 "/usr/include/unistd.h" 3 4 /* Change the process's working directory to the one FD is open on. */ extern int fchdir (int __fd) __THROW __wur; #endif # 523 "/usr/include/unistd.h" 3 4 /* Get the pathname of the current working directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined or SIZE was too small. If successful, returns BUF. In GNU, if BUF is NULL, an array is allocated with `malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ extern char *getcwd (char *__buf, size_t __size) __THROW __wur; #ifdef __USE_GNU /* Return a malloc'd string containing the current directory name. If the environment variable `PWD' is set, and its value is correct, that value is used. */ extern char *get_current_dir_name (void) __THROW; #endif # 539 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 542 "/usr/include/unistd.h" 3 4 /* Put the absolute pathname of the current working directory in BUF. If successful, return BUF. If not, put an error message in BUF and return NULL. BUF should be at least PATH_MAX bytes long. */ extern char *getwd (char *__buf) __THROW __nonnull ((1)) __attribute_deprecated__ __wur __attr_access ((__write_only__, 1)); #endif # 549 "/usr/include/unistd.h" 3 4 /* Duplicate FD, returning a new file descriptor on the same file. */ extern int dup (int __fd) __THROW __wur; /* Duplicate FD to FD2, closing FD2 and making it open on the same file. */ extern int dup2 (int __fd, int __fd2) __THROW; #ifdef __USE_GNU /* Duplicate FD to FD2, closing FD2 and making it open on the same file while setting flags according to FLAGS. */ extern int dup3 (int __fd, int __fd2, int __flags) __THROW; #endif # 562 "/usr/include/unistd.h" 3 4 /* NULL-terminated array of "NAME=VALUE" environment variables. */ extern char **__environ; #ifdef __USE_GNU extern char **environ; #endif # 568 "/usr/include/unistd.h" 3 4 /* Replace the current process, executing PATH with arguments ARGV and environment ENVP. ARGV and ENVP are terminated by NULL pointers. */ extern int execve (const char *__path, char *const __argv[], char *const __envp[]) __THROW __nonnull ((1, 2)); #ifdef __USE_XOPEN2K8 /* Execute the file FD refers to, overlaying the running program image. ARGV and ENVP are passed to the new program, as for `execve'. */ extern int fexecve (int __fd, char *const __argv[], char *const __envp[]) __THROW __nonnull ((2)); #endif # 581 "/usr/include/unistd.h" 3 4 /* Execute PATH with arguments ARGV and environment from `environ'. */ extern int execv (const char *__path, char *const __argv[]) __THROW __nonnull ((1, 2)); /* Execute PATH with all arguments after PATH until a NULL pointer, and the argument after that for environment. */ extern int execle (const char *__path, const char *__arg, ...) __THROW __nonnull ((1, 2)); /* Execute PATH with all arguments after PATH until a NULL pointer and environment from `environ'. */ extern int execl (const char *__path, const char *__arg, ...) __THROW __nonnull ((1, 2)); /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with arguments ARGV and environment from `environ'. */ extern int execvp (const char *__file, char *const __argv[]) __THROW __nonnull ((1, 2)); /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with all arguments after FILE until a NULL pointer and environment from `environ'. */ extern int execlp (const char *__file, const char *__arg, ...) __THROW __nonnull ((1, 2)); #ifdef __USE_GNU /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with arguments ARGV and environment from `environ'. */ extern int execvpe (const char *__file, char *const __argv[], char *const __envp[]) __THROW __nonnull ((1, 2)); #endif # 615 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 618 "/usr/include/unistd.h" 3 4 /* Add INC to priority of the current process. */ extern int nice (int __inc) __THROW __wur; #endif # 621 "/usr/include/unistd.h" 3 4 /* Terminate program execution with the low-order 8 bits of STATUS. */ extern void _exit (int __status) __attribute__ ((__noreturn__)); /* Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf'; the `_SC_*' symbols for the NAME argument to `sysconf'; and the `_CS_*' symbols for the NAME argument to `confstr'. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* confname.h expanded by -frewrite-includes */ #include #else /* confname.h expanded by -frewrite-includes */ # 630 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/confname.h" 1 3 4 /* `sysconf', `pathconf', and `confstr' NAME values. Generic version. Copyright (C) 1993-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _UNISTD_H # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/confname.h" 3 4 /* Values for the NAME argument to `pathconf' and `fpathconf'. */ enum { _PC_LINK_MAX, #define _PC_LINK_MAX _PC_LINK_MAX _PC_MAX_CANON, #define _PC_MAX_CANON _PC_MAX_CANON _PC_MAX_INPUT, #define _PC_MAX_INPUT _PC_MAX_INPUT _PC_NAME_MAX, #define _PC_NAME_MAX _PC_NAME_MAX _PC_PATH_MAX, #define _PC_PATH_MAX _PC_PATH_MAX _PC_PIPE_BUF, #define _PC_PIPE_BUF _PC_PIPE_BUF _PC_CHOWN_RESTRICTED, #define _PC_CHOWN_RESTRICTED _PC_CHOWN_RESTRICTED _PC_NO_TRUNC, #define _PC_NO_TRUNC _PC_NO_TRUNC _PC_VDISABLE, #define _PC_VDISABLE _PC_VDISABLE _PC_SYNC_IO, #define _PC_SYNC_IO _PC_SYNC_IO _PC_ASYNC_IO, #define _PC_ASYNC_IO _PC_ASYNC_IO _PC_PRIO_IO, #define _PC_PRIO_IO _PC_PRIO_IO _PC_SOCK_MAXBUF, #define _PC_SOCK_MAXBUF _PC_SOCK_MAXBUF _PC_FILESIZEBITS, #define _PC_FILESIZEBITS _PC_FILESIZEBITS _PC_REC_INCR_XFER_SIZE, #define _PC_REC_INCR_XFER_SIZE _PC_REC_INCR_XFER_SIZE _PC_REC_MAX_XFER_SIZE, #define _PC_REC_MAX_XFER_SIZE _PC_REC_MAX_XFER_SIZE _PC_REC_MIN_XFER_SIZE, #define _PC_REC_MIN_XFER_SIZE _PC_REC_MIN_XFER_SIZE _PC_REC_XFER_ALIGN, #define _PC_REC_XFER_ALIGN _PC_REC_XFER_ALIGN _PC_ALLOC_SIZE_MIN, #define _PC_ALLOC_SIZE_MIN _PC_ALLOC_SIZE_MIN _PC_SYMLINK_MAX, #define _PC_SYMLINK_MAX _PC_SYMLINK_MAX _PC_2_SYMLINKS #define _PC_2_SYMLINKS _PC_2_SYMLINKS }; /* Values for the argument to `sysconf'. */ enum { _SC_ARG_MAX, #define _SC_ARG_MAX _SC_ARG_MAX _SC_CHILD_MAX, #define _SC_CHILD_MAX _SC_CHILD_MAX _SC_CLK_TCK, #define _SC_CLK_TCK _SC_CLK_TCK _SC_NGROUPS_MAX, #define _SC_NGROUPS_MAX _SC_NGROUPS_MAX _SC_OPEN_MAX, #define _SC_OPEN_MAX _SC_OPEN_MAX _SC_STREAM_MAX, #define _SC_STREAM_MAX _SC_STREAM_MAX _SC_TZNAME_MAX, #define _SC_TZNAME_MAX _SC_TZNAME_MAX _SC_JOB_CONTROL, #define _SC_JOB_CONTROL _SC_JOB_CONTROL _SC_SAVED_IDS, #define _SC_SAVED_IDS _SC_SAVED_IDS _SC_REALTIME_SIGNALS, #define _SC_REALTIME_SIGNALS _SC_REALTIME_SIGNALS _SC_PRIORITY_SCHEDULING, #define _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING _SC_TIMERS, #define _SC_TIMERS _SC_TIMERS _SC_ASYNCHRONOUS_IO, #define _SC_ASYNCHRONOUS_IO _SC_ASYNCHRONOUS_IO _SC_PRIORITIZED_IO, #define _SC_PRIORITIZED_IO _SC_PRIORITIZED_IO _SC_SYNCHRONIZED_IO, #define _SC_SYNCHRONIZED_IO _SC_SYNCHRONIZED_IO _SC_FSYNC, #define _SC_FSYNC _SC_FSYNC _SC_MAPPED_FILES, #define _SC_MAPPED_FILES _SC_MAPPED_FILES _SC_MEMLOCK, #define _SC_MEMLOCK _SC_MEMLOCK _SC_MEMLOCK_RANGE, #define _SC_MEMLOCK_RANGE _SC_MEMLOCK_RANGE _SC_MEMORY_PROTECTION, #define _SC_MEMORY_PROTECTION _SC_MEMORY_PROTECTION _SC_MESSAGE_PASSING, #define _SC_MESSAGE_PASSING _SC_MESSAGE_PASSING _SC_SEMAPHORES, #define _SC_SEMAPHORES _SC_SEMAPHORES _SC_SHARED_MEMORY_OBJECTS, #define _SC_SHARED_MEMORY_OBJECTS _SC_SHARED_MEMORY_OBJECTS _SC_AIO_LISTIO_MAX, #define _SC_AIO_LISTIO_MAX _SC_AIO_LISTIO_MAX _SC_AIO_MAX, #define _SC_AIO_MAX _SC_AIO_MAX _SC_AIO_PRIO_DELTA_MAX, #define _SC_AIO_PRIO_DELTA_MAX _SC_AIO_PRIO_DELTA_MAX _SC_DELAYTIMER_MAX, #define _SC_DELAYTIMER_MAX _SC_DELAYTIMER_MAX _SC_MQ_OPEN_MAX, #define _SC_MQ_OPEN_MAX _SC_MQ_OPEN_MAX _SC_MQ_PRIO_MAX, #define _SC_MQ_PRIO_MAX _SC_MQ_PRIO_MAX _SC_VERSION, #define _SC_VERSION _SC_VERSION _SC_PAGESIZE, #define _SC_PAGESIZE _SC_PAGESIZE #define _SC_PAGE_SIZE _SC_PAGESIZE _SC_RTSIG_MAX, #define _SC_RTSIG_MAX _SC_RTSIG_MAX _SC_SEM_NSEMS_MAX, #define _SC_SEM_NSEMS_MAX _SC_SEM_NSEMS_MAX _SC_SEM_VALUE_MAX, #define _SC_SEM_VALUE_MAX _SC_SEM_VALUE_MAX _SC_SIGQUEUE_MAX, #define _SC_SIGQUEUE_MAX _SC_SIGQUEUE_MAX _SC_TIMER_MAX, #define _SC_TIMER_MAX _SC_TIMER_MAX /* Values for the argument to `sysconf' corresponding to _POSIX2_* symbols. */ _SC_BC_BASE_MAX, #define _SC_BC_BASE_MAX _SC_BC_BASE_MAX _SC_BC_DIM_MAX, #define _SC_BC_DIM_MAX _SC_BC_DIM_MAX _SC_BC_SCALE_MAX, #define _SC_BC_SCALE_MAX _SC_BC_SCALE_MAX _SC_BC_STRING_MAX, #define _SC_BC_STRING_MAX _SC_BC_STRING_MAX _SC_COLL_WEIGHTS_MAX, #define _SC_COLL_WEIGHTS_MAX _SC_COLL_WEIGHTS_MAX _SC_EQUIV_CLASS_MAX, #define _SC_EQUIV_CLASS_MAX _SC_EQUIV_CLASS_MAX _SC_EXPR_NEST_MAX, #define _SC_EXPR_NEST_MAX _SC_EXPR_NEST_MAX _SC_LINE_MAX, #define _SC_LINE_MAX _SC_LINE_MAX _SC_RE_DUP_MAX, #define _SC_RE_DUP_MAX _SC_RE_DUP_MAX _SC_CHARCLASS_NAME_MAX, #define _SC_CHARCLASS_NAME_MAX _SC_CHARCLASS_NAME_MAX _SC_2_VERSION, #define _SC_2_VERSION _SC_2_VERSION _SC_2_C_BIND, #define _SC_2_C_BIND _SC_2_C_BIND _SC_2_C_DEV, #define _SC_2_C_DEV _SC_2_C_DEV _SC_2_FORT_DEV, #define _SC_2_FORT_DEV _SC_2_FORT_DEV _SC_2_FORT_RUN, #define _SC_2_FORT_RUN _SC_2_FORT_RUN _SC_2_SW_DEV, #define _SC_2_SW_DEV _SC_2_SW_DEV _SC_2_LOCALEDEF, #define _SC_2_LOCALEDEF _SC_2_LOCALEDEF _SC_PII, #define _SC_PII _SC_PII _SC_PII_XTI, #define _SC_PII_XTI _SC_PII_XTI _SC_PII_SOCKET, #define _SC_PII_SOCKET _SC_PII_SOCKET _SC_PII_INTERNET, #define _SC_PII_INTERNET _SC_PII_INTERNET _SC_PII_OSI, #define _SC_PII_OSI _SC_PII_OSI _SC_POLL, #define _SC_POLL _SC_POLL _SC_SELECT, #define _SC_SELECT _SC_SELECT _SC_UIO_MAXIOV, #define _SC_UIO_MAXIOV _SC_UIO_MAXIOV _SC_IOV_MAX = _SC_UIO_MAXIOV, #define _SC_IOV_MAX _SC_IOV_MAX _SC_PII_INTERNET_STREAM, #define _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_STREAM _SC_PII_INTERNET_DGRAM, #define _SC_PII_INTERNET_DGRAM _SC_PII_INTERNET_DGRAM _SC_PII_OSI_COTS, #define _SC_PII_OSI_COTS _SC_PII_OSI_COTS _SC_PII_OSI_CLTS, #define _SC_PII_OSI_CLTS _SC_PII_OSI_CLTS _SC_PII_OSI_M, #define _SC_PII_OSI_M _SC_PII_OSI_M _SC_T_IOV_MAX, #define _SC_T_IOV_MAX _SC_T_IOV_MAX /* Values according to POSIX 1003.1c (POSIX threads). */ _SC_THREADS, #define _SC_THREADS _SC_THREADS _SC_THREAD_SAFE_FUNCTIONS, #define _SC_THREAD_SAFE_FUNCTIONS _SC_THREAD_SAFE_FUNCTIONS _SC_GETGR_R_SIZE_MAX, #define _SC_GETGR_R_SIZE_MAX _SC_GETGR_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX, #define _SC_GETPW_R_SIZE_MAX _SC_GETPW_R_SIZE_MAX _SC_LOGIN_NAME_MAX, #define _SC_LOGIN_NAME_MAX _SC_LOGIN_NAME_MAX _SC_TTY_NAME_MAX, #define _SC_TTY_NAME_MAX _SC_TTY_NAME_MAX _SC_THREAD_DESTRUCTOR_ITERATIONS, #define _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_DESTRUCTOR_ITERATIONS _SC_THREAD_KEYS_MAX, #define _SC_THREAD_KEYS_MAX _SC_THREAD_KEYS_MAX _SC_THREAD_STACK_MIN, #define _SC_THREAD_STACK_MIN _SC_THREAD_STACK_MIN _SC_THREAD_THREADS_MAX, #define _SC_THREAD_THREADS_MAX _SC_THREAD_THREADS_MAX _SC_THREAD_ATTR_STACKADDR, #define _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKADDR _SC_THREAD_ATTR_STACKSIZE, #define _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_ATTR_STACKSIZE _SC_THREAD_PRIORITY_SCHEDULING, #define _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIORITY_SCHEDULING _SC_THREAD_PRIO_INHERIT, #define _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_INHERIT _SC_THREAD_PRIO_PROTECT, #define _SC_THREAD_PRIO_PROTECT _SC_THREAD_PRIO_PROTECT _SC_THREAD_PROCESS_SHARED, #define _SC_THREAD_PROCESS_SHARED _SC_THREAD_PROCESS_SHARED _SC_NPROCESSORS_CONF, #define _SC_NPROCESSORS_CONF _SC_NPROCESSORS_CONF _SC_NPROCESSORS_ONLN, #define _SC_NPROCESSORS_ONLN _SC_NPROCESSORS_ONLN _SC_PHYS_PAGES, #define _SC_PHYS_PAGES _SC_PHYS_PAGES _SC_AVPHYS_PAGES, #define _SC_AVPHYS_PAGES _SC_AVPHYS_PAGES _SC_ATEXIT_MAX, #define _SC_ATEXIT_MAX _SC_ATEXIT_MAX _SC_PASS_MAX, #define _SC_PASS_MAX _SC_PASS_MAX _SC_XOPEN_VERSION, #define _SC_XOPEN_VERSION _SC_XOPEN_VERSION _SC_XOPEN_XCU_VERSION, #define _SC_XOPEN_XCU_VERSION _SC_XOPEN_XCU_VERSION _SC_XOPEN_UNIX, #define _SC_XOPEN_UNIX _SC_XOPEN_UNIX _SC_XOPEN_CRYPT, #define _SC_XOPEN_CRYPT _SC_XOPEN_CRYPT _SC_XOPEN_ENH_I18N, #define _SC_XOPEN_ENH_I18N _SC_XOPEN_ENH_I18N _SC_XOPEN_SHM, #define _SC_XOPEN_SHM _SC_XOPEN_SHM _SC_2_CHAR_TERM, #define _SC_2_CHAR_TERM _SC_2_CHAR_TERM _SC_2_C_VERSION, #define _SC_2_C_VERSION _SC_2_C_VERSION _SC_2_UPE, #define _SC_2_UPE _SC_2_UPE _SC_XOPEN_XPG2, #define _SC_XOPEN_XPG2 _SC_XOPEN_XPG2 _SC_XOPEN_XPG3, #define _SC_XOPEN_XPG3 _SC_XOPEN_XPG3 _SC_XOPEN_XPG4, #define _SC_XOPEN_XPG4 _SC_XOPEN_XPG4 _SC_CHAR_BIT, #define _SC_CHAR_BIT _SC_CHAR_BIT _SC_CHAR_MAX, #define _SC_CHAR_MAX _SC_CHAR_MAX _SC_CHAR_MIN, #define _SC_CHAR_MIN _SC_CHAR_MIN _SC_INT_MAX, #define _SC_INT_MAX _SC_INT_MAX _SC_INT_MIN, #define _SC_INT_MIN _SC_INT_MIN _SC_LONG_BIT, #define _SC_LONG_BIT _SC_LONG_BIT _SC_WORD_BIT, #define _SC_WORD_BIT _SC_WORD_BIT _SC_MB_LEN_MAX, #define _SC_MB_LEN_MAX _SC_MB_LEN_MAX _SC_NZERO, #define _SC_NZERO _SC_NZERO _SC_SSIZE_MAX, #define _SC_SSIZE_MAX _SC_SSIZE_MAX _SC_SCHAR_MAX, #define _SC_SCHAR_MAX _SC_SCHAR_MAX _SC_SCHAR_MIN, #define _SC_SCHAR_MIN _SC_SCHAR_MIN _SC_SHRT_MAX, #define _SC_SHRT_MAX _SC_SHRT_MAX _SC_SHRT_MIN, #define _SC_SHRT_MIN _SC_SHRT_MIN _SC_UCHAR_MAX, #define _SC_UCHAR_MAX _SC_UCHAR_MAX _SC_UINT_MAX, #define _SC_UINT_MAX _SC_UINT_MAX _SC_ULONG_MAX, #define _SC_ULONG_MAX _SC_ULONG_MAX _SC_USHRT_MAX, #define _SC_USHRT_MAX _SC_USHRT_MAX _SC_NL_ARGMAX, #define _SC_NL_ARGMAX _SC_NL_ARGMAX _SC_NL_LANGMAX, #define _SC_NL_LANGMAX _SC_NL_LANGMAX _SC_NL_MSGMAX, #define _SC_NL_MSGMAX _SC_NL_MSGMAX _SC_NL_NMAX, #define _SC_NL_NMAX _SC_NL_NMAX _SC_NL_SETMAX, #define _SC_NL_SETMAX _SC_NL_SETMAX _SC_NL_TEXTMAX, #define _SC_NL_TEXTMAX _SC_NL_TEXTMAX _SC_XBS5_ILP32_OFF32, #define _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFF32 _SC_XBS5_ILP32_OFFBIG, #define _SC_XBS5_ILP32_OFFBIG _SC_XBS5_ILP32_OFFBIG _SC_XBS5_LP64_OFF64, #define _SC_XBS5_LP64_OFF64 _SC_XBS5_LP64_OFF64 _SC_XBS5_LPBIG_OFFBIG, #define _SC_XBS5_LPBIG_OFFBIG _SC_XBS5_LPBIG_OFFBIG _SC_XOPEN_LEGACY, #define _SC_XOPEN_LEGACY _SC_XOPEN_LEGACY _SC_XOPEN_REALTIME, #define _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME _SC_XOPEN_REALTIME_THREADS, #define _SC_XOPEN_REALTIME_THREADS _SC_XOPEN_REALTIME_THREADS _SC_ADVISORY_INFO, #define _SC_ADVISORY_INFO _SC_ADVISORY_INFO _SC_BARRIERS, #define _SC_BARRIERS _SC_BARRIERS _SC_BASE, #define _SC_BASE _SC_BASE _SC_C_LANG_SUPPORT, #define _SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT _SC_C_LANG_SUPPORT_R, #define _SC_C_LANG_SUPPORT_R _SC_C_LANG_SUPPORT_R _SC_CLOCK_SELECTION, #define _SC_CLOCK_SELECTION _SC_CLOCK_SELECTION _SC_CPUTIME, #define _SC_CPUTIME _SC_CPUTIME _SC_THREAD_CPUTIME, #define _SC_THREAD_CPUTIME _SC_THREAD_CPUTIME _SC_DEVICE_IO, #define _SC_DEVICE_IO _SC_DEVICE_IO _SC_DEVICE_SPECIFIC, #define _SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC _SC_DEVICE_SPECIFIC_R, #define _SC_DEVICE_SPECIFIC_R _SC_DEVICE_SPECIFIC_R _SC_FD_MGMT, #define _SC_FD_MGMT _SC_FD_MGMT _SC_FIFO, #define _SC_FIFO _SC_FIFO _SC_PIPE, #define _SC_PIPE _SC_PIPE _SC_FILE_ATTRIBUTES, #define _SC_FILE_ATTRIBUTES _SC_FILE_ATTRIBUTES _SC_FILE_LOCKING, #define _SC_FILE_LOCKING _SC_FILE_LOCKING _SC_FILE_SYSTEM, #define _SC_FILE_SYSTEM _SC_FILE_SYSTEM _SC_MONOTONIC_CLOCK, #define _SC_MONOTONIC_CLOCK _SC_MONOTONIC_CLOCK _SC_MULTI_PROCESS, #define _SC_MULTI_PROCESS _SC_MULTI_PROCESS _SC_SINGLE_PROCESS, #define _SC_SINGLE_PROCESS _SC_SINGLE_PROCESS _SC_NETWORKING, #define _SC_NETWORKING _SC_NETWORKING _SC_READER_WRITER_LOCKS, #define _SC_READER_WRITER_LOCKS _SC_READER_WRITER_LOCKS _SC_SPIN_LOCKS, #define _SC_SPIN_LOCKS _SC_SPIN_LOCKS _SC_REGEXP, #define _SC_REGEXP _SC_REGEXP _SC_REGEX_VERSION, #define _SC_REGEX_VERSION _SC_REGEX_VERSION _SC_SHELL, #define _SC_SHELL _SC_SHELL _SC_SIGNALS, #define _SC_SIGNALS _SC_SIGNALS _SC_SPAWN, #define _SC_SPAWN _SC_SPAWN _SC_SPORADIC_SERVER, #define _SC_SPORADIC_SERVER _SC_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER, #define _SC_THREAD_SPORADIC_SERVER _SC_THREAD_SPORADIC_SERVER _SC_SYSTEM_DATABASE, #define _SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE _SC_SYSTEM_DATABASE_R, #define _SC_SYSTEM_DATABASE_R _SC_SYSTEM_DATABASE_R _SC_TIMEOUTS, #define _SC_TIMEOUTS _SC_TIMEOUTS _SC_TYPED_MEMORY_OBJECTS, #define _SC_TYPED_MEMORY_OBJECTS _SC_TYPED_MEMORY_OBJECTS _SC_USER_GROUPS, #define _SC_USER_GROUPS _SC_USER_GROUPS _SC_USER_GROUPS_R, #define _SC_USER_GROUPS_R _SC_USER_GROUPS_R _SC_2_PBS, #define _SC_2_PBS _SC_2_PBS _SC_2_PBS_ACCOUNTING, #define _SC_2_PBS_ACCOUNTING _SC_2_PBS_ACCOUNTING _SC_2_PBS_LOCATE, #define _SC_2_PBS_LOCATE _SC_2_PBS_LOCATE _SC_2_PBS_MESSAGE, #define _SC_2_PBS_MESSAGE _SC_2_PBS_MESSAGE _SC_2_PBS_TRACK, #define _SC_2_PBS_TRACK _SC_2_PBS_TRACK _SC_SYMLOOP_MAX, #define _SC_SYMLOOP_MAX _SC_SYMLOOP_MAX _SC_STREAMS, #define _SC_STREAMS _SC_STREAMS _SC_2_PBS_CHECKPOINT, #define _SC_2_PBS_CHECKPOINT _SC_2_PBS_CHECKPOINT _SC_V6_ILP32_OFF32, #define _SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFF32 _SC_V6_ILP32_OFFBIG, #define _SC_V6_ILP32_OFFBIG _SC_V6_ILP32_OFFBIG _SC_V6_LP64_OFF64, #define _SC_V6_LP64_OFF64 _SC_V6_LP64_OFF64 _SC_V6_LPBIG_OFFBIG, #define _SC_V6_LPBIG_OFFBIG _SC_V6_LPBIG_OFFBIG _SC_HOST_NAME_MAX, #define _SC_HOST_NAME_MAX _SC_HOST_NAME_MAX _SC_TRACE, #define _SC_TRACE _SC_TRACE _SC_TRACE_EVENT_FILTER, #define _SC_TRACE_EVENT_FILTER _SC_TRACE_EVENT_FILTER _SC_TRACE_INHERIT, #define _SC_TRACE_INHERIT _SC_TRACE_INHERIT _SC_TRACE_LOG, #define _SC_TRACE_LOG _SC_TRACE_LOG _SC_LEVEL1_ICACHE_SIZE, #define _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_SIZE _SC_LEVEL1_ICACHE_ASSOC, #define _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_ASSOC _SC_LEVEL1_ICACHE_LINESIZE, #define _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_ICACHE_LINESIZE _SC_LEVEL1_DCACHE_SIZE, #define _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_SIZE _SC_LEVEL1_DCACHE_ASSOC, #define _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_ASSOC _SC_LEVEL1_DCACHE_LINESIZE, #define _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL1_DCACHE_LINESIZE _SC_LEVEL2_CACHE_SIZE, #define _SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_SIZE _SC_LEVEL2_CACHE_ASSOC, #define _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_ASSOC _SC_LEVEL2_CACHE_LINESIZE, #define _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL2_CACHE_LINESIZE _SC_LEVEL3_CACHE_SIZE, #define _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_SIZE _SC_LEVEL3_CACHE_ASSOC, #define _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_ASSOC _SC_LEVEL3_CACHE_LINESIZE, #define _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL3_CACHE_LINESIZE _SC_LEVEL4_CACHE_SIZE, #define _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_SIZE _SC_LEVEL4_CACHE_ASSOC, #define _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_ASSOC _SC_LEVEL4_CACHE_LINESIZE, #define _SC_LEVEL4_CACHE_LINESIZE _SC_LEVEL4_CACHE_LINESIZE /* Leave room here, maybe we need a few more cache levels some day. */ _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, #define _SC_IPV6 _SC_IPV6 _SC_RAW_SOCKETS, #define _SC_RAW_SOCKETS _SC_RAW_SOCKETS _SC_V7_ILP32_OFF32, #define _SC_V7_ILP32_OFF32 _SC_V7_ILP32_OFF32 _SC_V7_ILP32_OFFBIG, #define _SC_V7_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG _SC_V7_LP64_OFF64, #define _SC_V7_LP64_OFF64 _SC_V7_LP64_OFF64 _SC_V7_LPBIG_OFFBIG, #define _SC_V7_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG _SC_SS_REPL_MAX, #define _SC_SS_REPL_MAX _SC_SS_REPL_MAX _SC_TRACE_EVENT_NAME_MAX, #define _SC_TRACE_EVENT_NAME_MAX _SC_TRACE_EVENT_NAME_MAX _SC_TRACE_NAME_MAX, #define _SC_TRACE_NAME_MAX _SC_TRACE_NAME_MAX _SC_TRACE_SYS_MAX, #define _SC_TRACE_SYS_MAX _SC_TRACE_SYS_MAX _SC_TRACE_USER_EVENT_MAX, #define _SC_TRACE_USER_EVENT_MAX _SC_TRACE_USER_EVENT_MAX _SC_XOPEN_STREAMS, #define _SC_XOPEN_STREAMS _SC_XOPEN_STREAMS _SC_THREAD_ROBUST_PRIO_INHERIT, #define _SC_THREAD_ROBUST_PRIO_INHERIT _SC_THREAD_ROBUST_PRIO_INHERIT _SC_THREAD_ROBUST_PRIO_PROTECT, #define _SC_THREAD_ROBUST_PRIO_PROTECT _SC_THREAD_ROBUST_PRIO_PROTECT _SC_MINSIGSTKSZ, #define _SC_MINSIGSTKSZ _SC_MINSIGSTKSZ _SC_SIGSTKSZ #define _SC_SIGSTKSZ _SC_SIGSTKSZ }; /* Values for the NAME argument to `confstr'. */ enum { _CS_PATH, /* The default search path. */ #define _CS_PATH _CS_PATH _CS_V6_WIDTH_RESTRICTED_ENVS, #define _CS_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS _CS_V6_WIDTH_RESTRICTED_ENVS _CS_GNU_LIBC_VERSION, #define _CS_GNU_LIBC_VERSION _CS_GNU_LIBC_VERSION _CS_GNU_LIBPTHREAD_VERSION, #define _CS_GNU_LIBPTHREAD_VERSION _CS_GNU_LIBPTHREAD_VERSION _CS_V5_WIDTH_RESTRICTED_ENVS, #define _CS_V5_WIDTH_RESTRICTED_ENVS _CS_V5_WIDTH_RESTRICTED_ENVS #define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS _CS_V5_WIDTH_RESTRICTED_ENVS _CS_V7_WIDTH_RESTRICTED_ENVS, #define _CS_V7_WIDTH_RESTRICTED_ENVS _CS_V7_WIDTH_RESTRICTED_ENVS #define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS _CS_V7_WIDTH_RESTRICTED_ENVS _CS_LFS_CFLAGS = 1000, #define _CS_LFS_CFLAGS _CS_LFS_CFLAGS _CS_LFS_LDFLAGS, #define _CS_LFS_LDFLAGS _CS_LFS_LDFLAGS _CS_LFS_LIBS, #define _CS_LFS_LIBS _CS_LFS_LIBS _CS_LFS_LINTFLAGS, #define _CS_LFS_LINTFLAGS _CS_LFS_LINTFLAGS _CS_LFS64_CFLAGS, #define _CS_LFS64_CFLAGS _CS_LFS64_CFLAGS _CS_LFS64_LDFLAGS, #define _CS_LFS64_LDFLAGS _CS_LFS64_LDFLAGS _CS_LFS64_LIBS, #define _CS_LFS64_LIBS _CS_LFS64_LIBS _CS_LFS64_LINTFLAGS, #define _CS_LFS64_LINTFLAGS _CS_LFS64_LINTFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, #define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS, #define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LIBS, #define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LINTFLAGS, #define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS, #define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS, #define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LIBS, #define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, #define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_LP64_OFF64_CFLAGS, #define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS, #define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LIBS, #define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LINTFLAGS, #define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS, #define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, #define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LIBS, #define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, #define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS, #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LIBS, #define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, #define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LIBS, #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, #define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS, #define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS, #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LIBS, #define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, #define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS, #define _CS_POSIX_V7_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, #define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LIBS, #define _CS_POSIX_V7_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, #define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, #define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, #define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LIBS, #define _CS_POSIX_V7_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, #define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS, #define _CS_POSIX_V7_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS, #define _CS_POSIX_V7_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LIBS, #define _CS_POSIX_V7_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, #define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS _CS_POSIX_V7_LP64_OFF64_LINTFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, #define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, #define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, #define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, #define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_V6_ENV, #define _CS_V6_ENV _CS_V6_ENV _CS_V7_ENV #define _CS_V7_ENV _CS_V7_ENV }; #endif /* confname.h expanded by -frewrite-includes */ # 631 "/usr/include/unistd.h" 2 3 4 /* Get file-specific configuration information about PATH. */ extern long int pathconf (const char *__path, int __name) __THROW __nonnull ((1)); /* Get file-specific configuration about descriptor FD. */ extern long int fpathconf (int __fd, int __name) __THROW; /* Get the value of the system variable NAME. */ extern long int sysconf (int __name) __THROW; #ifdef __USE_POSIX2 /* Get the value of the string-valued system variable NAME. */ extern size_t confstr (int __name, char *__buf, size_t __len) __THROW __fortified_attr_access (__write_only__, 2, 3); #endif # 647 "/usr/include/unistd.h" 3 4 /* Get the process ID of the calling process. */ extern __pid_t getpid (void) __THROW; /* Get the process ID of the calling process's parent. */ extern __pid_t getppid (void) __THROW; /* Get the process group ID of the calling process. */ extern __pid_t getpgrp (void) __THROW; /* Get the process group ID of process PID. */ extern __pid_t __getpgid (__pid_t __pid) __THROW; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 661 "/usr/include/unistd.h" 3 4 extern __pid_t getpgid (__pid_t __pid) __THROW; #endif # 663 "/usr/include/unistd.h" 3 4 /* Set the process group ID of the process matching PID to PGID. If PID is zero, the current process's process group ID is set. If PGID is zero, the process ID of the process is used. */ extern int setpgid (__pid_t __pid, __pid_t __pgid) __THROW; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 671 "/usr/include/unistd.h" 3 4 /* Both System V and BSD have `setpgrp' functions, but with different calling conventions. The BSD function is the same as POSIX.1 `setpgid' (above). The System V function takes no arguments and puts the calling process in its on group like `setpgid (0, 0)'. New programs should always use `setpgid' instead. GNU provides the POSIX.1 function. */ /* Set the process group ID of the calling process to its own PID. This is exactly the same as `setpgid (0, 0)'. */ extern int setpgrp (void) __THROW; #endif /* Use misc or X/Open. */ # 685 "/usr/include/unistd.h" 3 4 /* Create a new session with the calling process as its leader. The process group IDs of the session and the calling process are set to the process ID of the calling process, which is returned. */ extern __pid_t setsid (void) __THROW; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 692 "/usr/include/unistd.h" 3 4 /* Return the session ID of the given process. */ extern __pid_t getsid (__pid_t __pid) __THROW; #endif # 695 "/usr/include/unistd.h" 3 4 /* Get the real user ID of the calling process. */ extern __uid_t getuid (void) __THROW; /* Get the effective user ID of the calling process. */ extern __uid_t geteuid (void) __THROW; /* Get the real group ID of the calling process. */ extern __gid_t getgid (void) __THROW; /* Get the effective group ID of the calling process. */ extern __gid_t getegid (void) __THROW; /* If SIZE is zero, return the number of supplementary groups the calling process is in. Otherwise, fill in the group IDs of its supplementary groups in LIST and return the number written. */ extern int getgroups (int __size, __gid_t __list[]) __THROW __wur __fortified_attr_access (__write_only__, 2, 1); #ifdef __USE_GNU /* Return nonzero iff the calling process is in group GID. */ extern int group_member (__gid_t __gid) __THROW; #endif # 717 "/usr/include/unistd.h" 3 4 /* Set the user ID of the calling process to UID. If the calling process is the super-user, set the real and effective user IDs, and the saved set-user-ID to UID; if not, the effective user ID is set to UID. */ extern int setuid (__uid_t __uid) __THROW __wur; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 725 "/usr/include/unistd.h" 3 4 /* Set the real user ID of the calling process to RUID, and the effective user ID of the calling process to EUID. */ extern int setreuid (__uid_t __ruid, __uid_t __euid) __THROW __wur; #endif # 729 "/usr/include/unistd.h" 3 4 #ifdef __USE_XOPEN2K /* Set the effective user ID of the calling process to UID. */ extern int seteuid (__uid_t __uid) __THROW __wur; #endif /* Use POSIX.1-2001. */ # 734 "/usr/include/unistd.h" 3 4 /* Set the group ID of the calling process to GID. If the calling process is the super-user, set the real and effective group IDs, and the saved set-group-ID to GID; if not, the effective group ID is set to GID. */ extern int setgid (__gid_t __gid) __THROW __wur; #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 742 "/usr/include/unistd.h" 3 4 /* Set the real group ID of the calling process to RGID, and the effective group ID of the calling process to EGID. */ extern int setregid (__gid_t __rgid, __gid_t __egid) __THROW __wur; #endif # 746 "/usr/include/unistd.h" 3 4 #ifdef __USE_XOPEN2K /* Set the effective group ID of the calling process to GID. */ extern int setegid (__gid_t __gid) __THROW __wur; #endif /* Use POSIX.1-2001. */ # 751 "/usr/include/unistd.h" 3 4 #ifdef __USE_GNU /* Fetch the real user ID, effective user ID, and saved-set user ID, of the calling process. */ extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) __THROW; /* Fetch the real group ID, effective group ID, and saved-set group ID, of the calling process. */ extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) __THROW; /* Set the real user ID, effective user ID, and saved-set user ID, of the calling process to RUID, EUID, and SUID, respectively. */ extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) __THROW __wur; /* Set the real group ID, effective group ID, and saved-set group ID, of the calling process to RGID, EGID, and SGID, respectively. */ extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) __THROW __wur; #endif # 773 "/usr/include/unistd.h" 3 4 /* Clone the calling process, creating an exact copy. Return -1 for errors, 0 to the new process, and the process ID of the new process to the old process. */ extern __pid_t fork (void) __THROWNL; #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 782 "/usr/include/unistd.h" 3 4 /* Clone the calling process, but without copying the whole address space. The calling process is suspended until the new process exits or is replaced by a call to `execve'. Return -1 for errors, 0 to the new process, and the process ID of the new process to the old process. */ extern __pid_t vfork (void) __THROW; #endif /* Use misc or XPG < 7. */ # 788 "/usr/include/unistd.h" 3 4 #ifdef __USE_GNU /* This is similar to fork, however it does not run the atfork handlers neither reinitialize any internal locks in multithread case. Different than fork, _Fork is async-signal-safe. */ extern __pid_t _Fork (void) __THROW; #endif # 795 "/usr/include/unistd.h" 3 4 /* Return the pathname of the terminal FD is open on, or NULL on errors. The returned storage is good only until the next call to this function. */ extern char *ttyname (int __fd) __THROW; /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ extern int ttyname_r (int __fd, char *__buf, size_t __buflen) __THROW __nonnull ((2)) __wur __fortified_attr_access (__write_only__, 2, 3); /* Return 1 if FD is a valid descriptor associated with a terminal, zero if not. */ extern int isatty (int __fd) __THROW; #ifdef __USE_MISC /* Return the index into the active-logins file (utmp) for the controlling terminal. */ extern int ttyslot (void) __THROW; #endif # 816 "/usr/include/unistd.h" 3 4 /* Make a link to FROM named TO. */ extern int link (const char *__from, const char *__to) __THROW __nonnull ((1, 2)) __wur; #ifdef __USE_ATFILE /* Like link but relative paths in TO and FROM are interpreted relative to FROMFD and TOFD respectively. */ extern int linkat (int __fromfd, const char *__from, int __tofd, const char *__to, int __flags) __THROW __nonnull ((2, 4)) __wur; #endif # 829 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 831 "/usr/include/unistd.h" 3 4 /* Make a symbolic link to FROM named TO. */ extern int symlink (const char *__from, const char *__to) __THROW __nonnull ((1, 2)) __wur; /* Read the contents of the symbolic link PATH into no more than LEN bytes of BUF. The contents are not null-terminated. Returns the number of characters read, or -1 for errors. */ extern ssize_t readlink (const char *__restrict __path, char *__restrict __buf, size_t __len) __THROW __nonnull ((1, 2)) __wur __fortified_attr_access (__write_only__, 2, 3); #endif /* Use POSIX.1-2001. */ # 844 "/usr/include/unistd.h" 3 4 #ifdef __USE_ATFILE /* Like symlink but a relative path in TO is interpreted relative to TOFD. */ extern int symlinkat (const char *__from, int __tofd, const char *__to) __THROW __nonnull ((1, 3)) __wur; /* Like readlink but a relative PATH is interpreted relative to FD. */ extern ssize_t readlinkat (int __fd, const char *__restrict __path, char *__restrict __buf, size_t __len) __THROW __nonnull ((2, 3)) __wur __fortified_attr_access (__write_only__, 3, 4); #endif # 856 "/usr/include/unistd.h" 3 4 /* Remove the link NAME. */ extern int unlink (const char *__name) __THROW __nonnull ((1)); #ifdef __USE_ATFILE /* Remove the link NAME relative to FD. */ extern int unlinkat (int __fd, const char *__name, int __flag) __THROW __nonnull ((2)); #endif # 865 "/usr/include/unistd.h" 3 4 /* Remove the directory PATH. */ extern int rmdir (const char *__path) __THROW __nonnull ((1)); /* Return the foreground process group ID of FD. */ extern __pid_t tcgetpgrp (int __fd) __THROW; /* Set the foreground process group ID of FD set PGRP_ID. */ extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __THROW; /* Return the login name of the user. This function is a possible cancellation point and therefore not marked with __THROW. */ extern char *getlogin (void); #ifdef __USE_POSIX199506 /* Return at most NAME_LEN characters of the login name of the user in NAME. If it cannot be determined or some other error occurred, return the error code. Otherwise return 0. This function is a possible cancellation point and therefore not marked with __THROW. */ extern int getlogin_r (char *__name, size_t __name_len) __nonnull ((1)) __fortified_attr_access (__write_only__, 1, 2); #endif # 892 "/usr/include/unistd.h" 3 4 #ifdef __USE_MISC /* Set the login name returned by `getlogin'. */ extern int setlogin (const char *__name) __THROW __nonnull ((1)); #endif # 897 "/usr/include/unistd.h" 3 4 #ifdef __USE_POSIX2 /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* getopt_posix.h expanded by -frewrite-includes */ # include #else /* getopt_posix.h expanded by -frewrite-includes */ # 903 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/getopt_posix.h" 1 3 4 /* Declarations for getopt (POSIX compatibility shim). Copyright (C) 1989-2024 Free Software Foundation, Inc. Unlike the bulk of the getopt implementation, this file is NOT part of gnulib. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _GETOPT_POSIX_H #define _GETOPT_POSIX_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _UNISTD_H && !defined _STDIO_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "/usr/include/bits/getopt_posix.h" 3 4 #error "Never include getopt_posix.h directly; use unistd.h instead." #endif # 26 "/usr/include/bits/getopt_posix.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* getopt_core.h expanded by -frewrite-includes */ #include #else /* getopt_core.h expanded by -frewrite-includes */ # 27 "/usr/include/bits/getopt_posix.h" 3 4 # 1 "/usr/include/bits/getopt_core.h" 1 3 4 /* Declarations for getopt (basic, portable features only). Copyright (C) 1989-2024 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _GETOPT_CORE_H #define _GETOPT_CORE_H 1 /* This header should not be used directly; include getopt.h or unistd.h instead. Unlike most bits headers, it does not have a protective #error, because the guard macro for getopt.h in gnulib is not fixed. */ __BEGIN_DECLS /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message 'getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options missing arguments, 'optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter takes an argument, to be placed in 'optarg'. If a letter in OPTS is followed by two colons, its argument is optional. This behavior is specific to the GNU 'getopt'. The argument '--' causes premature termination of argument scanning, explicitly telling 'getopt' that there are no more options. If OPTS begins with '-', then non-option arguments are treated as arguments to the option '\1'. This behavior is specific to the GNU 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in the environment, then do not permute arguments. For standards compliance, the 'argv' argument has the type char *const *, but this is inaccurate; if argument permutation is enabled, the argv array (not the strings it points to) must be writable. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW __nonnull ((2, 3)); __END_DECLS #endif /* getopt_core.h */ # 97 "/usr/include/bits/getopt_core.h" 3 4 #endif /* getopt_core.h expanded by -frewrite-includes */ # 28 "/usr/include/bits/getopt_posix.h" 2 3 4 __BEGIN_DECLS #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX2 && !defined __USE_POSIX_IMPLICITLY \ && !defined __USE_GNU && !defined _GETOPT_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 33 "/usr/include/bits/getopt_posix.h" 3 4 /* GNU getopt has more functionality than POSIX getopt. When we are explicitly conforming to POSIX and not GNU, and getopt.h (which is not part of POSIX) has not been included, the extra functionality is disabled. */ # ifdef __REDIRECT extern int __REDIRECT_NTH (getopt, (int ___argc, char *const *___argv, const char *__shortopts), __posix_getopt); # else # 42 "/usr/include/bits/getopt_posix.h" 3 4 extern int __posix_getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW __nonnull ((2, 3)); # define getopt __posix_getopt # endif # 47 "/usr/include/bits/getopt_posix.h" 3 4 #endif # 48 "/usr/include/bits/getopt_posix.h" 3 4 __END_DECLS #endif /* getopt_posix.h */ # 52 "/usr/include/bits/getopt_posix.h" 3 4 #endif /* getopt_posix.h expanded by -frewrite-includes */ # 904 "/usr/include/unistd.h" 2 3 4 #endif # 905 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 908 "/usr/include/unistd.h" 3 4 /* Put the name of the current host in no more than LEN bytes of NAME. The result is null-terminated if LEN is large enough for the full name and the terminator. */ extern int gethostname (char *__name, size_t __len) __THROW __nonnull ((1)) __fortified_attr_access (__write_only__, 1, 2); #endif # 914 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 917 "/usr/include/unistd.h" 3 4 /* Set the name of the current host to NAME, which is LEN bytes long. This call is restricted to the super-user. */ extern int sethostname (const char *__name, size_t __len) __THROW __nonnull ((1)) __wur __attr_access ((__read_only__, 1, 2)); /* Set the current machine's Internet number to ID. This call is restricted to the super-user. */ extern int sethostid (long int __id) __THROW __wur; /* Get and set the NIS (aka YP) domain name, if any. Called just like `gethostname' and `sethostname'. The NIS domain name is usually the empty string when not using NIS. */ extern int getdomainname (char *__name, size_t __len) __THROW __nonnull ((1)) __wur __fortified_attr_access (__write_only__, 1, 2); extern int setdomainname (const char *__name, size_t __len) __THROW __nonnull ((1)) __wur __attr_access ((__read_only__, 1, 2)); /* Revoke access permissions to all processes currently communicating with the control terminal, and then send a SIGHUP signal to the process group of the control terminal. */ extern int vhangup (void) __THROW; /* Revoke the access of all descriptors currently open on FILE. */ extern int revoke (const char *__file) __THROW __nonnull ((1)) __wur; /* Enable statistical profiling, writing samples of the PC into at most SIZE bytes of SAMPLE_BUFFER; every processor clock tick while profiling is enabled, the system examines the user PC and increments SAMPLE_BUFFER[((PC - OFFSET) / 2) * SCALE / 65536]. If SCALE is zero, disable profiling. Returns zero on success, -1 on error. */ extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) __THROW __nonnull ((1)); /* Turn accounting on if NAME is an existing file. The system will then write a record for each process as it terminates, to this file. If NAME is NULL, turn accounting off. This call is restricted to the super-user. */ extern int acct (const char *__name) __THROW; /* Successive calls return the shells listed in `/etc/shells'. */ extern char *getusershell (void) __THROW; extern void endusershell (void) __THROW; /* Discard cached info. */ extern void setusershell (void) __THROW; /* Rewind and re-read the file. */ /* Put the program in the background, and dissociate from the controlling terminal. If NOCHDIR is zero, do `chdir ("/")'. If NOCLOSE is zero, redirects stdin, stdout, and stderr to /dev/null. */ extern int daemon (int __nochdir, int __noclose) __THROW __wur; #endif /* Use misc. */ # 972 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 975 "/usr/include/unistd.h" 3 4 /* Make PATH be the root directory (the starting point for absolute paths). This call is restricted to the super-user. */ extern int chroot (const char *__path) __THROW __nonnull ((1)) __wur; /* Prompt with PROMPT and read a string from the terminal without echoing. Uses /dev/tty if possible; otherwise stderr and stdin. */ extern char *getpass (const char *__prompt) __nonnull ((1)); #endif /* Use misc || X/Open. */ # 983 "/usr/include/unistd.h" 3 4 /* Make all changes done to FD actually appear on disk. This function is a cancellation point and therefore not marked with __THROW. */ extern int fsync (int __fd); #ifdef __USE_GNU /* Make all changes done to all files on the file system associated with FD actually appear on disk. */ extern int syncfs (int __fd) __THROW; #endif # 997 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1000 "/usr/include/unistd.h" 3 4 /* Return identifier for the current host. */ extern long int gethostid (void); /* Make all changes done to all files actually appear on disk. */ extern void sync (void) __THROW; #if 0 /* disabled by -frewrite-includes */ # if defined __USE_MISC || !defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1009 "/usr/include/unistd.h" 3 4 /* Return the number of bytes in a page. This is the system's page size, which is not necessarily the same as the hardware page size. */ extern int getpagesize (void) __THROW __attribute__ ((__const__)); /* Return the maximum number of file descriptors the current process could possibly have. */ extern int getdtablesize (void) __THROW; # endif # 1018 "/usr/include/unistd.h" 3 4 #endif /* Use misc || X/Open Unix. */ # 1020 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1023 "/usr/include/unistd.h" 3 4 /* Truncate FILE to LENGTH bytes. */ # ifndef __USE_FILE_OFFSET64 extern int truncate (const char *__file, __off_t __length) __THROW __nonnull ((1)) __wur; # else # 1029 "/usr/include/unistd.h" 3 4 # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (truncate, (const char *__file, __off64_t __length), truncate64) __nonnull ((1)) __wur; # else # 1034 "/usr/include/unistd.h" 3 4 # define truncate truncate64 # endif # 1036 "/usr/include/unistd.h" 3 4 # endif # 1037 "/usr/include/unistd.h" 3 4 # ifdef __USE_LARGEFILE64 extern int truncate64 (const char *__file, __off64_t __length) __THROW __nonnull ((1)) __wur; # endif # 1041 "/usr/include/unistd.h" 3 4 #endif /* Use X/Open Unix || POSIX 2008. */ # 1043 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199309 \ || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1046 "/usr/include/unistd.h" 3 4 /* Truncate the file FD is open on to LENGTH bytes. */ # ifndef __USE_FILE_OFFSET64 extern int ftruncate (int __fd, __off_t __length) __THROW __wur; # else # 1051 "/usr/include/unistd.h" 3 4 # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (ftruncate, (int __fd, __off64_t __length), ftruncate64) __wur; # else # 1055 "/usr/include/unistd.h" 3 4 # define ftruncate ftruncate64 # endif # 1057 "/usr/include/unistd.h" 3 4 # endif # 1058 "/usr/include/unistd.h" 3 4 # ifdef __USE_LARGEFILE64 extern int ftruncate64 (int __fd, __off64_t __length) __THROW __wur; # endif # 1061 "/usr/include/unistd.h" 3 4 #endif /* Use POSIX.1b || X/Open Unix || XPG6. */ # 1063 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \ || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1067 "/usr/include/unistd.h" 3 4 /* Set the end of accessible data space (aka "the break") to ADDR. Returns zero on success and -1 for errors (with errno set). */ extern int brk (void *__addr) __THROW __wur; /* Increase or decrease the end of accessible data space by DELTA bytes. If successful, returns the address the previous end of data space (i.e. the beginning of the new space, if DELTA > 0); returns (void *) -1 for errors (with errno set). */ extern void *sbrk (intptr_t __delta) __THROW; #endif # 1078 "/usr/include/unistd.h" 3 4 #ifdef __USE_MISC /* Invoke `system call' number SYSNO, passing it the remaining arguments. This is completely system-dependent, and not often useful. In Unix, `syscall' sets `errno' for all errors and most calls return -1 for errors; in many systems you cannot pass arguments or get return values for all system calls (`pipe', `fork', and `getppid' typically among them). In Mach, all system calls take normal arguments and always return an error code (zero for success). */ extern long int syscall (long int __sysno, ...) __THROW; #endif /* Use misc. */ # 1094 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || defined __USE_XOPEN_EXTENDED) && !defined F_LOCK #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1097 "/usr/include/unistd.h" 3 4 /* NOTE: These declarations also appear in ; be sure to keep both files consistent. Some systems have them there and some here, and some software depends on the macros being defined without including both. */ /* `lockf' is a simpler interface to the locking facilities of `fcntl'. LEN is always relative to the current file position. The CMD argument is one of the following. This function is a cancellation point and therefore not marked with __THROW. */ # define F_ULOCK 0 /* Unlock a previously locked region. */ # define F_LOCK 1 /* Lock a region for exclusive use. */ # define F_TLOCK 2 /* Test and lock a region for exclusive use. */ # define F_TEST 3 /* Test a region for other processes locks. */ # ifndef __USE_FILE_OFFSET64 extern int lockf (int __fd, int __cmd, __off_t __len) __wur; # else # 1116 "/usr/include/unistd.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (lockf, (int __fd, int __cmd, __off64_t __len), lockf64) __wur; # else # 1120 "/usr/include/unistd.h" 3 4 # define lockf lockf64 # endif # 1122 "/usr/include/unistd.h" 3 4 # endif # 1123 "/usr/include/unistd.h" 3 4 # ifdef __USE_LARGEFILE64 extern int lockf64 (int __fd, int __cmd, __off64_t __len) __wur; # endif # 1126 "/usr/include/unistd.h" 3 4 #endif /* Use misc and F_LOCK not already defined. */ # 1127 "/usr/include/unistd.h" 3 4 #ifdef __USE_GNU /* Evaluate EXPRESSION, and repeat as long as it returns -1 with `errno' set to EINTR. */ # define TEMP_FAILURE_RETRY(expression) \ (__extension__ \ ({ long int __result; \ do __result = (long int) (expression); \ while (__result == -1L && errno == EINTR); \ __result; })) /* Copy LENGTH bytes from INFD to OUTFD. */ ssize_t copy_file_range (int __infd, __off64_t *__pinoff, int __outfd, __off64_t *__poutoff, size_t __length, unsigned int __flags); #endif /* __USE_GNU */ # 1146 "/usr/include/unistd.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199309 || defined __USE_UNIX98 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1148 "/usr/include/unistd.h" 3 4 /* Synchronize at least the data part of a file with the underlying media. */ extern int fdatasync (int __fildes); #endif /* Use POSIX199309 */ # 1152 "/usr/include/unistd.h" 3 4 #ifdef __USE_MISC /* One-way hash PHRASE, returning a string suitable for storage in the user database. SALT selects the one-way function to use, and ensures that no two users' hashes are the same, even if they use the same passphrase. The return value points to static storage which will be overwritten by the next call to crypt. This declaration is deprecated; applications should include instead. */ extern char *crypt (const char *__key, const char *__salt) __THROW __nonnull ((1, 2)); #endif # 1165 "/usr/include/unistd.h" 3 4 #ifdef __USE_XOPEN /* Swab pairs bytes in the first N bytes of the area pointed to by FROM and copy the result to TO. The value of TO must not be in the range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM is without partner. */ extern void swab (const void *__restrict __from, void *__restrict __to, ssize_t __n) __THROW __nonnull ((1, 2)) __attr_access ((__read_only__, 1, 3)) __attr_access ((__write_only__, 2, 3)); #endif # 1176 "/usr/include/unistd.h" 3 4 /* Prior to Issue 6, the Single Unix Specification required these prototypes to appear in this header. They are also found in . */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN && !defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1182 "/usr/include/unistd.h" 3 4 /* Return the name of the controlling terminal. */ extern char *ctermid (char *__s) __THROW; /* Return the name of the current user. */ extern char *cuserid (char *__s); #endif # 1188 "/usr/include/unistd.h" 3 4 /* Unix98 requires this function to be declared here. In other standards it is in . */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_UNIX98 && !defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1193 "/usr/include/unistd.h" 3 4 extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) __THROW; #endif # 1197 "/usr/include/unistd.h" 3 4 #ifdef __USE_MISC /* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on success or -1 on error. */ int getentropy (void *__buffer, size_t __length) __wur __attr_access ((__write_only__, 1, 2)); #endif # 1204 "/usr/include/unistd.h" 3 4 #ifdef __USE_GNU /* Close all file descriptors in the range FD up to MAX_FD. The flag FLAGS are define by the CLOSE_RANGE prefix. This function behaves like close on the range and gaps where the file descriptor is invalid or errors encountered while closing file descriptors are ignored. Returns 0 on successor or -1 for failure (and sets errno accordingly). */ extern int close_range (unsigned int __fd, unsigned int __max_fd, int __flags) __THROW; #endif # 1214 "/usr/include/unistd.h" 3 4 /* Define some macros helping to catch buffer overflows. */ #if 0 /* disabled by -frewrite-includes */ #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1217 "/usr/include/unistd.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 1217 "/usr/include/unistd.h" 3 4 # 1218 "/usr/include/unistd.h" 3 4 #endif # 1219 "/usr/include/unistd.h" 3 4 /* System-specific extensions. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* unistd_ext.h expanded by -frewrite-includes */ #include #else /* unistd_ext.h expanded by -frewrite-includes */ # 1221 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/unistd_ext.h" 1 3 4 /* System-specific extensions of , Linux version. Copyright (C) 2019-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _UNISTD_H # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/unistd_ext.h" 3 4 #ifdef __USE_GNU /* Return the kernel thread ID (TID) of the current thread. The returned value is not subject to caching. Most Linux system calls accept a TID in place of a PID. Using the TID to change properties of a thread that has been created using pthread_create can lead to undefined behavior (comparable to manipulating file descriptors directly that have not been created explicitly). Note that a TID uniquely identifies a thread only while this thread is running; a TID can be reused once a thread has exited, even if the thread is not detached and has not been joined. */ extern __pid_t gettid (void) __THROW; #ifdef __has_include #if 0 /* disabled by -frewrite-includes */ # if __has_include ("linux/close_range.h") #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 38 "/usr/include/bits/unistd_ext.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* close_range.h expanded by -frewrite-includes */ # include "linux/close_range.h" #else /* close_range.h expanded by -frewrite-includes */ # 38 "/usr/include/bits/unistd_ext.h" 3 4 # 1 "/usr/include/linux/close_range.h" 1 3 4 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _LINUX_CLOSE_RANGE_H #define _LINUX_CLOSE_RANGE_H /* Unshare the file descriptor table before closing file descriptors. */ #define CLOSE_RANGE_UNSHARE (1U << 1) /* Set the FD_CLOEXEC bit instead of closing the file descriptor. */ #define CLOSE_RANGE_CLOEXEC (1U << 2) #endif /* _LINUX_CLOSE_RANGE_H */ # 12 "/usr/include/linux/close_range.h" 3 4 #endif /* close_range.h expanded by -frewrite-includes */ # 39 "/usr/include/bits/unistd_ext.h" 2 3 4 # endif # 40 "/usr/include/bits/unistd_ext.h" 3 4 #endif # 41 "/usr/include/bits/unistd_ext.h" 3 4 /* Unshare the file descriptor table before closing file descriptors. */ #ifndef CLOSE_RANGE_UNSHARE # define CLOSE_RANGE_UNSHARE (1U << 1) #endif # 45 "/usr/include/bits/unistd_ext.h" 3 4 /* Set the FD_CLOEXEC bit instead of closing the file descriptor. */ #ifndef CLOSE_RANGE_CLOEXEC # define CLOSE_RANGE_CLOEXEC (1U << 2) #endif # 49 "/usr/include/bits/unistd_ext.h" 3 4 #endif /* __USE_GNU */ # 51 "/usr/include/bits/unistd_ext.h" 3 4 #endif /* unistd_ext.h expanded by -frewrite-includes */ # 1222 "/usr/include/unistd.h" 2 3 4 __END_DECLS #endif /* unistd.h */ # 1226 "/usr/include/unistd.h" 3 4 #endif /* unistd.h expanded by -frewrite-includes */ # 46 "../mesa/src/c11/threads.h" 2 #else # 47 "../mesa/src/c11/threads.h" # error Not supported on this platform. #endif # 49 "../mesa/src/c11/threads.h" #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE_THRD_CREATE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 51 "../mesa/src/c11/threads.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/c11/threads.h" # 52 "../mesa/src/c11/threads.h" #else # 53 "../mesa/src/c11/threads.h" /*---------------------------- macros ---------------------------*/ #ifndef _Thread_local #if 0 /* disabled by -frewrite-includes */ # if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 58 "../mesa/src/c11/threads.h" /* C++11 doesn't need `_Thread_local` keyword or macro */ #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined(__STDC_NO_THREADS__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 60 "../mesa/src/c11/threads.h" /* threads are optional in C11, _Thread_local present in this condition */ #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 62 "../mesa/src/c11/threads.h" # define _Thread_local __declspec(thread) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 64 "../mesa/src/c11/threads.h" # define _Thread_local __thread # else # 66 "../mesa/src/c11/threads.h" /* Leave _Thread_local undefined so that use of _Thread_local would not promote * to a non-thread-local global variable */ # endif # 70 "../mesa/src/c11/threads.h" #endif # 71 "../mesa/src/c11/threads.h" #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 73 "../mesa/src/c11/threads.h" /* * C11 thread_local() macro * C++11 and above already have thread_local keyword */ # ifndef thread_local # define thread_local _Thread_local # endif # 80 "../mesa/src/c11/threads.h" #endif # 81 "../mesa/src/c11/threads.h" #ifdef __cplusplus extern "C" { #endif # 85 "../mesa/src/c11/threads.h" /*---------------------------- types ----------------------------*/ typedef void (*tss_dtor_t)(void *); typedef int (*thrd_start_t)(void *); #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && !defined(HAVE_PTHREAD) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "../mesa/src/c11/threads.h" typedef struct { void *Ptr; } cnd_t; /* Define thrd_t as struct type intentionally for avoid use of thrd_t as pointer type */ typedef struct { void *handle; } thrd_t; typedef unsigned long tss_t; typedef struct { void *DebugInfo; long LockCount; long RecursionCount; void *OwningThread; void *LockSemaphore; uintptr_t SpinCount; } mtx_t; /* Mock of CRITICAL_SECTION */ typedef struct { volatile uintptr_t status; } once_flag; # define ONCE_FLAG_INIT {0} # define TSS_DTOR_ITERATIONS 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(HAVE_PTHREAD) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 117 "../mesa/src/c11/threads.h" typedef pthread_cond_t cnd_t; typedef pthread_t thrd_t; typedef pthread_key_t tss_t; typedef pthread_mutex_t mtx_t; typedef pthread_once_t once_flag; # define ONCE_FLAG_INIT PTHREAD_ONCE_INIT # ifdef PTHREAD_DESTRUCTOR_ITERATIONS # define TSS_DTOR_ITERATIONS PTHREAD_DESTRUCTOR_ITERATIONS # else # 126 "../mesa/src/c11/threads.h" # define TSS_DTOR_ITERATIONS 1 // assume TSS dtor MAY be called at least once. # endif # 128 "../mesa/src/c11/threads.h" #else # 129 "../mesa/src/c11/threads.h" # error Not supported on this platform. #endif # 131 "../mesa/src/c11/threads.h" /*-------------------- enumeration constants --------------------*/ enum { mtx_plain = 0x1, mtx_recursive = 0x2, mtx_timed = 0x4, }; enum { thrd_success = 0, // succeeded thrd_timedout, // timed out thrd_error, // failed thrd_busy, // resource busy thrd_nomem // out of memory }; /*-------------------------- functions --------------------------*/ void call_once(once_flag *, void (*)(void)); int cnd_broadcast(cnd_t *); void cnd_destroy(cnd_t *); int cnd_init(cnd_t *); int cnd_signal(cnd_t *); int cnd_timedwait(cnd_t *__restrict, mtx_t *__restrict __mtx, const struct timespec *__restrict); int cnd_wait(cnd_t *, mtx_t *__mtx); void mtx_destroy(mtx_t *__mtx); int mtx_init(mtx_t *__mtx, int); int mtx_lock(mtx_t *__mtx); int mtx_timedlock(mtx_t *__restrict __mtx, const struct timespec *__restrict); int mtx_trylock(mtx_t *__mtx); int mtx_unlock(mtx_t *__mtx); int thrd_create(thrd_t *, thrd_start_t, void *); thrd_t thrd_current(void); int thrd_detach(thrd_t); int thrd_equal(thrd_t, thrd_t); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 171 "../mesa/src/c11/threads.h" [[ noreturn ]] #else # 173 "../mesa/src/c11/threads.h" _Noreturn #endif # 175 "../mesa/src/c11/threads.h" void thrd_exit(int); int thrd_join(thrd_t, int *); int thrd_sleep(const struct timespec *, struct timespec *); void thrd_yield(void); int tss_create(tss_t *, tss_dtor_t); void tss_delete(tss_t); void *tss_get(tss_t); int tss_set(tss_t, void *); #ifdef __cplusplus } #endif # 187 "../mesa/src/c11/threads.h" #endif /* HAVE_THRD_CREATE */ # 189 "../mesa/src/c11/threads.h" #endif /* C11_THREADS_H_INCLUDED_ */ # 191 "../mesa/src/c11/threads.h" #endif /* threads.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/mtypes.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 41 "../mesa/src/mesa/main/mtypes.h" # 42 "../mesa/src/mesa/main/mtypes.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* glthread.h expanded by -frewrite-includes */ #include "main/glthread.h" #else /* glthread.h expanded by -frewrite-includes */ # 42 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/main/glthread.h" 1 /* * Copyright © 2012 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef _GLTHREAD_H #define _GLTHREAD_H /* The size of one batch and the maximum size of one call. * * This should be as low as possible, so that: * - multiple synchronizations within a frame don't slow us down much * - a smaller number of calls per frame can still get decent parallelism * - the memory footprint of the queue is low, and with that comes a lower * chance of experiencing CPU cache thrashing * but it should be high enough so that u_queue overhead remains negligible. */ #define MARSHAL_MAX_CMD_BUFFER_SIZE (8 * 1024) /* We need to leave 1 slot at the end to insert the END marker for unmarshal * calls that look ahead to know where the batch ends. */ #define MARSHAL_MAX_CMD_SIZE (MARSHAL_MAX_CMD_BUFFER_SIZE - 8) /* The number of batch slots in memory. * * One batch is being executed, one batch is being filled, the rest are * waiting batches. There must be at least 1 slot for a waiting batch, * so the minimum number of batches is 3. */ #define MARSHAL_MAX_BATCHES 8 /* Special value for glEnableClientState(GL_PRIMITIVE_RESTART_NV). */ #define VERT_ATTRIB_PRIMITIVE_RESTART_NV -1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* inttypes.h expanded by -frewrite-includes */ #include #else /* inttypes.h expanded by -frewrite-includes */ # 54 "../mesa/src/mesa/main/glthread.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 1 3 /*===---- inttypes.h - Standard header for integer printf macros ----------===*\ * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * \*===----------------------------------------------------------------------===*/ #ifndef __CLANG_INTTYPES_H // AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T // is defined until an inclusion of it without _STD_TYPES_T occurs, in which // case the header guard macro is defined. #if 0 /* disabled by -frewrite-includes */ #if !defined(_AIX) || !defined(_STD_TYPES_T) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #define __CLANG_INTTYPES_H #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 # 18 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #else # 19 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) && _MSC_VER < 1800 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #error MSVC does not have inttypes.h prior to Visual Studio 2013 #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* inttypes.h expanded by -frewrite-includes */ #include_next #else /* inttypes.h expanded by -frewrite-includes */ # 24 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 # 1 "/usr/include/inttypes.h" 1 3 4 /* Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99: 7.8 Format conversion of integer types */ #ifndef _INTTYPES_H #define _INTTYPES_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/inttypes.h" 3 4 # 26 "/usr/include/inttypes.h" 3 4 /* Get the type definitions. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "/usr/include/inttypes.h" 3 4 # 28 "/usr/include/inttypes.h" 3 4 /* Get a definition for wchar_t. But we must not define wchar_t itself. */ #ifndef ____gwchar_t_defined # ifdef __cplusplus # define __gwchar_t wchar_t #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined __WCHAR_TYPE__ #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 34 "/usr/include/inttypes.h" 3 4 typedef __WCHAR_TYPE__ __gwchar_t; # else # 36 "/usr/include/inttypes.h" 3 4 # define __need_wchar_t #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 37 "/usr/include/inttypes.h" 3 4 # 38 "/usr/include/inttypes.h" 3 4 typedef wchar_t __gwchar_t; # endif # 40 "/usr/include/inttypes.h" 3 4 # define ____gwchar_t_defined 1 #endif # 42 "/usr/include/inttypes.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 44 "/usr/include/inttypes.h" 3 4 # define __PRI64_PREFIX "l" # define __PRIPTR_PREFIX "l" # else # 47 "/usr/include/inttypes.h" 3 4 # define __PRI64_PREFIX "ll" # define __PRIPTR_PREFIX # endif # 50 "/usr/include/inttypes.h" 3 4 /* Macros for printing format specifiers. */ /* Decimal notation. */ # define PRId8 "d" # define PRId16 "d" # define PRId32 "d" # define PRId64 __PRI64_PREFIX "d" # define PRIdLEAST8 "d" # define PRIdLEAST16 "d" # define PRIdLEAST32 "d" # define PRIdLEAST64 __PRI64_PREFIX "d" # define PRIdFAST8 "d" # define PRIdFAST16 __PRIPTR_PREFIX "d" # define PRIdFAST32 __PRIPTR_PREFIX "d" # define PRIdFAST64 __PRI64_PREFIX "d" # define PRIi8 "i" # define PRIi16 "i" # define PRIi32 "i" # define PRIi64 __PRI64_PREFIX "i" # define PRIiLEAST8 "i" # define PRIiLEAST16 "i" # define PRIiLEAST32 "i" # define PRIiLEAST64 __PRI64_PREFIX "i" # define PRIiFAST8 "i" # define PRIiFAST16 __PRIPTR_PREFIX "i" # define PRIiFAST32 __PRIPTR_PREFIX "i" # define PRIiFAST64 __PRI64_PREFIX "i" /* Octal notation. */ # define PRIo8 "o" # define PRIo16 "o" # define PRIo32 "o" # define PRIo64 __PRI64_PREFIX "o" # define PRIoLEAST8 "o" # define PRIoLEAST16 "o" # define PRIoLEAST32 "o" # define PRIoLEAST64 __PRI64_PREFIX "o" # define PRIoFAST8 "o" # define PRIoFAST16 __PRIPTR_PREFIX "o" # define PRIoFAST32 __PRIPTR_PREFIX "o" # define PRIoFAST64 __PRI64_PREFIX "o" /* Unsigned integers. */ # define PRIu8 "u" # define PRIu16 "u" # define PRIu32 "u" # define PRIu64 __PRI64_PREFIX "u" # define PRIuLEAST8 "u" # define PRIuLEAST16 "u" # define PRIuLEAST32 "u" # define PRIuLEAST64 __PRI64_PREFIX "u" # define PRIuFAST8 "u" # define PRIuFAST16 __PRIPTR_PREFIX "u" # define PRIuFAST32 __PRIPTR_PREFIX "u" # define PRIuFAST64 __PRI64_PREFIX "u" /* lowercase hexadecimal notation. */ # define PRIx8 "x" # define PRIx16 "x" # define PRIx32 "x" # define PRIx64 __PRI64_PREFIX "x" # define PRIxLEAST8 "x" # define PRIxLEAST16 "x" # define PRIxLEAST32 "x" # define PRIxLEAST64 __PRI64_PREFIX "x" # define PRIxFAST8 "x" # define PRIxFAST16 __PRIPTR_PREFIX "x" # define PRIxFAST32 __PRIPTR_PREFIX "x" # define PRIxFAST64 __PRI64_PREFIX "x" /* UPPERCASE hexadecimal notation. */ # define PRIX8 "X" # define PRIX16 "X" # define PRIX32 "X" # define PRIX64 __PRI64_PREFIX "X" # define PRIXLEAST8 "X" # define PRIXLEAST16 "X" # define PRIXLEAST32 "X" # define PRIXLEAST64 __PRI64_PREFIX "X" # define PRIXFAST8 "X" # define PRIXFAST16 __PRIPTR_PREFIX "X" # define PRIXFAST32 __PRIPTR_PREFIX "X" # define PRIXFAST64 __PRI64_PREFIX "X" /* Macros for printing `intmax_t' and `uintmax_t'. */ # define PRIdMAX __PRI64_PREFIX "d" # define PRIiMAX __PRI64_PREFIX "i" # define PRIoMAX __PRI64_PREFIX "o" # define PRIuMAX __PRI64_PREFIX "u" # define PRIxMAX __PRI64_PREFIX "x" # define PRIXMAX __PRI64_PREFIX "X" /* Macros for printing `intptr_t' and `uintptr_t'. */ # define PRIdPTR __PRIPTR_PREFIX "d" # define PRIiPTR __PRIPTR_PREFIX "i" # define PRIoPTR __PRIPTR_PREFIX "o" # define PRIuPTR __PRIPTR_PREFIX "u" # define PRIxPTR __PRIPTR_PREFIX "x" # define PRIXPTR __PRIPTR_PREFIX "X" /* Binary notation. */ #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 169 "/usr/include/inttypes.h" 3 4 # define PRIb8 "b" # define PRIb16 "b" # define PRIb32 "b" # define PRIb64 __PRI64_PREFIX "b" # define PRIbLEAST8 "b" # define PRIbLEAST16 "b" # define PRIbLEAST32 "b" # define PRIbLEAST64 __PRI64_PREFIX "b" # define PRIbFAST8 "b" # define PRIbFAST16 __PRIPTR_PREFIX "b" # define PRIbFAST32 __PRIPTR_PREFIX "b" # define PRIbFAST64 __PRI64_PREFIX "b" # define PRIbMAX __PRI64_PREFIX "b" # define PRIbPTR __PRIPTR_PREFIX "b" # define PRIB8 "B" # define PRIB16 "B" # define PRIB32 "B" # define PRIB64 __PRI64_PREFIX "B" # define PRIBLEAST8 "B" # define PRIBLEAST16 "B" # define PRIBLEAST32 "B" # define PRIBLEAST64 __PRI64_PREFIX "B" # define PRIBFAST8 "B" # define PRIBFAST16 __PRIPTR_PREFIX "B" # define PRIBFAST32 __PRIPTR_PREFIX "B" # define PRIBFAST64 __PRI64_PREFIX "B" # define PRIBMAX __PRI64_PREFIX "B" # define PRIBPTR __PRIPTR_PREFIX "B" # endif # 205 "/usr/include/inttypes.h" 3 4 /* Macros for scanning format specifiers. */ /* Signed decimal notation. */ # define SCNd8 "hhd" # define SCNd16 "hd" # define SCNd32 "d" # define SCNd64 __PRI64_PREFIX "d" # define SCNdLEAST8 "hhd" # define SCNdLEAST16 "hd" # define SCNdLEAST32 "d" # define SCNdLEAST64 __PRI64_PREFIX "d" # define SCNdFAST8 "hhd" # define SCNdFAST16 __PRIPTR_PREFIX "d" # define SCNdFAST32 __PRIPTR_PREFIX "d" # define SCNdFAST64 __PRI64_PREFIX "d" /* Signed decimal notation. */ # define SCNi8 "hhi" # define SCNi16 "hi" # define SCNi32 "i" # define SCNi64 __PRI64_PREFIX "i" # define SCNiLEAST8 "hhi" # define SCNiLEAST16 "hi" # define SCNiLEAST32 "i" # define SCNiLEAST64 __PRI64_PREFIX "i" # define SCNiFAST8 "hhi" # define SCNiFAST16 __PRIPTR_PREFIX "i" # define SCNiFAST32 __PRIPTR_PREFIX "i" # define SCNiFAST64 __PRI64_PREFIX "i" /* Unsigned decimal notation. */ # define SCNu8 "hhu" # define SCNu16 "hu" # define SCNu32 "u" # define SCNu64 __PRI64_PREFIX "u" # define SCNuLEAST8 "hhu" # define SCNuLEAST16 "hu" # define SCNuLEAST32 "u" # define SCNuLEAST64 __PRI64_PREFIX "u" # define SCNuFAST8 "hhu" # define SCNuFAST16 __PRIPTR_PREFIX "u" # define SCNuFAST32 __PRIPTR_PREFIX "u" # define SCNuFAST64 __PRI64_PREFIX "u" /* Octal notation. */ # define SCNo8 "hho" # define SCNo16 "ho" # define SCNo32 "o" # define SCNo64 __PRI64_PREFIX "o" # define SCNoLEAST8 "hho" # define SCNoLEAST16 "ho" # define SCNoLEAST32 "o" # define SCNoLEAST64 __PRI64_PREFIX "o" # define SCNoFAST8 "hho" # define SCNoFAST16 __PRIPTR_PREFIX "o" # define SCNoFAST32 __PRIPTR_PREFIX "o" # define SCNoFAST64 __PRI64_PREFIX "o" /* Hexadecimal notation. */ # define SCNx8 "hhx" # define SCNx16 "hx" # define SCNx32 "x" # define SCNx64 __PRI64_PREFIX "x" # define SCNxLEAST8 "hhx" # define SCNxLEAST16 "hx" # define SCNxLEAST32 "x" # define SCNxLEAST64 __PRI64_PREFIX "x" # define SCNxFAST8 "hhx" # define SCNxFAST16 __PRIPTR_PREFIX "x" # define SCNxFAST32 __PRIPTR_PREFIX "x" # define SCNxFAST64 __PRI64_PREFIX "x" /* Macros for scanning `intmax_t' and `uintmax_t'. */ # define SCNdMAX __PRI64_PREFIX "d" # define SCNiMAX __PRI64_PREFIX "i" # define SCNoMAX __PRI64_PREFIX "o" # define SCNuMAX __PRI64_PREFIX "u" # define SCNxMAX __PRI64_PREFIX "x" /* Macros for scanning `intptr_t' and `uintptr_t'. */ # define SCNdPTR __PRIPTR_PREFIX "d" # define SCNiPTR __PRIPTR_PREFIX "i" # define SCNoPTR __PRIPTR_PREFIX "o" # define SCNuPTR __PRIPTR_PREFIX "u" # define SCNxPTR __PRIPTR_PREFIX "x" /* Binary notation. */ #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 307 "/usr/include/inttypes.h" 3 4 # define SCNb8 "hhb" # define SCNb16 "hb" # define SCNb32 "b" # define SCNb64 __PRI64_PREFIX "b" # define SCNbLEAST8 "hhb" # define SCNbLEAST16 "hb" # define SCNbLEAST32 "b" # define SCNbLEAST64 __PRI64_PREFIX "b" # define SCNbFAST8 "hhb" # define SCNbFAST16 __PRIPTR_PREFIX "b" # define SCNbFAST32 __PRIPTR_PREFIX "b" # define SCNbFAST64 __PRI64_PREFIX "b" # define SCNbMAX __PRI64_PREFIX "b" # define SCNbPTR __PRIPTR_PREFIX "b" # endif # 325 "/usr/include/inttypes.h" 3 4 __BEGIN_DECLS #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 330 "/usr/include/inttypes.h" 3 4 /* We have to define the `uintmax_t' type using `ldiv_t'. */ typedef struct { long int quot; /* Quotient. */ long int rem; /* Remainder. */ } imaxdiv_t; #else # 339 "/usr/include/inttypes.h" 3 4 /* We have to define the `uintmax_t' type using `lldiv_t'. */ typedef struct { __extension__ long long int quot; /* Quotient. */ __extension__ long long int rem; /* Remainder. */ } imaxdiv_t; #endif # 348 "/usr/include/inttypes.h" 3 4 /* Compute absolute value of N. */ extern intmax_t imaxabs (intmax_t __n) __THROW __attribute__ ((__const__)); /* Return the `imaxdiv_t' representation of the value of NUMER over DENOM. */ extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) __THROW __attribute__ ((__const__)); /* Like `strtol' but convert to `intmax_t'. */ extern intmax_t strtoimax (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW; /* Like `strtoul' but convert to `uintmax_t'. */ extern uintmax_t strtoumax (const char *__restrict __nptr, char ** __restrict __endptr, int __base) __THROW; /* Like `wcstol' but convert to `intmax_t'. */ extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __THROW; /* Like `wcstoul' but convert to `uintmax_t'. */ extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __THROW; /* Versions of the above functions that handle '0b' and '0B' prefixes in base 0 or 2. */ #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (C23_STRTOL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 378 "/usr/include/inttypes.h" 3 4 # ifdef __REDIRECT extern intmax_t __REDIRECT_NTH (strtoimax, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoimax); extern uintmax_t __REDIRECT_NTH (strtoumax, (const char *__restrict __nptr, char **__restrict __endptr, int __base), __isoc23_strtoumax); extern intmax_t __REDIRECT_NTH (wcstoimax, (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base), __isoc23_wcstoimax); extern uintmax_t __REDIRECT_NTH (wcstoumax, (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base), __isoc23_wcstoumax); # else # 394 "/usr/include/inttypes.h" 3 4 extern intmax_t __isoc23_strtoimax (const char *__restrict __nptr, char **__restrict __endptr, int __base) __THROW; extern uintmax_t __isoc23_strtoumax (const char *__restrict __nptr, char ** __restrict __endptr, int __base) __THROW; extern intmax_t __isoc23_wcstoimax (const __gwchar_t *__restrict __nptr, __gwchar_t **__restrict __endptr, int __base) __THROW; extern uintmax_t __isoc23_wcstoumax (const __gwchar_t *__restrict __nptr, __gwchar_t ** __restrict __endptr, int __base) __THROW; # define strtoimax __isoc23_strtoimax # define strtoumax __isoc23_strtoumax # define wcstoimax __isoc23_wcstoimax # define wcstoumax __isoc23_wcstoumax # endif # 413 "/usr/include/inttypes.h" 3 4 #endif # 414 "/usr/include/inttypes.h" 3 4 __END_DECLS #endif /* inttypes.h */ # 418 "/usr/include/inttypes.h" 3 4 #endif /* inttypes.h expanded by -frewrite-includes */ # 25 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 2 3 #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) && _MSC_VER < 1900 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 27 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 /* MSVC headers define int32_t as int, but PRIx32 as "lx" instead of "x". * This triggers format warnings, so fix it up here. */ #undef PRId32 #undef PRIdLEAST32 #undef PRIdFAST32 #undef PRIi32 #undef PRIiLEAST32 #undef PRIiFAST32 #undef PRIo32 #undef PRIoLEAST32 #undef PRIoFAST32 #undef PRIu32 #undef PRIuLEAST32 #undef PRIuFAST32 #undef PRIx32 #undef PRIxLEAST32 #undef PRIxFAST32 #undef PRIX32 #undef PRIXLEAST32 #undef PRIXFAST32 #undef SCNd32 #undef SCNdLEAST32 #undef SCNdFAST32 #undef SCNi32 #undef SCNiLEAST32 #undef SCNiFAST32 #undef SCNo32 #undef SCNoLEAST32 #undef SCNoFAST32 #undef SCNu32 #undef SCNuLEAST32 #undef SCNuFAST32 #undef SCNx32 #undef SCNxLEAST32 #undef SCNxFAST32 #define PRId32 "d" #define PRIdLEAST32 "d" #define PRIdFAST32 "d" #define PRIi32 "i" #define PRIiLEAST32 "i" #define PRIiFAST32 "i" #define PRIo32 "o" #define PRIoLEAST32 "o" #define PRIoFAST32 "o" #define PRIu32 "u" #define PRIuLEAST32 "u" #define PRIuFAST32 "u" #define PRIx32 "x" #define PRIxLEAST32 "x" #define PRIxFAST32 "x" #define PRIX32 "X" #define PRIXLEAST32 "X" #define PRIXFAST32 "X" #define SCNd32 "d" #define SCNdLEAST32 "d" #define SCNdFAST32 "d" #define SCNi32 "i" #define SCNiLEAST32 "i" #define SCNiFAST32 "i" #define SCNo32 "o" #define SCNoLEAST32 "o" #define SCNoFAST32 "o" #define SCNu32 "u" #define SCNuLEAST32 "u" #define SCNuFAST32 "u" #define SCNx32 "x" #define SCNxLEAST32 "x" #define SCNxFAST32 "x" #endif # 99 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #endif /* __MVS__ */ # 101 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #endif /* __CLANG_INTTYPES_H */ # 102 "/home/marcus/llvm20/lib/clang/20/include/inttypes.h" 3 #endif /* inttypes.h expanded by -frewrite-includes */ # 55 "../mesa/src/mesa/main/glthread.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 55 "../mesa/src/mesa/main/glthread.h" # 56 "../mesa/src/mesa/main/glthread.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_queue.h expanded by -frewrite-includes */ #include "util/u_queue.h" #else /* u_queue.h expanded by -frewrite-includes */ # 56 "../mesa/src/mesa/main/glthread.h" # 1 "../mesa/src/util/u_queue.h" 1 /* * Copyright © 2016 Advanced Micro Devices, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS * AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. */ /* Job queue with execution in a separate thread. * * Jobs can be added from any thread. After that, the wait call can be used * to wait for completion of the job. */ #ifndef U_QUEUE_H #define U_QUEUE_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* string.h expanded by -frewrite-includes */ #include #else /* string.h expanded by -frewrite-includes */ # 36 "../mesa/src/util/u_queue.h" # 1 "/usr/include/string.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.21 String handling */ #ifndef _STRING_H #define _STRING_H 1 #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libc-header-start.h expanded by -frewrite-includes */ #include #else /* libc-header-start.h expanded by -frewrite-includes */ # 26 "/usr/include/string.h" 3 4 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4 /* Handle feature test macros at the start of a header. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header cannot have multiple include guards because ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included. */ #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION # error "Never include directly." #endif # 30 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/bits/libc-header-start.h" 3 4 # 34 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ macro. */ #undef __GLIBC_USE_LIB_EXT2 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 1 #else # 42 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 0 #endif # 44 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ macro. Most but not all symbols enabled by that macro in TS 18661-1 are enabled unconditionally in C23. In C23, the symbols in Annex F still require a new feature test macro __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 18661-1 are not included in C23 (and thus should depend on __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are enabled). __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 18661-1 not included in C23. __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS 18661-1 that are also included in C23 (with no feature test macro required in C23). __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 that are included in C23 but conditional on __STDC_WANT_IEC_60559_EXT__. (There are currently no features conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 18661-1.) */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # 71 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif # 73 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1 #else # 77 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0 #endif # 79 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_EXT #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 1 #else # 83 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 0 #endif # 85 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-4:2015 defines the __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction functions, the symbols from this TS are enabled unconditionally in C23. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 92 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # 94 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif # 96 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1 #else # 100 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0 #endif # 102 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ #undef __GLIBC_USE_IEC_60559_TYPES_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 #else # 109 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 #endif # 111 "/usr/include/bits/libc-header-start.h" 3 4 #endif /* libc-header-start.h expanded by -frewrite-includes */ # 27 "/usr/include/string.h" 2 3 4 __BEGIN_DECLS /* Get size_t and NULL from . */ #define __need_size_t #define __need_NULL #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 33 "/usr/include/string.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_null.h expanded by -frewrite-includes */ #include <__stddef_null.h> #else /* __stddef_null.h expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 1 3 4 /*===---- __stddef_null.h - Definition of NULL -----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(NULL) || !__building_module(_Builtin_stddef) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 /* linux/stddef.h will define NULL to 0. glibc (and other) headers then define * __need_NULL and rely on stddef.h to redefine NULL to the correct value again. * Modules don't support redefining macros like that, but support that pattern * in the non-modules case. */ #undef NULL #ifdef __cplusplus #if 0 /* disabled by -frewrite-includes */ #if !defined(__MINGW32__) && !defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL __null #else # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL 0 #endif # 25 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #else # 26 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #define NULL ((void*)0) #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif # 30 "/home/marcus/llvm20/lib/clang/20/include/__stddef_null.h" 3 4 #endif /* __stddef_null.h expanded by -frewrite-includes */ # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 34 "/usr/include/string.h" 2 3 4 /* Tell the caller that we provide correct C++ prototypes. */ #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && (__GNUC_PREREQ (4, 4) \ || __glibc_clang_prereq (3, 5)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/string.h" 3 4 # define __CORRECT_ISO_CPP_STRING_H_PROTO #endif # 40 "/usr/include/string.h" 3 4 /* Copy N bytes of SRC to DEST. */ extern void *memcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); /* Copy N bytes of SRC to DEST, guaranteeing correct behavior for overlapping strings. */ extern void *memmove (void *__dest, const void *__src, size_t __n) __THROW __nonnull ((1, 2)); /* Copy no more than N bytes of SRC to DEST, stopping when C is found. Return the position in DEST one byte past where C was copied, or NULL if C was not found in the first N bytes of SRC. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 54 "/usr/include/string.h" 3 4 extern void *memccpy (void *__restrict __dest, const void *__restrict __src, int __c, size_t __n) __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 4)); #endif /* Misc || X/Open. */ # 58 "/usr/include/string.h" 3 4 /* Set N bytes of S to C. */ extern void *memset (void *__s, int __c, size_t __n) __THROW __nonnull ((1)); /* Compare N bytes of S1 and S2. */ extern int memcmp (const void *__s1, const void *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Compare N bytes of S1 and S2. Return zero if S1 and S2 are equal. Return some non-zero value otherwise. Essentially __memcmpeq has the exact same semantics as memcmp except the return value is less constrained. memcmp is always a correct implementation of __memcmpeq. As well !!memcmp, -memcmp, or bcmp are correct implementations. __memcmpeq is meant to be used by compilers when memcmp return is only used for its boolean value. __memcmpeq is declared only for use by compilers. Programs should continue to use memcmp. */ extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Search N bytes of S for C. */ #ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" { extern void *memchr (void *__s, int __c, size_t __n) __THROW __asm ("memchr") __attribute_pure__ __nonnull ((1)); extern const void *memchr (const void *__s, int __c, size_t __n) __THROW __asm ("memchr") __attribute_pure__ __nonnull ((1)); # ifdef __OPTIMIZE__ __extern_always_inline void * memchr (void *__s, int __c, size_t __n) __THROW { return __builtin_memchr (__s, __c, __n); } __extern_always_inline const void * memchr (const void *__s, int __c, size_t __n) __THROW { return __builtin_memchr (__s, __c, __n); } # endif # 105 "/usr/include/string.h" 3 4 } #else # 107 "/usr/include/string.h" 3 4 extern void *memchr (const void *__s, int __c, size_t __n) __THROW __attribute_pure__ __nonnull ((1)); #endif # 110 "/usr/include/string.h" 3 4 #ifdef __USE_GNU /* Search in S for C. This is similar to `memchr' but there is no length limit. */ # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" void *rawmemchr (void *__s, int __c) __THROW __asm ("rawmemchr") __attribute_pure__ __nonnull ((1)); extern "C++" const void *rawmemchr (const void *__s, int __c) __THROW __asm ("rawmemchr") __attribute_pure__ __nonnull ((1)); # else # 120 "/usr/include/string.h" 3 4 extern void *rawmemchr (const void *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); # endif # 123 "/usr/include/string.h" 3 4 /* Search N bytes of S for the final occurrence of C. */ # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" void *memrchr (void *__s, int __c, size_t __n) __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)) __attr_access ((__read_only__, 1, 3)); extern "C++" const void *memrchr (const void *__s, int __c, size_t __n) __THROW __asm ("memrchr") __attribute_pure__ __nonnull ((1)) __attr_access ((__read_only__, 1, 3)); # else # 133 "/usr/include/string.h" 3 4 extern void *memrchr (const void *__s, int __c, size_t __n) __THROW __attribute_pure__ __nonnull ((1)) __attr_access ((__read_only__, 1, 3)); # endif # 137 "/usr/include/string.h" 3 4 #endif # 138 "/usr/include/string.h" 3 4 /* Copy SRC to DEST. */ extern char *strcpy (char *__restrict __dest, const char *__restrict __src) __THROW __nonnull ((1, 2)); /* Copy no more than N characters of SRC to DEST. */ extern char *strncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); /* Append SRC onto DEST. */ extern char *strcat (char *__restrict __dest, const char *__restrict __src) __THROW __nonnull ((1, 2)); /* Append no more than N characters from SRC onto DEST. */ extern char *strncat (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); /* Compare S1 and S2. */ extern int strcmp (const char *__s1, const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Compare N characters of S1 and S2. */ extern int strncmp (const char *__s1, const char *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Compare the collated forms of S1 and S2. */ extern int strcoll (const char *__s1, const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Put a transformation of SRC into no more than N bytes of DEST. */ extern size_t strxfrm (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((2)) __attr_access ((__write_only__, 1, 3)); #ifdef __USE_XOPEN2K8 /* POSIX.1-2008 extended locale interface (see locale.h). */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 172 "/usr/include/string.h" 3 4 # 173 "/usr/include/string.h" 3 4 /* Compare the collated forms of S1 and S2, using sorting rules from L. */ extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l) __THROW __attribute_pure__ __nonnull ((1, 2, 3)); /* Put a transformation of SRC into no more than N bytes of DEST, using sorting rules from L. */ extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n, locale_t __l) __THROW __nonnull ((2, 4)) __attr_access ((__write_only__, 1, 3)); #endif # 183 "/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 \ || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC23)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 186 "/usr/include/string.h" 3 4 /* Duplicate S, returning an identical malloc'd string. */ extern char *strdup (const char *__s) __THROW __attribute_malloc__ __nonnull ((1)); #endif # 190 "/usr/include/string.h" 3 4 /* Return a malloc'd copy of at most N bytes of STRING. The resultant string is terminated even if no null terminator appears before STRING[N]. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 195 "/usr/include/string.h" 3 4 extern char *strndup (const char *__string, size_t __n) __THROW __attribute_malloc__ __nonnull ((1)); #endif # 198 "/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU && defined __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 200 "/usr/include/string.h" 3 4 /* Duplicate S, returning an identical alloca'd string. */ # define strdupa(s) \ (__extension__ \ ({ \ const char *__old = (s); \ size_t __len = strlen (__old) + 1; \ char *__new = (char *) __builtin_alloca (__len); \ (char *) memcpy (__new, __old, __len); \ })) /* Return an alloca'd copy of at most N bytes of string. */ # define strndupa(s, n) \ (__extension__ \ ({ \ const char *__old = (s); \ size_t __len = strnlen (__old, (n)); \ char *__new = (char *) __builtin_alloca (__len + 1); \ __new[__len] = '\0'; \ (char *) memcpy (__new, __old, __len); \ })) #endif # 221 "/usr/include/string.h" 3 4 /* Find the first occurrence of C in S. */ #ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" { extern char *strchr (char *__s, int __c) __THROW __asm ("strchr") __attribute_pure__ __nonnull ((1)); extern const char *strchr (const char *__s, int __c) __THROW __asm ("strchr") __attribute_pure__ __nonnull ((1)); # ifdef __OPTIMIZE__ __extern_always_inline char * strchr (char *__s, int __c) __THROW { return __builtin_strchr (__s, __c); } __extern_always_inline const char * strchr (const char *__s, int __c) __THROW { return __builtin_strchr (__s, __c); } # endif # 244 "/usr/include/string.h" 3 4 } #else # 246 "/usr/include/string.h" 3 4 extern char *strchr (const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); #endif # 249 "/usr/include/string.h" 3 4 /* Find the last occurrence of C in S. */ #ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" { extern char *strrchr (char *__s, int __c) __THROW __asm ("strrchr") __attribute_pure__ __nonnull ((1)); extern const char *strrchr (const char *__s, int __c) __THROW __asm ("strrchr") __attribute_pure__ __nonnull ((1)); # ifdef __OPTIMIZE__ __extern_always_inline char * strrchr (char *__s, int __c) __THROW { return __builtin_strrchr (__s, __c); } __extern_always_inline const char * strrchr (const char *__s, int __c) __THROW { return __builtin_strrchr (__s, __c); } # endif # 271 "/usr/include/string.h" 3 4 } #else # 273 "/usr/include/string.h" 3 4 extern char *strrchr (const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); #endif # 276 "/usr/include/string.h" 3 4 #ifdef __USE_MISC /* This function is similar to `strchr'. But it returns a pointer to the closing NUL byte in case C is not found in S. */ # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" char *strchrnul (char *__s, int __c) __THROW __asm ("strchrnul") __attribute_pure__ __nonnull ((1)); extern "C++" const char *strchrnul (const char *__s, int __c) __THROW __asm ("strchrnul") __attribute_pure__ __nonnull ((1)); # else # 286 "/usr/include/string.h" 3 4 extern char *strchrnul (const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); # endif # 289 "/usr/include/string.h" 3 4 #endif # 290 "/usr/include/string.h" 3 4 /* Return the length of the initial segment of S which consists entirely of characters not in REJECT. */ extern size_t strcspn (const char *__s, const char *__reject) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Return the length of the initial segment of S which consists entirely of characters in ACCEPT. */ extern size_t strspn (const char *__s, const char *__accept) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Find the first occurrence in S of any character in ACCEPT. */ #ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" { extern char *strpbrk (char *__s, const char *__accept) __THROW __asm ("strpbrk") __attribute_pure__ __nonnull ((1, 2)); extern const char *strpbrk (const char *__s, const char *__accept) __THROW __asm ("strpbrk") __attribute_pure__ __nonnull ((1, 2)); # ifdef __OPTIMIZE__ __extern_always_inline char * strpbrk (char *__s, const char *__accept) __THROW { return __builtin_strpbrk (__s, __accept); } __extern_always_inline const char * strpbrk (const char *__s, const char *__accept) __THROW { return __builtin_strpbrk (__s, __accept); } # endif # 321 "/usr/include/string.h" 3 4 } #else # 323 "/usr/include/string.h" 3 4 extern char *strpbrk (const char *__s, const char *__accept) __THROW __attribute_pure__ __nonnull ((1, 2)); #endif # 326 "/usr/include/string.h" 3 4 /* Find the first occurrence of NEEDLE in HAYSTACK. */ #ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" { extern char *strstr (char *__haystack, const char *__needle) __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2)); extern const char *strstr (const char *__haystack, const char *__needle) __THROW __asm ("strstr") __attribute_pure__ __nonnull ((1, 2)); # ifdef __OPTIMIZE__ __extern_always_inline char * strstr (char *__haystack, const char *__needle) __THROW { return __builtin_strstr (__haystack, __needle); } __extern_always_inline const char * strstr (const char *__haystack, const char *__needle) __THROW { return __builtin_strstr (__haystack, __needle); } # endif # 348 "/usr/include/string.h" 3 4 } #else # 350 "/usr/include/string.h" 3 4 extern char *strstr (const char *__haystack, const char *__needle) __THROW __attribute_pure__ __nonnull ((1, 2)); #endif # 353 "/usr/include/string.h" 3 4 /* Divide S into tokens separated by characters in DELIM. */ extern char *strtok (char *__restrict __s, const char *__restrict __delim) __THROW __nonnull ((2)); /* Divide S into tokens separated by characters in DELIM. Information passed between calls are stored in SAVE_PTR. */ extern char *__strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __THROW __nonnull ((2, 3)); #ifdef __USE_POSIX extern char *strtok_r (char *__restrict __s, const char *__restrict __delim, char **__restrict __save_ptr) __THROW __nonnull ((2, 3)); #endif # 370 "/usr/include/string.h" 3 4 #ifdef __USE_MISC /* Similar to `strstr' but this function ignores the case of both strings. */ # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" char *strcasestr (char *__haystack, const char *__needle) __THROW __asm ("strcasestr") __attribute_pure__ __nonnull ((1, 2)); extern "C++" const char *strcasestr (const char *__haystack, const char *__needle) __THROW __asm ("strcasestr") __attribute_pure__ __nonnull ((1, 2)); # else # 380 "/usr/include/string.h" 3 4 extern char *strcasestr (const char *__haystack, const char *__needle) __THROW __attribute_pure__ __nonnull ((1, 2)); # endif # 383 "/usr/include/string.h" 3 4 #endif # 384 "/usr/include/string.h" 3 4 #ifdef __USE_MISC /* Find the first occurrence of NEEDLE in HAYSTACK. NEEDLE is NEEDLELEN bytes long; HAYSTACK is HAYSTACKLEN bytes long. */ extern void *memmem (const void *__haystack, size_t __haystacklen, const void *__needle, size_t __needlelen) __THROW __attribute_pure__ __nonnull ((1, 3)) __attr_access ((__read_only__, 1, 2)) __attr_access ((__read_only__, 3, 4)); /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ extern void *__mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); extern void *mempcpy (void *__restrict __dest, const void *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); #endif # 404 "/usr/include/string.h" 3 4 /* Return the length of S. */ extern size_t strlen (const char *__s) __THROW __attribute_pure__ __nonnull ((1)); #ifdef __USE_XOPEN2K8 /* Find the length of STRING, but scan at most MAXLEN characters. If no '\0' terminator is found in that many characters, return MAXLEN. */ extern size_t strnlen (const char *__string, size_t __maxlen) __THROW __attribute_pure__ __nonnull ((1)); #endif # 416 "/usr/include/string.h" 3 4 /* Return a string describing the meaning of the `errno' code in ERRNUM. */ extern char *strerror (int __errnum) __THROW; #ifdef __USE_XOPEN2K /* Reentrant version of `strerror'. There are 2 flavors of `strerror_r', GNU which returns the string and may or may not use the supplied temporary buffer and POSIX one which fills the string into the buffer. To use the POSIX version, -D_XOPEN_SOURCE=600 or -D_POSIX_C_SOURCE=200112L without -D_GNU_SOURCE is needed, otherwise the GNU version is preferred. */ #if 0 /* disabled by -frewrite-includes */ # if defined __USE_XOPEN2K && !defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 429 "/usr/include/string.h" 3 4 /* Fill BUF with a string describing the meaning of the `errno' code in ERRNUM. */ # ifdef __REDIRECT_NTH extern int __REDIRECT_NTH (strerror_r, (int __errnum, char *__buf, size_t __buflen), __xpg_strerror_r) __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); # else # 437 "/usr/include/string.h" 3 4 extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW __nonnull ((2)) __attr_access ((__write_only__, 2, 3)); # define strerror_r __xpg_strerror_r # endif # 441 "/usr/include/string.h" 3 4 # else # 442 "/usr/include/string.h" 3 4 /* If a temporary buffer is required, at most BUFLEN bytes of BUF will be used. */ extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) __THROW __nonnull ((2)) __wur __attr_access ((__write_only__, 2, 3)); # endif # 447 "/usr/include/string.h" 3 4 # ifdef __USE_GNU /* Return a string describing the meaning of tthe error in ERR. */ extern const char *strerrordesc_np (int __err) __THROW; /* Return a string with the error name in ERR. */ extern const char *strerrorname_np (int __err) __THROW; # endif # 454 "/usr/include/string.h" 3 4 #endif # 455 "/usr/include/string.h" 3 4 #ifdef __USE_XOPEN2K8 /* Translate error number to string according to the locale L. */ extern char *strerror_l (int __errnum, locale_t __l) __THROW; #endif # 460 "/usr/include/string.h" 3 4 #ifdef __USE_MISC #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* strings.h expanded by -frewrite-includes */ # include #else /* strings.h expanded by -frewrite-includes */ # 462 "/usr/include/string.h" 3 4 # 1 "/usr/include/strings.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _STRINGS_H #define _STRINGS_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/strings.h" 3 4 # 22 "/usr/include/strings.h" 3 4 #define __need_size_t #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 23 "/usr/include/strings.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 24 "/usr/include/strings.h" 2 3 4 /* Tell the caller that we provide correct C++ prototypes. */ #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (4, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 27 "/usr/include/strings.h" 3 4 # define __CORRECT_ISO_CPP_STRINGS_H_PROTO #endif # 29 "/usr/include/strings.h" 3 4 __BEGIN_DECLS #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || !defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 33 "/usr/include/strings.h" 3 4 /* Compare N bytes of S1 and S2 (same as memcmp). */ extern int bcmp (const void *__s1, const void *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Copy N bytes of SRC to DEST (like memmove, but args reversed). */ extern void bcopy (const void *__src, void *__dest, size_t __n) __THROW __nonnull ((1, 2)); /* Set N bytes of S to 0. */ extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1)); /* Find the first occurrence of C in S (same as strchr). */ # ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO extern "C++" { extern char *index (char *__s, int __c) __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); extern const char *index (const char *__s, int __c) __THROW __asm ("index") __attribute_pure__ __nonnull ((1)); #if 0 /* disabled by -frewrite-includes */ # if defined __OPTIMIZE__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 54 "/usr/include/strings.h" 3 4 __extern_always_inline char * index (char *__s, int __c) __THROW { return __builtin_index (__s, __c); } __extern_always_inline const char * index (const char *__s, int __c) __THROW { return __builtin_index (__s, __c); } # endif # 66 "/usr/include/strings.h" 3 4 } # else # 68 "/usr/include/strings.h" 3 4 extern char *index (const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); # endif # 71 "/usr/include/strings.h" 3 4 /* Find the last occurrence of C in S (same as strrchr). */ # ifdef __CORRECT_ISO_CPP_STRINGS_H_PROTO extern "C++" { extern char *rindex (char *__s, int __c) __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); extern const char *rindex (const char *__s, int __c) __THROW __asm ("rindex") __attribute_pure__ __nonnull ((1)); #if 0 /* disabled by -frewrite-includes */ # if defined __OPTIMIZE__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 82 "/usr/include/strings.h" 3 4 __extern_always_inline char * rindex (char *__s, int __c) __THROW { return __builtin_rindex (__s, __c); } __extern_always_inline const char * rindex (const char *__s, int __c) __THROW { return __builtin_rindex (__s, __c); } # endif # 94 "/usr/include/strings.h" 3 4 } # else # 96 "/usr/include/strings.h" 3 4 extern char *rindex (const char *__s, int __c) __THROW __attribute_pure__ __nonnull ((1)); # endif # 99 "/usr/include/strings.h" 3 4 #endif # 100 "/usr/include/strings.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || !defined __USE_XOPEN2K8 || defined __USE_XOPEN2K8XSI #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 102 "/usr/include/strings.h" 3 4 /* Return the position of the first bit set in I, or 0 if none are set. The least-significant bit is position 1, the most-significant 32. */ extern int ffs (int __i) __THROW __attribute_const__; #endif # 106 "/usr/include/strings.h" 3 4 /* The following two functions are non-standard but necessary for non-32 bit platforms. */ # ifdef __USE_MISC extern int ffsl (long int __l) __THROW __attribute_const__; __extension__ extern int ffsll (long long int __ll) __THROW __attribute_const__; # endif # 114 "/usr/include/strings.h" 3 4 /* Compare S1 and S2, ignoring case. */ extern int strcasecmp (const char *__s1, const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Compare no more than N chars of S1 and S2, ignoring case. */ extern int strncasecmp (const char *__s1, const char *__s2, size_t __n) __THROW __attribute_pure__ __nonnull ((1, 2)); #ifdef __USE_XOPEN2K8 /* POSIX.1-2008 extended locale interface (see locale.h). */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 125 "/usr/include/strings.h" 3 4 # 126 "/usr/include/strings.h" 3 4 /* Compare S1 and S2, ignoring case, using collation rules from LOC. */ extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc) __THROW __attribute_pure__ __nonnull ((1, 2, 3)); /* Compare no more than N chars of S1 and S2, ignoring case, using collation rules from LOC. */ extern int strncasecmp_l (const char *__s1, const char *__s2, size_t __n, locale_t __loc) __THROW __attribute_pure__ __nonnull ((1, 2, 4)); #endif # 137 "/usr/include/strings.h" 3 4 __END_DECLS #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3,4) && __USE_FORTIFY_LEVEL > 0 \ && defined __fortify_function #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 142 "/usr/include/strings.h" 3 4 /* Functions with security checks. */ #if 0 /* disabled by -frewrite-includes */ # if defined __USE_MISC || !defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 144 "/usr/include/strings.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 144 "/usr/include/strings.h" 3 4 # 145 "/usr/include/strings.h" 3 4 # endif # 146 "/usr/include/strings.h" 3 4 #endif # 147 "/usr/include/strings.h" 3 4 #endif /* strings.h */ # 149 "/usr/include/strings.h" 3 4 #endif /* strings.h expanded by -frewrite-includes */ # 463 "/usr/include/string.h" 2 3 4 /* Set N bytes of S to 0. The compiler will not delete a call to this function, even if S is dead after the call. */ extern void explicit_bzero (void *__s, size_t __n) __THROW __nonnull ((1)) __fortified_attr_access (__write_only__, 1, 2); /* Return the next DELIM-delimited token from *STRINGP, terminating it with a '\0', and update *STRINGP to point past it. */ extern char *strsep (char **__restrict __stringp, const char *__restrict __delim) __THROW __nonnull ((1, 2)); #endif # 475 "/usr/include/string.h" 3 4 #ifdef __USE_XOPEN2K8 /* Return a string describing the meaning of the signal number in SIG. */ extern char *strsignal (int __sig) __THROW; # ifdef __USE_GNU /* Return an abbreviation string for the signal number SIG. */ extern const char *sigabbrev_np (int __sig) __THROW; /* Return a string describing the meaning of the signal number in SIG, the result is not translated. */ extern const char *sigdescr_np (int __sig) __THROW; # endif # 487 "/usr/include/string.h" 3 4 /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src) __THROW __nonnull ((1, 2)); extern char *stpcpy (char *__restrict __dest, const char *__restrict __src) __THROW __nonnull ((1, 2)); /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ extern char *__stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); extern char *stpncpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)); #endif # 503 "/usr/include/string.h" 3 4 #ifdef __USE_MISC /* Copy at most N - 1 characters from SRC to DEST. */ extern size_t strlcpy (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)) __attr_access ((__write_only__, 1, 3)); /* Append SRC to DEST, possibly with truncation to keep the total size below N. */ extern size_t strlcat (char *__restrict __dest, const char *__restrict __src, size_t __n) __THROW __nonnull ((1, 2)) __attr_access ((__read_write__, 1, 3)); #endif # 516 "/usr/include/string.h" 3 4 #ifdef __USE_GNU /* Compare S1 and S2 as strings holding name & indices/version numbers. */ extern int strverscmp (const char *__s1, const char *__s2) __THROW __attribute_pure__ __nonnull ((1, 2)); /* Sautee STRING briskly. */ extern char *strfry (char *__string) __THROW __nonnull ((1)); /* Frobnicate N bytes of S. */ extern void *memfrob (void *__s, size_t __n) __THROW __nonnull ((1)) __attr_access ((__read_write__, 1, 2)); # ifndef basename /* Return the file name within directory of FILENAME. We don't declare the function if the `basename' macro is available (defined in ) which makes the XPG version of this function available. */ # ifdef __CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" char *basename (char *__filename) __THROW __asm ("basename") __nonnull ((1)); extern "C++" const char *basename (const char *__filename) __THROW __asm ("basename") __nonnull ((1)); # else # 540 "/usr/include/string.h" 3 4 extern char *basename (const char *__filename) __THROW __nonnull ((1)); # endif # 542 "/usr/include/string.h" 3 4 # endif # 543 "/usr/include/string.h" 3 4 #endif # 544 "/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3,4) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 546 "/usr/include/string.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 547 "/usr/include/string.h" 3 4 /* Functions with security checks. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 548 "/usr/include/string.h" 3 4 # 549 "/usr/include/string.h" 3 4 # endif # 550 "/usr/include/string.h" 3 4 #endif # 551 "/usr/include/string.h" 3 4 __END_DECLS #endif /* string.h */ # 555 "/usr/include/string.h" 3 4 #endif /* string.h expanded by -frewrite-includes */ # 37 "../mesa/src/util/u_queue.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* cnd_monotonic.h expanded by -frewrite-includes */ #include "cnd_monotonic.h" #else /* cnd_monotonic.h expanded by -frewrite-includes */ # 38 "../mesa/src/util/u_queue.h" # 1 "../mesa/src/util/cnd_monotonic.h" 1 /************************************************************************** * * Copyright 2020 Lag Free Games, LLC * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef CND_MONOTONIC_H #define CND_MONOTONIC_H #if 0 /* expanded by -frewrite-includes */ #include "c11/threads.h" #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/util/cnd_monotonic.h" # 32 "../mesa/src/util/cnd_monotonic.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* os_time.h expanded by -frewrite-includes */ #include "util/os_time.h" #else /* os_time.h expanded by -frewrite-includes */ # 33 "../mesa/src/util/cnd_monotonic.h" # 1 "../mesa/src/util/os_time.h" 1 /************************************************************************** * * Copyright 2008-2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * @file * OS independent time-manipulation functions. * * @author Jose Fonseca */ #ifndef _OS_TIME_H_ #define _OS_TIME_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/util/os_time.h" # 39 "../mesa/src/util/os_time.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 39 "../mesa/src/util/os_time.h" # 40 "../mesa/src/util/os_time.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/util/os_time.h" # 41 "../mesa/src/util/os_time.h" #ifdef __cplusplus extern "C" { #endif # 45 "../mesa/src/util/os_time.h" #define ONE_SECOND_IN_NS INT64_C(1000000000) #define OS_TIMEOUT_INFINITE 0xffffffffffffffffull /* * Get the current time in nanoseconds from an unknown base. */ int64_t os_time_get_nano(void); /* * Get the current time in microseconds from an unknown base. */ static inline int64_t os_time_get(void) { return os_time_get_nano() / 1000; } static inline struct tm * os_localtime(const time_t *timer, struct tm *buf) { #ifdef _WIN32 return localtime_s(buf, timer) ? NULL : buf; #else # 73 "../mesa/src/util/os_time.h" return localtime_r(timer, buf); #endif # 75 "../mesa/src/util/os_time.h" } /* * Sleep. */ void os_time_sleep(int64_t usecs); /* * Helper function for detecting time outs, taking in account overflow. * * Returns true if the current time has elapsed beyond the specified interval. */ static inline bool os_time_timeout(int64_t start, int64_t end, int64_t curr) { if (start <= end) return !(start <= curr && curr < end); else return !((start <= curr) || (curr < end)); } /** * Convert a relative timeout in nanoseconds into an absolute timeout, * in other words, it returns current time + timeout. * os_time_get_nano() must be monotonic. * OS_TIMEOUT_INFINITE is passed through unchanged. If the calculation * overflows, OS_TIMEOUT_INFINITE is returned. */ int64_t os_time_get_absolute_timeout(uint64_t timeout); /** * Wait until the variable at the given memory location is zero. * * \param var variable * \param timeout timeout in ns, can be anything from 0 (no wait) to * OS_TIMEOUT_INFINITE (wait forever) * \return true if the variable is zero */ bool os_wait_until_zero(volatile int *var, uint64_t timeout); /** * Wait until the variable at the given memory location is zero. * The timeout is the absolute time when the waiting should stop. If it is * less than or equal to the current time, it only returns the status and * doesn't wait. OS_TIMEOUT_INFINITE waits forever. This requires that * os_time_get_nano is monotonic. * * \param var variable * \param timeout the time in ns when the waiting should stop * \return true if the variable is zero */ bool os_wait_until_zero_abs_timeout(volatile int *var, int64_t timeout); #ifdef __cplusplus } #endif # 142 "../mesa/src/util/os_time.h" #endif /* _OS_TIME_H_ */ # 144 "../mesa/src/util/os_time.h" #endif /* os_time.h expanded by -frewrite-includes */ # 34 "../mesa/src/util/cnd_monotonic.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 35 "../mesa/src/util/cnd_monotonic.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 36 "../mesa/src/util/cnd_monotonic.h" 2 #ifdef __cplusplus extern "C" { #endif # 40 "../mesa/src/util/cnd_monotonic.h" struct u_cnd_monotonic { #ifdef _WIN32 void *Ptr; #else # 46 "../mesa/src/util/cnd_monotonic.h" pthread_cond_t cond; #endif # 48 "../mesa/src/util/cnd_monotonic.h" }; int u_cnd_monotonic_init(struct u_cnd_monotonic *cond); void u_cnd_monotonic_destroy(struct u_cnd_monotonic *cond); int u_cnd_monotonic_broadcast(struct u_cnd_monotonic *cond); int u_cnd_monotonic_signal(struct u_cnd_monotonic *cond); int u_cnd_monotonic_timedwait(struct u_cnd_monotonic *cond, mtx_t *mtx, const struct timespec *abs_time); int u_cnd_monotonic_wait(struct u_cnd_monotonic *cond, mtx_t *mtx); #ifdef __cplusplus } #endif # 61 "../mesa/src/util/cnd_monotonic.h" #endif # 63 "../mesa/src/util/cnd_monotonic.h" #endif /* cnd_monotonic.h expanded by -frewrite-includes */ # 39 "../mesa/src/util/u_queue.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* simple_mtx.h expanded by -frewrite-includes */ #include "simple_mtx.h" #else /* simple_mtx.h expanded by -frewrite-includes */ # 39 "../mesa/src/util/u_queue.h" # 1 "../mesa/src/util/simple_mtx.h" 1 /* * Copyright © 2015 Intel * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef _SIMPLE_MTX_H #define _SIMPLE_MTX_H #if defined(__CLANG_REWRITTEN_INCLUDES) /* futex.h expanded by -frewrite-includes */ #include "util/futex.h" #else /* futex.h expanded by -frewrite-includes */ # 27 "../mesa/src/util/simple_mtx.h" # 1 "../mesa/src/util/futex.h" 1 /* * Copyright © 2015 Intel * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef UTIL_FUTEX_H #define UTIL_FUTEX_H #if 0 /* disabled by -frewrite-includes */ #if THREAD_SANITIZER #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/futex.h" #define UTIL_FUTEX_SUPPORTED 0 #else # 30 "../mesa/src/util/futex.h" #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE_LINUX_FUTEX_H) && defined(__linux__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 31 "../mesa/src/util/futex.h" #define UTIL_FUTEX_SUPPORTED 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__FreeBSD__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 33 "../mesa/src/util/futex.h" #define UTIL_FUTEX_SUPPORTED 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__OpenBSD__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 35 "../mesa/src/util/futex.h" #define UTIL_FUTEX_SUPPORTED 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN32) && !defined(WINDOWS_NO_FUTEX) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 37 "../mesa/src/util/futex.h" #define UTIL_FUTEX_SUPPORTED 1 #else # 39 "../mesa/src/util/futex.h" #define UTIL_FUTEX_SUPPORTED 0 #endif # 41 "../mesa/src/util/futex.h" #endif # 42 "../mesa/src/util/futex.h" #if 0 /* disabled by -frewrite-includes */ #if UTIL_FUTEX_SUPPORTED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 44 "../mesa/src/util/futex.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 44 "../mesa/src/util/futex.h" # 45 "../mesa/src/util/futex.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 45 "../mesa/src/util/futex.h" # 46 "../mesa/src/util/futex.h" #endif # 47 "../mesa/src/util/futex.h" #ifdef __cplusplus extern "C" { #endif # 51 "../mesa/src/util/futex.h" #if 0 /* disabled by -frewrite-includes */ #if UTIL_FUTEX_SUPPORTED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 53 "../mesa/src/util/futex.h" int futex_wake(uint32_t *addr, int32_t count); int futex_wait(uint32_t *addr, int32_t value, const struct timespec *timeout); #endif # 56 "../mesa/src/util/futex.h" #ifdef __cplusplus } #endif # 60 "../mesa/src/util/futex.h" #endif /* UTIL_FUTEX_H */ # 62 "../mesa/src/util/futex.h" #endif /* futex.h expanded by -frewrite-includes */ # 28 "../mesa/src/util/simple_mtx.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 28 "../mesa/src/util/simple_mtx.h" # 29 "../mesa/src/util/simple_mtx.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_call_once.h expanded by -frewrite-includes */ #include "util/u_call_once.h" #else /* u_call_once.h expanded by -frewrite-includes */ # 29 "../mesa/src/util/simple_mtx.h" # 1 "../mesa/src/util/u_call_once.h" 1 /* * Copyright 2022 Yonggang Luo * SPDX-License-Identifier: MIT * * Extend C11 call_once to support context parameter */ #ifndef U_CALL_ONCE_H_ #define U_CALL_ONCE_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 11 "../mesa/src/util/u_call_once.h" # 12 "../mesa/src/util/u_call_once.h" #if 0 /* expanded by -frewrite-includes */ #include "c11/threads.h" #endif /* expanded by -frewrite-includes */ # 13 "../mesa/src/util/u_call_once.h" # 14 "../mesa/src/util/u_call_once.h" #if 0 /* expanded by -frewrite-includes */ #include "macros.h" #endif /* expanded by -frewrite-includes */ # 14 "../mesa/src/util/u_call_once.h" # 15 "../mesa/src/util/u_call_once.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_atomic.h expanded by -frewrite-includes */ #include "u_atomic.h" #else /* u_atomic.h expanded by -frewrite-includes */ # 15 "../mesa/src/util/u_call_once.h" # 1 "../mesa/src/util/u_atomic.h" 1 /** * Many similar implementations exist. See for example libwsbm * or the linux kernel include/atomic.h * * No copyright claimed on this file. * */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 9 "../mesa/src/util/u_atomic.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 10 "../mesa/src/util/u_atomic.h" 2 #ifndef U_ATOMIC_H #define U_ATOMIC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../mesa/src/util/u_atomic.h" # 15 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../mesa/src/util/u_atomic.h" # 16 "../mesa/src/util/u_atomic.h" /* Favor OS-provided implementations. * * Where no OS-provided implementation is available, fall back to * locally coded assembly, compiler intrinsic or ultimately a * mutex-based implementation. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_OS_SOLARIS #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 26 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_MSVC_INTRINSIC #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_GCC_INTRINSIC #else # 30 "../mesa/src/util/u_atomic.h" #error "Unsupported platform" #endif # 32 "../mesa/src/util/u_atomic.h" /* Implementation using GCC-provided synchronization intrinsics */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_GCC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 37 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "GCC Sync Intrinsics" #if 0 /* disabled by -frewrite-includes */ #if defined(USE_GCC_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 41 "../mesa/src/util/u_atomic.h" /* The builtins with explicit memory model are available since GCC 4.7. */ #define p_atomic_set(_v, _i) __atomic_store_n((_v), (_i), __ATOMIC_RELEASE) #define p_atomic_read(_v) __atomic_load_n((_v), __ATOMIC_ACQUIRE) #define p_atomic_read_relaxed(_v) __atomic_load_n((_v), __ATOMIC_RELAXED) #define p_atomic_dec_zero(v) (__atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) == 0) #define p_atomic_inc(v) (void) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec(v) (void) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add(v, i) (void) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_inc_return(v) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec_return(v) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add_return(v, i) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_fetch_add(v, i) __atomic_fetch_add((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_xchg(v, i) __atomic_exchange_n((v), (i), __ATOMIC_ACQ_REL) #define PIPE_NATIVE_ATOMIC_XCHG #else # 58 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(v) (__sync_sub_and_fetch((v), 1) == 0) #define p_atomic_inc(v) (void) __sync_add_and_fetch((v), 1) #define p_atomic_dec(v) (void) __sync_sub_and_fetch((v), 1) #define p_atomic_add(v, i) (void) __sync_add_and_fetch((v), (i)) #define p_atomic_inc_return(v) __sync_add_and_fetch((v), 1) #define p_atomic_dec_return(v) __sync_sub_and_fetch((v), 1) #define p_atomic_add_return(v, i) __sync_add_and_fetch((v), (i)) #define p_atomic_fetch_add(v, i) __sync_fetch_and_add((v), (i)) #endif # 72 "../mesa/src/util/u_atomic.h" /* There is no __atomic_* compare and exchange that returns the current value. * Also, GCC 5.4 seems unable to optimize a compound statement expression that * uses an additional stack variable with __atomic_compare_exchange[_n]. */ #define p_atomic_cmpxchg(v, old, _new) \ __sync_val_compare_and_swap((v), (old), (_new)) #define p_atomic_cmpxchg_ptr(v, old, _new) p_atomic_cmpxchg(v, old, _new) #endif # 82 "../mesa/src/util/u_atomic.h" /* Unlocked version for single threaded environments, such as some * windows kernel modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_UNLOCKED) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Unlocked" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) ((void) p_atomic_inc_return(_v)) #define p_atomic_dec(_v) ((void) p_atomic_dec_return(_v)) #define p_atomic_add(_v, _i) ((void) p_atomic_add_return((_v), (_i))) #define p_atomic_inc_return(_v) (++(*(_v))) #define p_atomic_dec_return(_v) (--(*(_v))) #define p_atomic_add_return(_v, _i) (*(_v) = *(_v) + (_i)) #define p_atomic_fetch_add(_v, _i) (*(_v) = *(_v) + (_i), *(_v) - (_i)) #define p_atomic_cmpxchg(_v, _old, _new) (*(_v) == (_old) ? (*(_v) = (_new), (_old)) : *(_v)) #define p_atomic_cmpxchg_ptr(_v, _old, _new) p_atomic_cmpxchg(_v, _old, _new) #endif # 107 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_MSVC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 110 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "MSVC Intrinsics" /* We use the Windows header's Interlocked*64 functions instead of the * _Interlocked*64 intrinsics wherever we can, as support for the latter varies * with target CPU, whereas Windows headers take care of all portability * issues: using intrinsics where available, falling back to library * implementations where not. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 119 "../mesa/src/util/u_atomic.h" # 120 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 120 "../mesa/src/util/u_atomic.h" # 121 "../mesa/src/util/u_atomic.h" __forceinline char _interlockedadd8(char volatile * _Addend, char _Value) { return _InterlockedExchangeAdd8(_Addend, _Value) + _Value; } __forceinline short _interlockedadd16(short volatile * _Addend, short _Value) { return _InterlockedExchangeAdd16(_Addend, _Value) + _Value; } /* MSVC supports decltype keyword, but it's only supported on C++ and doesn't * quite work here; and if a C++-only solution is worthwhile, then it would be * better to use templates / function overloading, instead of decltype magic. * Therefore, we rely on implicit casting to LONGLONG for the functions that return */ #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) \ (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) \ ((void) p_atomic_inc_return(_v)) #define p_atomic_inc_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), 1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedIncrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedIncrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedincrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(_v) \ ((void) p_atomic_dec_return(_v)) #define p_atomic_dec_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), -1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedDecrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedDecrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockeddecrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(_v, _i) \ ((void) p_atomic_fetch_add((_v), (_i))) #define p_atomic_add_return(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _interlockedadd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _interlockedadd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _interlockedadd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchangeAdd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchangeAdd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchangeAdd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchangeadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(_v, _old, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedCompareExchange8 ((char *) (_v), (char) (_new), (char) (_old)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedCompareExchange16((short *) (_v), (short) (_new), (short) (_old)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedCompareExchange ((long *) (_v), (long) (_new), (long) (_old)) : \ sizeof *(_v) == sizeof(__int64) ? _InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) #else # 192 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange((long *)(_v), (long)(_new), (long)(_old)) #endif # 194 "../mesa/src/util/u_atomic.h" #define PIPE_NATIVE_ATOMIC_XCHG #define p_atomic_xchg(_v, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchange8 ((char *) (_v), (char) (_new)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchange16((short *) (_v), (short) (_new)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchange ((long *) (_v), (long) (_new)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchange64((__int64 *)(_v), (__int64)(_new)) : \ (assert(!"should not get here"), 0)) #endif # 204 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_SOLARIS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 206 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Solaris OS atomic functions" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 209 "../mesa/src/util/u_atomic.h" # 210 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 210 "../mesa/src/util/u_atomic.h" # 211 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_dec_zero(v) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) == 0 : \ (assert(!"should not get here"), 0)) #define p_atomic_inc(v) (void) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_inc_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(v) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(v, i) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8 ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add_return(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) - (i) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(v, old, _new) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_cas_8 ((uint8_t *)(v), (uint8_t )(old), (uint8_t )(_new)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_cas_16((uint16_t *)(v), (uint16_t)(old), (uint16_t)(_new)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if INTPTR_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new))) #else # 281 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new))) #endif # 283 "../mesa/src/util/u_atomic.h" #endif # 285 "../mesa/src/util/u_atomic.h" #ifndef PIPE_ATOMIC #error "No pipe_atomic implementation selected" #endif # 289 "../mesa/src/util/u_atomic.h" #ifndef PIPE_NATIVE_ATOMIC_XCHG static inline uint8_t p_atomic_xchg_8(uint8_t *v, uint8_t i) { uint8_t actual = p_atomic_read(v); uint8_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint16_t p_atomic_xchg_16(uint16_t *v, uint16_t i) { uint16_t actual = p_atomic_read(v); uint16_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint32_t p_atomic_xchg_32(uint32_t *v, uint32_t i) { uint32_t actual = p_atomic_read(v); uint32_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint64_t p_atomic_xchg_64(uint64_t *v, uint64_t i) { uint64_t actual = p_atomic_read(v); uint64_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } #define p_atomic_xchg(v, i) (__typeof(*(v)))( \ sizeof(*(v)) == sizeof(uint8_t) ? p_atomic_xchg_8 ((uint8_t *)(v), (uint8_t )(i)) : \ sizeof(*(v)) == sizeof(uint16_t) ? p_atomic_xchg_16((uint16_t *)(v), (uint16_t)(i)) : \ sizeof(*(v)) == sizeof(uint32_t) ? p_atomic_xchg_32((uint32_t *)(v), (uint32_t)(i)) : \ sizeof(*(v)) == sizeof(uint64_t) ? p_atomic_xchg_64((uint64_t *)(v), (uint64_t)(i)) : \ (assert(!"should not get here"), 0)) #endif # 342 "../mesa/src/util/u_atomic.h" /* On x86 we can have sizeof(uint64_t) = 8 and _Alignof(uint64_t) = 4. causing split locks. The * implementation does handle that correctly, but with an internal mutex. Extend the alignment to * avoid this. * `p_atomic_int64_t` and `p_atomic_uint64_t` are used for casting any pointer to * `p_atomic_int64_t *` and `p_atomic_uint64_t *`. That's for telling the compiler is accessing * the 64 bits atomic in 8 byte aligned way to avoid clang `misaligned atomic operation` warning. * To define 64 bits atomic memeber in struct type, * use `alignas(8) int64_t $member` or `alignas(8) uint64_t $member` is enough. */ typedef struct { #ifndef __cplusplus _Alignas(8) #else # 356 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 358 "../mesa/src/util/u_atomic.h" int64_t value; } p_atomic_int64_t; typedef struct { #ifndef __cplusplus _Alignas(8) #else # 364 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 366 "../mesa/src/util/u_atomic.h" uint64_t value; } p_atomic_uint64_t; #endif /* U_ATOMIC_H */ # 370 "../mesa/src/util/u_atomic.h" #endif /* u_atomic.h expanded by -frewrite-includes */ # 16 "../mesa/src/util/u_call_once.h" 2 #ifdef __cplusplus extern "C" { #endif # 20 "../mesa/src/util/u_call_once.h" /* The data can be mutable or immutable. */ typedef void (*util_call_once_data_func)(const void *data); struct util_once_flag { bool called; once_flag flag; }; typedef struct util_once_flag util_once_flag; #define UTIL_ONCE_FLAG_INIT { false, ONCE_FLAG_INIT } /** * This is used to optimize the call to call_once out when the func are * already called and finished, so when util_call_once are called in * hot path it's only incur an extra load instruction cost. */ static ALWAYS_INLINE void util_call_once(util_once_flag *flag, void (*func)(void)) { if (unlikely(!p_atomic_read_relaxed(&flag->called))) { call_once(&flag->flag, func); p_atomic_set(&flag->called, true); } } /** * @brief Wrapper around call_once to pass data to func */ void util_call_once_data_slow(once_flag *once, util_call_once_data_func func, const void *data); /** * This is used to optimize the call to util_call_once_data_slow out when * the func function are already called and finished, * so when util_call_once_data are called in hot path it's only incur an extra * load instruction cost. */ static ALWAYS_INLINE void util_call_once_data(util_once_flag *flag, util_call_once_data_func func, const void *data) { if (unlikely(!p_atomic_read_relaxed(&flag->called))) { util_call_once_data_slow(&(flag->flag), func, data); p_atomic_set(&flag->called, true); } } #ifdef __cplusplus } #endif # 70 "../mesa/src/util/u_call_once.h" #endif /* U_CALL_ONCE_H_ */ # 72 "../mesa/src/util/u_call_once.h" #endif /* u_call_once.h expanded by -frewrite-includes */ # 30 "../mesa/src/util/simple_mtx.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_atomic.h expanded by -frewrite-includes */ #include "u_atomic.h" #else /* u_atomic.h expanded by -frewrite-includes */ # 30 "../mesa/src/util/simple_mtx.h" # 1 "../mesa/src/util/u_atomic.h" 1 /** * Many similar implementations exist. See for example libwsbm * or the linux kernel include/atomic.h * * No copyright claimed on this file. * */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 9 "../mesa/src/util/u_atomic.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 10 "../mesa/src/util/u_atomic.h" 2 #ifndef U_ATOMIC_H #define U_ATOMIC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../mesa/src/util/u_atomic.h" # 15 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../mesa/src/util/u_atomic.h" # 16 "../mesa/src/util/u_atomic.h" /* Favor OS-provided implementations. * * Where no OS-provided implementation is available, fall back to * locally coded assembly, compiler intrinsic or ultimately a * mutex-based implementation. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_OS_SOLARIS #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 26 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_MSVC_INTRINSIC #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_GCC_INTRINSIC #else # 30 "../mesa/src/util/u_atomic.h" #error "Unsupported platform" #endif # 32 "../mesa/src/util/u_atomic.h" /* Implementation using GCC-provided synchronization intrinsics */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_GCC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 37 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "GCC Sync Intrinsics" #if 0 /* disabled by -frewrite-includes */ #if defined(USE_GCC_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../mesa/src/util/u_atomic.h" /* The builtins with explicit memory model are available since GCC 4.7. */ #define p_atomic_set(_v, _i) __atomic_store_n((_v), (_i), __ATOMIC_RELEASE) #define p_atomic_read(_v) __atomic_load_n((_v), __ATOMIC_ACQUIRE) #define p_atomic_read_relaxed(_v) __atomic_load_n((_v), __ATOMIC_RELAXED) #define p_atomic_dec_zero(v) (__atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) == 0) #define p_atomic_inc(v) (void) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec(v) (void) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add(v, i) (void) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_inc_return(v) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec_return(v) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add_return(v, i) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_fetch_add(v, i) __atomic_fetch_add((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_xchg(v, i) __atomic_exchange_n((v), (i), __ATOMIC_ACQ_REL) #define PIPE_NATIVE_ATOMIC_XCHG #else # 58 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(v) (__sync_sub_and_fetch((v), 1) == 0) #define p_atomic_inc(v) (void) __sync_add_and_fetch((v), 1) #define p_atomic_dec(v) (void) __sync_sub_and_fetch((v), 1) #define p_atomic_add(v, i) (void) __sync_add_and_fetch((v), (i)) #define p_atomic_inc_return(v) __sync_add_and_fetch((v), 1) #define p_atomic_dec_return(v) __sync_sub_and_fetch((v), 1) #define p_atomic_add_return(v, i) __sync_add_and_fetch((v), (i)) #define p_atomic_fetch_add(v, i) __sync_fetch_and_add((v), (i)) #endif # 72 "../mesa/src/util/u_atomic.h" /* There is no __atomic_* compare and exchange that returns the current value. * Also, GCC 5.4 seems unable to optimize a compound statement expression that * uses an additional stack variable with __atomic_compare_exchange[_n]. */ #define p_atomic_cmpxchg(v, old, _new) \ __sync_val_compare_and_swap((v), (old), (_new)) #define p_atomic_cmpxchg_ptr(v, old, _new) p_atomic_cmpxchg(v, old, _new) #endif # 82 "../mesa/src/util/u_atomic.h" /* Unlocked version for single threaded environments, such as some * windows kernel modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_UNLOCKED) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Unlocked" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) ((void) p_atomic_inc_return(_v)) #define p_atomic_dec(_v) ((void) p_atomic_dec_return(_v)) #define p_atomic_add(_v, _i) ((void) p_atomic_add_return((_v), (_i))) #define p_atomic_inc_return(_v) (++(*(_v))) #define p_atomic_dec_return(_v) (--(*(_v))) #define p_atomic_add_return(_v, _i) (*(_v) = *(_v) + (_i)) #define p_atomic_fetch_add(_v, _i) (*(_v) = *(_v) + (_i), *(_v) - (_i)) #define p_atomic_cmpxchg(_v, _old, _new) (*(_v) == (_old) ? (*(_v) = (_new), (_old)) : *(_v)) #define p_atomic_cmpxchg_ptr(_v, _old, _new) p_atomic_cmpxchg(_v, _old, _new) #endif # 107 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_MSVC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 110 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "MSVC Intrinsics" /* We use the Windows header's Interlocked*64 functions instead of the * _Interlocked*64 intrinsics wherever we can, as support for the latter varies * with target CPU, whereas Windows headers take care of all portability * issues: using intrinsics where available, falling back to library * implementations where not. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 119 "../mesa/src/util/u_atomic.h" # 120 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 120 "../mesa/src/util/u_atomic.h" # 121 "../mesa/src/util/u_atomic.h" __forceinline char _interlockedadd8(char volatile * _Addend, char _Value) { return _InterlockedExchangeAdd8(_Addend, _Value) + _Value; } __forceinline short _interlockedadd16(short volatile * _Addend, short _Value) { return _InterlockedExchangeAdd16(_Addend, _Value) + _Value; } /* MSVC supports decltype keyword, but it's only supported on C++ and doesn't * quite work here; and if a C++-only solution is worthwhile, then it would be * better to use templates / function overloading, instead of decltype magic. * Therefore, we rely on implicit casting to LONGLONG for the functions that return */ #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) \ (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) \ ((void) p_atomic_inc_return(_v)) #define p_atomic_inc_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), 1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedIncrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedIncrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedincrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(_v) \ ((void) p_atomic_dec_return(_v)) #define p_atomic_dec_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), -1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedDecrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedDecrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockeddecrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(_v, _i) \ ((void) p_atomic_fetch_add((_v), (_i))) #define p_atomic_add_return(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _interlockedadd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _interlockedadd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _interlockedadd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchangeAdd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchangeAdd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchangeAdd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchangeadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(_v, _old, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedCompareExchange8 ((char *) (_v), (char) (_new), (char) (_old)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedCompareExchange16((short *) (_v), (short) (_new), (short) (_old)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedCompareExchange ((long *) (_v), (long) (_new), (long) (_old)) : \ sizeof *(_v) == sizeof(__int64) ? _InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) #else # 192 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange((long *)(_v), (long)(_new), (long)(_old)) #endif # 194 "../mesa/src/util/u_atomic.h" #define PIPE_NATIVE_ATOMIC_XCHG #define p_atomic_xchg(_v, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchange8 ((char *) (_v), (char) (_new)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchange16((short *) (_v), (short) (_new)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchange ((long *) (_v), (long) (_new)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchange64((__int64 *)(_v), (__int64)(_new)) : \ (assert(!"should not get here"), 0)) #endif # 204 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_SOLARIS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 206 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Solaris OS atomic functions" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 209 "../mesa/src/util/u_atomic.h" # 210 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 210 "../mesa/src/util/u_atomic.h" # 211 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_dec_zero(v) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) == 0 : \ (assert(!"should not get here"), 0)) #define p_atomic_inc(v) (void) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_inc_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(v) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(v, i) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8 ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add_return(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) - (i) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(v, old, _new) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_cas_8 ((uint8_t *)(v), (uint8_t )(old), (uint8_t )(_new)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_cas_16((uint16_t *)(v), (uint16_t)(old), (uint16_t)(_new)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if INTPTR_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new))) #else # 281 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new))) #endif # 283 "../mesa/src/util/u_atomic.h" #endif # 285 "../mesa/src/util/u_atomic.h" #ifndef PIPE_ATOMIC #error "No pipe_atomic implementation selected" #endif # 289 "../mesa/src/util/u_atomic.h" #ifndef PIPE_NATIVE_ATOMIC_XCHG static inline uint8_t p_atomic_xchg_8(uint8_t *v, uint8_t i) { uint8_t actual = p_atomic_read(v); uint8_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint16_t p_atomic_xchg_16(uint16_t *v, uint16_t i) { uint16_t actual = p_atomic_read(v); uint16_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint32_t p_atomic_xchg_32(uint32_t *v, uint32_t i) { uint32_t actual = p_atomic_read(v); uint32_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint64_t p_atomic_xchg_64(uint64_t *v, uint64_t i) { uint64_t actual = p_atomic_read(v); uint64_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } #define p_atomic_xchg(v, i) (__typeof(*(v)))( \ sizeof(*(v)) == sizeof(uint8_t) ? p_atomic_xchg_8 ((uint8_t *)(v), (uint8_t )(i)) : \ sizeof(*(v)) == sizeof(uint16_t) ? p_atomic_xchg_16((uint16_t *)(v), (uint16_t)(i)) : \ sizeof(*(v)) == sizeof(uint32_t) ? p_atomic_xchg_32((uint32_t *)(v), (uint32_t)(i)) : \ sizeof(*(v)) == sizeof(uint64_t) ? p_atomic_xchg_64((uint64_t *)(v), (uint64_t)(i)) : \ (assert(!"should not get here"), 0)) #endif # 342 "../mesa/src/util/u_atomic.h" /* On x86 we can have sizeof(uint64_t) = 8 and _Alignof(uint64_t) = 4. causing split locks. The * implementation does handle that correctly, but with an internal mutex. Extend the alignment to * avoid this. * `p_atomic_int64_t` and `p_atomic_uint64_t` are used for casting any pointer to * `p_atomic_int64_t *` and `p_atomic_uint64_t *`. That's for telling the compiler is accessing * the 64 bits atomic in 8 byte aligned way to avoid clang `misaligned atomic operation` warning. * To define 64 bits atomic memeber in struct type, * use `alignas(8) int64_t $member` or `alignas(8) uint64_t $member` is enough. */ typedef struct { #ifndef __cplusplus _Alignas(8) #else # 356 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 358 "../mesa/src/util/u_atomic.h" int64_t value; } p_atomic_int64_t; typedef struct { #ifndef __cplusplus _Alignas(8) #else # 364 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 366 "../mesa/src/util/u_atomic.h" uint64_t value; } p_atomic_uint64_t; #endif /* U_ATOMIC_H */ # 370 "../mesa/src/util/u_atomic.h" #endif /* u_atomic.h expanded by -frewrite-includes */ # 31 "../mesa/src/util/simple_mtx.h" 2 #if 0 /* disabled by -frewrite-includes */ #if UTIL_FUTEX_SUPPORTED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 33 "../mesa/src/util/simple_mtx.h" #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE_VALGRIND) && !defined(NDEBUG) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 34 "../mesa/src/util/simple_mtx.h" #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/util/simple_mtx.h" # 35 "../mesa/src/util/simple_mtx.h" #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/util/simple_mtx.h" # 36 "../mesa/src/util/simple_mtx.h" # define HG(x) x #else # 38 "../mesa/src/util/simple_mtx.h" # define HG(x) #endif # 40 "../mesa/src/util/simple_mtx.h" #else /* !UTIL_FUTEX_SUPPORTED */ # 41 "../mesa/src/util/simple_mtx.h" #if 0 /* expanded by -frewrite-includes */ # include "c11/threads.h" #endif /* expanded by -frewrite-includes */ # 41 "../mesa/src/util/simple_mtx.h" # 42 "../mesa/src/util/simple_mtx.h" #endif /* UTIL_FUTEX_SUPPORTED */ # 43 "../mesa/src/util/simple_mtx.h" #ifdef __cplusplus extern "C" { #endif # 47 "../mesa/src/util/simple_mtx.h" #if 0 /* disabled by -frewrite-includes */ #if UTIL_FUTEX_SUPPORTED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 49 "../mesa/src/util/simple_mtx.h" /* mtx_t - Fast, simple mutex * * While modern pthread mutexes are very fast (implemented using futex), they * still incur a call to an external DSO and overhead of the generality and * features of pthread mutexes. Most mutexes in mesa only needs lock/unlock, * and the idea here is that we can inline the atomic operation and make the * fast case just two intructions. Mutexes are subtle and finicky to * implement, so we carefully copy the implementation from Ulrich Dreppers * well-written and well-reviewed paper: * * "Futexes Are Tricky" * http://www.akkadia.org/drepper/futex.pdf * * We implement "mutex3", which gives us a mutex that has no syscalls on * uncontended lock or unlock. Further, the uncontended case boils down to a * locked cmpxchg and an untaken branch, the uncontended unlock is just a * locked decr and an untaken branch. We use __builtin_expect() to indicate * that contention is unlikely so that gcc will put the contention code out of * the main code flow. * * A fast mutex only supports lock/unlock, can't be recursive or used with * condition variables. */ typedef struct { uint32_t val; } simple_mtx_t; #define SIMPLE_MTX_INITIALIZER { 0 } #define _SIMPLE_MTX_INVALID_VALUE 0xd0d0d0d0 static inline void simple_mtx_init(simple_mtx_t *mtx, ASSERTED int type) { assert(type == mtx_plain); mtx->val = 0; HG(ANNOTATE_RWLOCK_CREATE(mtx)); } static inline void simple_mtx_destroy(ASSERTED simple_mtx_t *mtx) { HG(ANNOTATE_RWLOCK_DESTROY(mtx)); #ifndef NDEBUG mtx->val = _SIMPLE_MTX_INVALID_VALUE; #endif # 99 "../mesa/src/util/simple_mtx.h" } static inline void simple_mtx_lock(simple_mtx_t *mtx) { int64_t c; c = p_atomic_cmpxchg(&mtx->val, 0, 1); assert(c != _SIMPLE_MTX_INVALID_VALUE); if (__builtin_expect(c != 0, 0)) { if (c != 2) c = p_atomic_xchg(&mtx->val, 2); while (c != 0) { futex_wait(&mtx->val, 2, NULL); c = p_atomic_xchg(&mtx->val, 2); } } HG(ANNOTATE_RWLOCK_ACQUIRED(mtx, 1)); } static inline void simple_mtx_unlock(simple_mtx_t *mtx) { int64_t c; HG(ANNOTATE_RWLOCK_RELEASED(mtx, 1)); c = p_atomic_fetch_add(&mtx->val, -1); assert(c != _SIMPLE_MTX_INVALID_VALUE); if (__builtin_expect(c != 1, 0)) { mtx->val = 0; futex_wake(&mtx->val, 1); } } static inline void simple_mtx_assert_locked(simple_mtx_t *mtx) { assert(mtx->val); } #else /* !UTIL_FUTEX_SUPPORTED */ # 146 "../mesa/src/util/simple_mtx.h" typedef struct simple_mtx_t { util_once_flag flag; mtx_t mtx; } simple_mtx_t; #define SIMPLE_MTX_INITIALIZER { UTIL_ONCE_FLAG_INIT } void _simple_mtx_plain_init_once(simple_mtx_t *mtx); static inline void _simple_mtx_init_with_once(simple_mtx_t *mtx) { util_call_once_data(&mtx->flag, (util_call_once_data_func)_simple_mtx_plain_init_once, mtx); } void simple_mtx_init(simple_mtx_t *mtx, int type); void simple_mtx_destroy(simple_mtx_t *mtx); static inline void simple_mtx_lock(simple_mtx_t *mtx) { _simple_mtx_init_with_once(mtx); mtx_lock(&mtx->mtx); } static inline void simple_mtx_unlock(simple_mtx_t *mtx) { _simple_mtx_init_with_once(mtx); mtx_unlock(&mtx->mtx); } static inline void simple_mtx_assert_locked(simple_mtx_t *mtx) { #ifndef NDEBUG _simple_mtx_init_with_once(mtx); /* NOTE: this would not work for recursive mutexes, but * mtx_t doesn't support those */ int ret = mtx_trylock(&mtx->mtx); assert(ret == thrd_busy); if (ret == thrd_success) mtx_unlock(&mtx->mtx); #else # 196 "../mesa/src/util/simple_mtx.h" (void)mtx; #endif # 198 "../mesa/src/util/simple_mtx.h" } #endif /* UTIL_FUTEX_SUPPORTED */ # 201 "../mesa/src/util/simple_mtx.h" #ifdef __cplusplus } #endif # 205 "../mesa/src/util/simple_mtx.h" #endif /* _SIMPLE_MTX_H */ # 207 "../mesa/src/util/simple_mtx.h" #endif /* simple_mtx.h expanded by -frewrite-includes */ # 40 "../mesa/src/util/u_queue.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/futex.h" #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/util/u_queue.h" # 41 "../mesa/src/util/u_queue.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* list.h expanded by -frewrite-includes */ #include "util/list.h" #else /* list.h expanded by -frewrite-includes */ # 41 "../mesa/src/util/u_queue.h" # 1 "../mesa/src/util/list.h" 1 /************************************************************************** * * Copyright 2006 VMware, Inc., Bismarck, ND. USA. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * USE OR OTHER DEALINGS IN THE SOFTWARE. * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * **************************************************************************/ /** * \file * List macros heavily inspired by the Linux kernel * list handling. No list looping yet. * * Is not threadsafe, so common operations need to * be protected using an external mutex. */ #ifndef _UTIL_LIST_H_ #define _UTIL_LIST_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 41 "../mesa/src/util/list.h" # 42 "../mesa/src/util/list.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 42 "../mesa/src/util/list.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 43 "../mesa/src/util/list.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 43 "../mesa/src/util/list.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 44 "../mesa/src/util/list.h" 2 #define list_assert(cond, msg) assert(cond && msg) struct list_head { struct list_head *prev; struct list_head *next; }; static inline void list_inithead(struct list_head *item) { item->prev = item; item->next = item; } /** * Prepend an item to a list * * @param item The element to add to the list * @param list The list to prepend to */ static inline void list_add(struct list_head *item, struct list_head *list) { item->prev = list; item->next = list->next; list->next->prev = item; list->next = item; } /** * Append an item to a list * * @param item The element to add to the list * @param list The list to append to */ static inline void list_addtail(struct list_head *item, struct list_head *list) { item->next = list; item->prev = list->prev; list->prev->next = item; list->prev = item; } static inline bool list_is_empty(const struct list_head *list); static inline void list_replace(struct list_head *from, struct list_head *to) { if (list_is_empty(from)) { list_inithead(to); } else { to->prev = from->prev; to->next = from->next; from->next->prev = to; from->prev->next = to; } } static inline void list_del(struct list_head *item) { item->prev->next = item->next; item->next->prev = item->prev; item->prev = item->next = NULL; } static inline void list_delinit(struct list_head *item) { item->prev->next = item->next; item->next->prev = item->prev; item->next = item; item->prev = item; } static inline bool list_is_empty(const struct list_head *list) { return list->next == list; } static inline bool list_is_linked(const struct list_head *list) { /* both must be NULL or both must be not NULL */ assert((list->prev != NULL) == (list->next != NULL)); return list->next != NULL; } /** * Returns whether the list has exactly one element. */ static inline bool list_is_singular(const struct list_head *list) { return list_is_linked(list) && !list_is_empty(list) && list->next->next == list; } static inline unsigned list_length(const struct list_head *list) { struct list_head *node; unsigned length = 0; for (node = list->next; node != list; node = node->next) length++; return length; } static inline void list_splice(struct list_head *src, struct list_head *dst) { if (list_is_empty(src)) return; src->next->prev = dst; src->prev->next = dst->next; dst->next->prev = src->prev; dst->next = src->next; } static inline void list_splicetail(struct list_head *src, struct list_head *dst) { if (list_is_empty(src)) return; src->prev->next = dst; src->next->prev = dst->prev; dst->prev->next = src->next; dst->prev = src->prev; } static inline void list_validate(const struct list_head *list) { struct list_head *node; assert(list_is_linked(list)); assert(list->next->prev == list && list->prev->next == list); for (node = list->next; node != list; node = node->next) assert(node->next->prev == node && node->prev->next == node); } /** * Move an item from one place in a list to another * * The item can be in this list, or in another. * * @param item The item to move * @param loc The element to put the item in front of */ static inline void list_move_to(struct list_head *item, struct list_head *loc) { list_del(item); list_add(item, loc); } #define list_entry(__item, __type, __field) \ ((__type *)(((char *)(__item)) - offsetof(__type, __field))) /** * Cast from a pointer to a member of a struct back to the containing struct. * * 'sample' MUST be initialized, or else the result is undefined! */ #define list_container_of(ptr, sample, member) \ (void *)((char *)(ptr) \ - ((char *)&(sample)->member - (char *)(sample))) #define list_first_entry(ptr, type, member) \ list_entry((ptr)->next, type, member) #define list_last_entry(ptr, type, member) \ list_entry((ptr)->prev, type, member) #define LIST_FOR_EACH_ENTRY(pos, head, member) \ for (pos = NULL, pos = list_container_of((head)->next, pos, member); \ &pos->member != (head); \ pos = list_container_of(pos->member.next, pos, member)) #define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \ for (pos = NULL, pos = list_container_of((head)->next, pos, member), \ storage = list_container_of(pos->member.next, pos, member); \ &pos->member != (head); \ pos = storage, storage = list_container_of(storage->member.next, storage, member)) #define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \ for (pos = NULL, pos = list_container_of((head)->prev, pos, member), \ storage = list_container_of(pos->member.prev, pos, member); \ &pos->member != (head); \ pos = storage, storage = list_container_of(storage->member.prev, storage, member)) #define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \ for (pos = NULL, pos = list_container_of((start), pos, member); \ &pos->member != (head); \ pos = list_container_of(pos->member.next, pos, member)) #define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \ for (pos = NULL, pos = list_container_of((start), pos, member); \ &pos->member != (head); \ pos = list_container_of(pos->member.prev, pos, member)) #define list_for_each_entry(type, pos, head, member) \ for (type *pos = list_entry((head)->next, type, member), \ *__next = list_entry(pos->member.next, type, member); \ &pos->member != (head); \ pos = list_entry(pos->member.next, type, member), \ list_assert(pos == __next, "use _safe iterator"), \ __next = list_entry(__next->member.next, type, member)) #define list_for_each_entry_safe(type, pos, head, member) \ for (type *pos = list_entry((head)->next, type, member), \ *__next = list_entry(pos->member.next, type, member); \ &pos->member != (head); \ pos = __next, \ __next = list_entry(__next->member.next, type, member)) #define list_for_each_entry_rev(type, pos, head, member) \ for (type *pos = list_entry((head)->prev, type, member), \ *__prev = list_entry(pos->member.prev, type, member); \ &pos->member != (head); \ pos = list_entry(pos->member.prev, type, member), \ list_assert(pos == __prev, "use _safe iterator"), \ __prev = list_entry(__prev->member.prev, type, member)) #define list_for_each_entry_safe_rev(type, pos, head, member) \ for (type *pos = list_entry((head)->prev, type, member), \ *__prev = list_entry(pos->member.prev, type, member); \ &pos->member != (head); \ pos = __prev, \ __prev = list_entry(__prev->member.prev, type, member)) #define list_for_each_entry_from(type, pos, start, head, member) \ for (type *pos = list_entry((start), type, member); \ &pos->member != (head); \ pos = list_entry(pos->member.next, type, member)) #define list_for_each_entry_from_safe(type, pos, start, head, member) \ for (type *pos = list_entry((start), type, member), \ *__next = list_entry(pos->member.next, type, member); \ &pos->member != (head); \ pos = __next, \ __next = list_entry(__next->member.next, type, member)) #define list_for_each_entry_from_rev(type, pos, start, head, member) \ for (type *pos = list_entry((start), type, member); \ &pos->member != (head); \ pos = list_entry(pos->member.prev, type, member)) #define list_pair_for_each_entry(type, pos1, pos2, head1, head2, member) \ for (type *pos1 = list_entry((head1)->next, type, member), \ *pos2 = list_entry((head2)->next, type, member); \ &pos1->member != (head1) && &pos2->member != (head2); \ pos1 = list_entry(pos1->member.next, type, member), \ pos2 = list_entry(pos2->member.next, type, member)) #endif /*_UTIL_LIST_H_*/ # 291 "../mesa/src/util/list.h" #endif /* list.h expanded by -frewrite-includes */ # 42 "../mesa/src/util/u_queue.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 42 "../mesa/src/util/u_queue.h" # 43 "../mesa/src/util/u_queue.h" #if 0 /* expanded by -frewrite-includes */ #include "util/os_time.h" #endif /* expanded by -frewrite-includes */ # 43 "../mesa/src/util/u_queue.h" # 44 "../mesa/src/util/u_queue.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_atomic.h expanded by -frewrite-includes */ #include "util/u_atomic.h" #else /* u_atomic.h expanded by -frewrite-includes */ # 44 "../mesa/src/util/u_queue.h" # 1 "../mesa/src/util/u_atomic.h" 1 /** * Many similar implementations exist. See for example libwsbm * or the linux kernel include/atomic.h * * No copyright claimed on this file. * */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 9 "../mesa/src/util/u_atomic.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 10 "../mesa/src/util/u_atomic.h" 2 #ifndef U_ATOMIC_H #define U_ATOMIC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../mesa/src/util/u_atomic.h" # 15 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../mesa/src/util/u_atomic.h" # 16 "../mesa/src/util/u_atomic.h" /* Favor OS-provided implementations. * * Where no OS-provided implementation is available, fall back to * locally coded assembly, compiler intrinsic or ultimately a * mutex-based implementation. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_OS_SOLARIS #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 26 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_MSVC_INTRINSIC #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_GCC_INTRINSIC #else # 30 "../mesa/src/util/u_atomic.h" #error "Unsupported platform" #endif # 32 "../mesa/src/util/u_atomic.h" /* Implementation using GCC-provided synchronization intrinsics */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_GCC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 37 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "GCC Sync Intrinsics" #if 0 /* disabled by -frewrite-includes */ #if defined(USE_GCC_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../mesa/src/util/u_atomic.h" /* The builtins with explicit memory model are available since GCC 4.7. */ #define p_atomic_set(_v, _i) __atomic_store_n((_v), (_i), __ATOMIC_RELEASE) #define p_atomic_read(_v) __atomic_load_n((_v), __ATOMIC_ACQUIRE) #define p_atomic_read_relaxed(_v) __atomic_load_n((_v), __ATOMIC_RELAXED) #define p_atomic_dec_zero(v) (__atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) == 0) #define p_atomic_inc(v) (void) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec(v) (void) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add(v, i) (void) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_inc_return(v) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec_return(v) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add_return(v, i) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_fetch_add(v, i) __atomic_fetch_add((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_xchg(v, i) __atomic_exchange_n((v), (i), __ATOMIC_ACQ_REL) #define PIPE_NATIVE_ATOMIC_XCHG #else # 58 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(v) (__sync_sub_and_fetch((v), 1) == 0) #define p_atomic_inc(v) (void) __sync_add_and_fetch((v), 1) #define p_atomic_dec(v) (void) __sync_sub_and_fetch((v), 1) #define p_atomic_add(v, i) (void) __sync_add_and_fetch((v), (i)) #define p_atomic_inc_return(v) __sync_add_and_fetch((v), 1) #define p_atomic_dec_return(v) __sync_sub_and_fetch((v), 1) #define p_atomic_add_return(v, i) __sync_add_and_fetch((v), (i)) #define p_atomic_fetch_add(v, i) __sync_fetch_and_add((v), (i)) #endif # 72 "../mesa/src/util/u_atomic.h" /* There is no __atomic_* compare and exchange that returns the current value. * Also, GCC 5.4 seems unable to optimize a compound statement expression that * uses an additional stack variable with __atomic_compare_exchange[_n]. */ #define p_atomic_cmpxchg(v, old, _new) \ __sync_val_compare_and_swap((v), (old), (_new)) #define p_atomic_cmpxchg_ptr(v, old, _new) p_atomic_cmpxchg(v, old, _new) #endif # 82 "../mesa/src/util/u_atomic.h" /* Unlocked version for single threaded environments, such as some * windows kernel modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_UNLOCKED) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Unlocked" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) ((void) p_atomic_inc_return(_v)) #define p_atomic_dec(_v) ((void) p_atomic_dec_return(_v)) #define p_atomic_add(_v, _i) ((void) p_atomic_add_return((_v), (_i))) #define p_atomic_inc_return(_v) (++(*(_v))) #define p_atomic_dec_return(_v) (--(*(_v))) #define p_atomic_add_return(_v, _i) (*(_v) = *(_v) + (_i)) #define p_atomic_fetch_add(_v, _i) (*(_v) = *(_v) + (_i), *(_v) - (_i)) #define p_atomic_cmpxchg(_v, _old, _new) (*(_v) == (_old) ? (*(_v) = (_new), (_old)) : *(_v)) #define p_atomic_cmpxchg_ptr(_v, _old, _new) p_atomic_cmpxchg(_v, _old, _new) #endif # 107 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_MSVC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 110 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "MSVC Intrinsics" /* We use the Windows header's Interlocked*64 functions instead of the * _Interlocked*64 intrinsics wherever we can, as support for the latter varies * with target CPU, whereas Windows headers take care of all portability * issues: using intrinsics where available, falling back to library * implementations where not. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 119 "../mesa/src/util/u_atomic.h" # 120 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 120 "../mesa/src/util/u_atomic.h" # 121 "../mesa/src/util/u_atomic.h" __forceinline char _interlockedadd8(char volatile * _Addend, char _Value) { return _InterlockedExchangeAdd8(_Addend, _Value) + _Value; } __forceinline short _interlockedadd16(short volatile * _Addend, short _Value) { return _InterlockedExchangeAdd16(_Addend, _Value) + _Value; } /* MSVC supports decltype keyword, but it's only supported on C++ and doesn't * quite work here; and if a C++-only solution is worthwhile, then it would be * better to use templates / function overloading, instead of decltype magic. * Therefore, we rely on implicit casting to LONGLONG for the functions that return */ #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) \ (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) \ ((void) p_atomic_inc_return(_v)) #define p_atomic_inc_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), 1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedIncrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedIncrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedincrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(_v) \ ((void) p_atomic_dec_return(_v)) #define p_atomic_dec_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), -1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedDecrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedDecrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockeddecrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(_v, _i) \ ((void) p_atomic_fetch_add((_v), (_i))) #define p_atomic_add_return(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _interlockedadd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _interlockedadd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _interlockedadd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchangeAdd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchangeAdd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchangeAdd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchangeadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(_v, _old, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedCompareExchange8 ((char *) (_v), (char) (_new), (char) (_old)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedCompareExchange16((short *) (_v), (short) (_new), (short) (_old)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedCompareExchange ((long *) (_v), (long) (_new), (long) (_old)) : \ sizeof *(_v) == sizeof(__int64) ? _InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) #else # 192 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange((long *)(_v), (long)(_new), (long)(_old)) #endif # 194 "../mesa/src/util/u_atomic.h" #define PIPE_NATIVE_ATOMIC_XCHG #define p_atomic_xchg(_v, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchange8 ((char *) (_v), (char) (_new)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchange16((short *) (_v), (short) (_new)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchange ((long *) (_v), (long) (_new)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchange64((__int64 *)(_v), (__int64)(_new)) : \ (assert(!"should not get here"), 0)) #endif # 204 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_SOLARIS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 206 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Solaris OS atomic functions" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 209 "../mesa/src/util/u_atomic.h" # 210 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 210 "../mesa/src/util/u_atomic.h" # 211 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_dec_zero(v) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) == 0 : \ (assert(!"should not get here"), 0)) #define p_atomic_inc(v) (void) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_inc_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(v) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(v, i) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8 ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add_return(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) - (i) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(v, old, _new) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_cas_8 ((uint8_t *)(v), (uint8_t )(old), (uint8_t )(_new)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_cas_16((uint16_t *)(v), (uint16_t)(old), (uint16_t)(_new)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if INTPTR_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new))) #else # 281 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new))) #endif # 283 "../mesa/src/util/u_atomic.h" #endif # 285 "../mesa/src/util/u_atomic.h" #ifndef PIPE_ATOMIC #error "No pipe_atomic implementation selected" #endif # 289 "../mesa/src/util/u_atomic.h" #ifndef PIPE_NATIVE_ATOMIC_XCHG static inline uint8_t p_atomic_xchg_8(uint8_t *v, uint8_t i) { uint8_t actual = p_atomic_read(v); uint8_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint16_t p_atomic_xchg_16(uint16_t *v, uint16_t i) { uint16_t actual = p_atomic_read(v); uint16_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint32_t p_atomic_xchg_32(uint32_t *v, uint32_t i) { uint32_t actual = p_atomic_read(v); uint32_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint64_t p_atomic_xchg_64(uint64_t *v, uint64_t i) { uint64_t actual = p_atomic_read(v); uint64_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } #define p_atomic_xchg(v, i) (__typeof(*(v)))( \ sizeof(*(v)) == sizeof(uint8_t) ? p_atomic_xchg_8 ((uint8_t *)(v), (uint8_t )(i)) : \ sizeof(*(v)) == sizeof(uint16_t) ? p_atomic_xchg_16((uint16_t *)(v), (uint16_t)(i)) : \ sizeof(*(v)) == sizeof(uint32_t) ? p_atomic_xchg_32((uint32_t *)(v), (uint32_t)(i)) : \ sizeof(*(v)) == sizeof(uint64_t) ? p_atomic_xchg_64((uint64_t *)(v), (uint64_t)(i)) : \ (assert(!"should not get here"), 0)) #endif # 342 "../mesa/src/util/u_atomic.h" /* On x86 we can have sizeof(uint64_t) = 8 and _Alignof(uint64_t) = 4. causing split locks. The * implementation does handle that correctly, but with an internal mutex. Extend the alignment to * avoid this. * `p_atomic_int64_t` and `p_atomic_uint64_t` are used for casting any pointer to * `p_atomic_int64_t *` and `p_atomic_uint64_t *`. That's for telling the compiler is accessing * the 64 bits atomic in 8 byte aligned way to avoid clang `misaligned atomic operation` warning. * To define 64 bits atomic memeber in struct type, * use `alignas(8) int64_t $member` or `alignas(8) uint64_t $member` is enough. */ typedef struct { #ifndef __cplusplus _Alignas(8) #else # 356 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 358 "../mesa/src/util/u_atomic.h" int64_t value; } p_atomic_int64_t; typedef struct { #ifndef __cplusplus _Alignas(8) #else # 364 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 366 "../mesa/src/util/u_atomic.h" uint64_t value; } p_atomic_uint64_t; #endif /* U_ATOMIC_H */ # 370 "../mesa/src/util/u_atomic.h" #endif /* u_atomic.h expanded by -frewrite-includes */ # 45 "../mesa/src/util/u_queue.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_thread.h expanded by -frewrite-includes */ #include "util/u_thread.h" #else /* u_thread.h expanded by -frewrite-includes */ # 45 "../mesa/src/util/u_queue.h" # 1 "../mesa/src/util/u_thread.h" 1 /************************************************************************** * * Copyright 1999-2006 Brian Paul * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef U_THREAD_H_ #define U_THREAD_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/util/u_thread.h" # 31 "../mesa/src/util/u_thread.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/util/u_thread.h" # 32 "../mesa/src/util/u_thread.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../mesa/src/util/u_thread.h" # 33 "../mesa/src/util/u_thread.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/util/u_thread.h" # 34 "../mesa/src/util/u_thread.h" #if 0 /* expanded by -frewrite-includes */ #include "c11/threads.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/util/u_thread.h" # 36 "../mesa/src/util/u_thread.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* detect_os.h expanded by -frewrite-includes */ #include "detect_os.h" #else /* detect_os.h expanded by -frewrite-includes */ # 36 "../mesa/src/util/u_thread.h" # 1 "../mesa/src/util/detect_os.h" 1 /* SPDX-License-Identifier: MIT */ /* Copyright 2008 VMware, Inc. */ /** * Auto-detect the operating system family. * * See also: * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html * - echo | gcc -dM -E - | sort * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx * * @author José Fonseca */ #ifndef DETECT_OS_H #define DETECT_OS_H #if 0 /* disabled by -frewrite-includes */ #if defined(__linux__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 19 "../mesa/src/util/detect_os.h" #define DETECT_OS_LINUX 1 #define DETECT_OS_POSIX 1 #endif # 22 "../mesa/src/util/detect_os.h" /* * Android defines __linux__, so DETECT_OS_LINUX and DETECT_OS_POSIX will * also be defined. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__ANDROID__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/detect_os.h" #define DETECT_OS_ANDROID 1 #endif # 30 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 32 "../mesa/src/util/detect_os.h" #define DETECT_OS_FREEBSD 1 #define DETECT_OS_BSD 1 #define DETECT_OS_POSIX 1 #endif # 36 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__OpenBSD__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "../mesa/src/util/detect_os.h" #define DETECT_OS_OPENBSD 1 #define DETECT_OS_BSD 1 #define DETECT_OS_POSIX 1 #endif # 42 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__NetBSD__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 44 "../mesa/src/util/detect_os.h" #define DETECT_OS_NETBSD 1 #define DETECT_OS_BSD 1 #define DETECT_OS_POSIX 1 #endif # 48 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__DragonFly__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 50 "../mesa/src/util/detect_os.h" #define DETECT_OS_DRAGONFLY 1 #define DETECT_OS_BSD 1 #define DETECT_OS_POSIX 1 #endif # 54 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__Fuchsia__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 56 "../mesa/src/util/detect_os.h" #define DETECT_OS_FUCHSIA 1 #define DETECT_OS_POSIX_LITE 1 #endif # 59 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__GNU__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 61 "../mesa/src/util/detect_os.h" #define DETECT_OS_HURD 1 #define DETECT_OS_POSIX 1 #endif # 64 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 66 "../mesa/src/util/detect_os.h" #define DETECT_OS_SOLARIS 1 #define DETECT_OS_POSIX 1 #endif # 69 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__APPLE__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "../mesa/src/util/detect_os.h" #define DETECT_OS_APPLE 1 #define DETECT_OS_POSIX 1 #endif # 74 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) || defined(WIN32) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 76 "../mesa/src/util/detect_os.h" #define DETECT_OS_WINDOWS 1 #endif # 78 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__HAIKU__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 80 "../mesa/src/util/detect_os.h" #define DETECT_OS_HAIKU 1 #define DETECT_OS_POSIX 1 #endif # 83 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__CYGWIN__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 85 "../mesa/src/util/detect_os.h" #define DETECT_OS_CYGWIN 1 #define DETECT_OS_POSIX 1 #endif # 88 "../mesa/src/util/detect_os.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__managarm__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "../mesa/src/util/detect_os.h" #define DETECT_OS_MANAGARM 1 #define DETECT_OS_POSIX 1 #endif # 93 "../mesa/src/util/detect_os.h" /* * Make sure DETECT_OS_* are always defined, so that they can be used with #if */ #ifndef DETECT_OS_ANDROID #define DETECT_OS_ANDROID 0 #endif # 101 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_APPLE #define DETECT_OS_APPLE 0 #endif # 104 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_BSD #define DETECT_OS_BSD 0 #endif # 107 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_CYGWIN #define DETECT_OS_CYGWIN 0 #endif # 110 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_DRAGONFLY #define DETECT_OS_DRAGONFLY 0 #endif # 113 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_FREEBSD #define DETECT_OS_FREEBSD 0 #endif # 116 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_HAIKU #define DETECT_OS_HAIKU 0 #endif # 119 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_FUCHSIA #define DETECT_OS_FUCHSIA 0 #endif # 122 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_HURD #define DETECT_OS_HURD 0 #endif # 125 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_LINUX #define DETECT_OS_LINUX 0 #endif # 128 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_NETBSD #define DETECT_OS_NETBSD 0 #endif # 131 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_OPENBSD #define DETECT_OS_OPENBSD 0 #endif # 134 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_SOLARIS #define DETECT_OS_SOLARIS 0 #endif # 137 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_POSIX #define DETECT_OS_POSIX 0 #endif # 140 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_POSIX_LITE #define DETECT_OS_POSIX_LITE DETECT_OS_POSIX #endif # 143 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_WINDOWS #define DETECT_OS_WINDOWS 0 #endif # 146 "../mesa/src/util/detect_os.h" #ifndef DETECT_OS_MANAGARM #define DETECT_OS_MANAGARM 0 #endif # 149 "../mesa/src/util/detect_os.h" #endif /* DETECT_OS_H */ # 151 "../mesa/src/util/detect_os.h" #endif /* detect_os.h expanded by -frewrite-includes */ # 37 "../mesa/src/util/u_thread.h" 2 /* Some highly performance-sensitive thread-local variables like the current GL * context are declared with the initial-exec model on Linux. glibc allocates a * fixed number of extra slots for initial-exec TLS variables at startup, and * Mesa relies on (even if it's dlopen()ed after init) being able to fit into * those. This model saves the call to look up the address of the TLS variable. * * However, if we don't have this TLS model available on the platform, then we * still want to use normal TLS (which involves a function call, but not the * expensive pthread_getspecific() or its equivalent). */ #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_APPLE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 49 "../mesa/src/util/u_thread.h" /* Apple Clang emits wrappers when using thread_local that break module linkage, * but not with __thread */ #define __THREAD_INITIAL_EXEC __thread #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GLIBC__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 54 "../mesa/src/util/u_thread.h" #define __THREAD_INITIAL_EXEC thread_local __attribute__((tls_model("initial-exec"))) #define REALLY_INITIAL_EXEC #else # 57 "../mesa/src/util/u_thread.h" #define __THREAD_INITIAL_EXEC thread_local #endif # 59 "../mesa/src/util/u_thread.h" #ifdef __cplusplus extern "C" { #endif # 63 "../mesa/src/util/u_thread.h" int util_get_current_cpu(void); int u_thread_create(thrd_t *thrd, int (*routine)(void *), void *param); void u_thread_setname( const char *name ); /** * Set thread affinity. * * \param thread Thread * \param mask Set this affinity mask * \param old_mask Previous affinity mask returned if not NULL * \param num_mask_bits Number of bits in both masks * \return true on success */ bool util_set_thread_affinity(thrd_t thread, const uint32_t *mask, uint32_t *old_mask, unsigned num_mask_bits); static inline bool util_set_current_thread_affinity(const uint32_t *mask, uint32_t *old_mask, unsigned num_mask_bits) { return util_set_thread_affinity(thrd_current(), mask, old_mask, num_mask_bits); } /* * Thread statistics. */ /* Return the time of a thread's CPU time clock. */ int64_t util_thread_get_time_nano(thrd_t thread); /* Return the time of the current thread's CPU time clock. */ static inline int64_t util_current_thread_get_time_nano(void) { return util_thread_get_time_nano(thrd_current()); } static inline bool u_thread_is_self(thrd_t thread) { return thrd_equal(thrd_current(), thread); } /* * util_barrier */ #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE_PTHREAD) && !defined(__APPLE__) && !defined(__HAIKU__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 120 "../mesa/src/util/u_thread.h" typedef pthread_barrier_t util_barrier; #else /* If the OS doesn't have its own, implement barriers using a mutex and a condvar */ # 124 "../mesa/src/util/u_thread.h" typedef struct { unsigned count; unsigned waiters; uint64_t sequence; mtx_t mutex; cnd_t condvar; } util_barrier; #endif # 134 "../mesa/src/util/u_thread.h" void util_barrier_init(util_barrier *barrier, unsigned count); void util_barrier_destroy(util_barrier *barrier); bool util_barrier_wait(util_barrier *barrier); /* * Semaphores */ typedef struct { mtx_t mutex; cnd_t cond; int counter; } util_semaphore; static inline void util_semaphore_init(util_semaphore *sema, int init_val) { (void) mtx_init(&sema->mutex, mtx_plain); cnd_init(&sema->cond); sema->counter = init_val; } static inline void util_semaphore_destroy(util_semaphore *sema) { mtx_destroy(&sema->mutex); cnd_destroy(&sema->cond); } /** Signal/increment semaphore counter */ static inline void util_semaphore_signal(util_semaphore *sema) { mtx_lock(&sema->mutex); sema->counter++; cnd_signal(&sema->cond); mtx_unlock(&sema->mutex); } /** Wait for semaphore counter to be greater than zero */ static inline void util_semaphore_wait(util_semaphore *sema) { mtx_lock(&sema->mutex); while (sema->counter <= 0) { cnd_wait(&sema->cond, &sema->mutex); } sema->counter--; mtx_unlock(&sema->mutex); } #ifdef __cplusplus } #endif # 193 "../mesa/src/util/u_thread.h" #endif /* U_THREAD_H_ */ # 195 "../mesa/src/util/u_thread.h" #endif /* u_thread.h expanded by -frewrite-includes */ # 46 "../mesa/src/util/u_queue.h" 2 #ifdef __cplusplus extern "C" { #endif # 50 "../mesa/src/util/u_queue.h" #define UTIL_QUEUE_INIT_USE_MINIMUM_PRIORITY (1 << 0) #define UTIL_QUEUE_INIT_RESIZE_IF_FULL (1 << 1) #define UTIL_QUEUE_INIT_SET_FULL_THREAD_AFFINITY (1 << 2) #if 0 /* disabled by -frewrite-includes */ #if UTIL_FUTEX_SUPPORTED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 56 "../mesa/src/util/u_queue.h" #define UTIL_QUEUE_FENCE_FUTEX #else # 58 "../mesa/src/util/u_queue.h" #define UTIL_QUEUE_FENCE_STANDARD #endif # 60 "../mesa/src/util/u_queue.h" #ifdef UTIL_QUEUE_FENCE_FUTEX /* Job completion fence. * Put this into your job structure. */ struct util_queue_fence { /* The fence can be in one of three states: * 0 - signaled * 1 - unsignaled * 2 - unsignaled, may have waiters */ uint32_t val; }; static inline void util_queue_fence_init(struct util_queue_fence *fence) { fence->val = 0; } static inline void util_queue_fence_destroy(struct util_queue_fence *fence) { assert(p_atomic_read_relaxed(&fence->val) == 0); /* no-op */ } static inline void util_queue_fence_signal(struct util_queue_fence *fence) { uint32_t val = (uint32_t)p_atomic_xchg(&fence->val, 0); assert(val != 0); if (val == 2) futex_wake(&fence->val, INT32_MAX); } /** * Move \p fence back into unsignalled state. * * \warning The caller must ensure that no other thread may currently be * waiting (or about to wait) on the fence. */ static inline void util_queue_fence_reset(struct util_queue_fence *fence) { #ifdef NDEBUG fence->val = 1; #else # 110 "../mesa/src/util/u_queue.h" uint32_t v = (uint32_t)p_atomic_xchg(&fence->val, 1); assert(v == 0); #endif # 113 "../mesa/src/util/u_queue.h" } static inline bool util_queue_fence_is_signalled(struct util_queue_fence *fence) { return p_atomic_read_relaxed(&fence->val) == 0; } #endif # 121 "../mesa/src/util/u_queue.h" #ifdef UTIL_QUEUE_FENCE_STANDARD /* Job completion fence. * Put this into your job structure. */ struct util_queue_fence { mtx_t mutex; struct u_cnd_monotonic cond; int signalled; }; void util_queue_fence_init(struct util_queue_fence *fence); void util_queue_fence_destroy(struct util_queue_fence *fence); void util_queue_fence_signal(struct util_queue_fence *fence); /** * Move \p fence back into unsignalled state. * * \warning The caller must ensure that no other thread may currently be * waiting (or about to wait) on the fence. */ #if 0 /* disabled by -frewrite-includes */ #if !THREAD_SANITIZER #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 143 "../mesa/src/util/u_queue.h" static inline void util_queue_fence_reset(struct util_queue_fence *fence) { assert(fence->signalled); fence->signalled = 0; } static inline bool util_queue_fence_is_signalled(struct util_queue_fence *fence) { return fence->signalled != 0; } #else # 156 "../mesa/src/util/u_queue.h" static inline void util_queue_fence_reset(struct util_queue_fence *fence) { assert(fence->signalled); fence->signalled = 0; } static inline bool util_queue_fence_is_signalled(struct util_queue_fence *fence) { mtx_lock(&fence->mutex); bool signalled = fence->signalled != 0; mtx_unlock(&fence->mutex); return signalled; } #endif # 172 "../mesa/src/util/u_queue.h" #endif # 173 "../mesa/src/util/u_queue.h" void _util_queue_fence_wait(struct util_queue_fence *fence); static inline void util_queue_fence_wait(struct util_queue_fence *fence) { if (unlikely(!util_queue_fence_is_signalled(fence))) _util_queue_fence_wait(fence); } bool _util_queue_fence_wait_timeout(struct util_queue_fence *fence, int64_t abs_timeout); /** * Wait for the fence to be signaled with a timeout. * * \param fence the fence * \param abs_timeout the absolute timeout in nanoseconds, relative to the * clock provided by os_time_get_nano. * * \return true if the fence was signaled, false if the timeout occurred. */ static inline bool util_queue_fence_wait_timeout(struct util_queue_fence *fence, int64_t abs_timeout) { if (util_queue_fence_is_signalled(fence)) return true; if (abs_timeout == (int64_t)OS_TIMEOUT_INFINITE) { _util_queue_fence_wait(fence); return true; } return _util_queue_fence_wait_timeout(fence, abs_timeout); } typedef void (*util_queue_execute_func)(void *job, void *gdata, int thread_index); struct util_queue_job { void *job; void *global_data; size_t job_size; struct util_queue_fence *fence; util_queue_execute_func execute; util_queue_execute_func cleanup; }; /* Put this into your context. */ struct util_queue { char name[14]; /* 13 characters = the thread name without the index */ mtx_t lock; bool create_threads_on_demand; cnd_t has_queued_cond; cnd_t has_space_cond; thrd_t *threads; unsigned flags; int num_queued; unsigned max_threads; unsigned num_threads; /* decreasing this number will terminate threads */ int max_jobs; int write_idx, read_idx; /* ring buffer pointers */ size_t total_jobs_size; /* memory use of all jobs in the queue */ struct util_queue_job *jobs; void *global_data; /* for cleanup at exit(), protected by exit_mutex */ struct list_head head; }; bool util_queue_init(struct util_queue *queue, const char *name, unsigned max_jobs, unsigned num_threads, unsigned flags, void *global_data); void util_queue_destroy(struct util_queue *queue); /* optional cleanup callback is called after fence is signaled: */ void util_queue_add_job(struct util_queue *queue, void *job, struct util_queue_fence *fence, util_queue_execute_func execute, util_queue_execute_func cleanup, const size_t job_size); void util_queue_drop_job(struct util_queue *queue, struct util_queue_fence *fence); void util_queue_finish(struct util_queue *queue); /* Adjust the number of active threads. The new number of threads can't be * greater than the initial number of threads at the creation of the queue, * and it can't be less than 1. */ void util_queue_adjust_num_threads(struct util_queue *queue, unsigned num_threads, bool locked); int64_t util_queue_get_thread_time_nano(struct util_queue *queue, unsigned thread_index); /* util_queue needs to be cleared to zeroes for this to work */ static inline bool util_queue_is_initialized(struct util_queue *queue) { return queue->threads != NULL; } /* Convenient structure for monitoring the queue externally and passing * the structure between Mesa components. The queue doesn't use it directly. */ struct util_queue_monitoring { /* For querying the thread busyness. */ struct util_queue *queue; /* Counters updated by the user of the queue. */ unsigned num_offloaded_items; unsigned num_direct_items; unsigned num_syncs; unsigned num_batches; }; #ifdef __cplusplus } #endif # 301 "../mesa/src/util/u_queue.h" #endif # 303 "../mesa/src/util/u_queue.h" #endif /* u_queue.h expanded by -frewrite-includes */ # 57 "../mesa/src/mesa/main/glthread.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* shader_enums.h expanded by -frewrite-includes */ #include "compiler/shader_enums.h" #else /* shader_enums.h expanded by -frewrite-includes */ # 57 "../mesa/src/mesa/main/glthread.h" # 1 "../mesa/src/compiler/shader_enums.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef SHADER_ENUMS_H #define SHADER_ENUMS_H #ifndef __OPENCL_VERSION__ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/compiler/shader_enums.h" # 31 "../mesa/src/compiler/shader_enums.h" #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/compiler/shader_enums.h" # 32 "../mesa/src/compiler/shader_enums.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_debug.h expanded by -frewrite-includes */ #include "util/u_debug.h" #else /* u_debug.h expanded by -frewrite-includes */ # 32 "../mesa/src/compiler/shader_enums.h" # 1 "../mesa/src/util/u_debug.h" 1 /************************************************************************** * * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * @file * Cross-platform debugging helpers. * * For now it just has assert and printf replacements, but it might be extended * with stack trace reports and more advanced logging in the near future. * * @author Jose Fonseca */ #ifndef U_DEBUG_H_ #define U_DEBUG_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 41 "../mesa/src/util/u_debug.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 1 3 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 30 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #else # 32 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need_va_copy #endif # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 48 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif # 49 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #endif /* expanded by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 52 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #endif /* expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 57 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_arg #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #endif /* expanded by -frewrite-includes */ # 61 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 62 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #endif /* expanded by -frewrite-includes */ # 66 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 67 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #endif /* expanded by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 72 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* __MVS__ */ # 76 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* stdarg.h expanded by -frewrite-includes */ # 42 "../mesa/src/util/u_debug.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../mesa/src/util/u_debug.h" # 43 "../mesa/src/util/u_debug.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../mesa/src/util/u_debug.h" # 44 "../mesa/src/util/u_debug.h" #if 0 /* disabled by -frewrite-includes */ #if !defined(_WIN32) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "../mesa/src/util/u_debug.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 45 "../mesa/src/util/u_debug.h" # 46 "../mesa/src/util/u_debug.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 46 "../mesa/src/util/u_debug.h" # 47 "../mesa/src/util/u_debug.h" #endif # 48 "../mesa/src/util/u_debug.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* os_misc.h expanded by -frewrite-includes */ #include "util/os_misc.h" #else /* os_misc.h expanded by -frewrite-includes */ # 49 "../mesa/src/util/u_debug.h" # 1 "../mesa/src/util/os_misc.h" 1 /************************************************************************** * * Copyright 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Miscellaneous OS services. */ #ifndef _OS_MISC_H_ #define _OS_MISC_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/util/os_misc.h" # 38 "../mesa/src/util/os_misc.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/util/os_misc.h" # 39 "../mesa/src/util/os_misc.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* detect.h expanded by -frewrite-includes */ #include "util/detect.h" #else /* detect.h expanded by -frewrite-includes */ # 40 "../mesa/src/util/os_misc.h" # 1 "../mesa/src/util/detect.h" 1 /************************************************************************** * * Copyright 2022 Yonggang Luo * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * @file * Mesa configuration defines. * * This header file sets several defines based on the compiler, processor * architecture, and operating system being used. These defines are comes * from corresponding headers. * * See: * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html * - echo | gcc -dM -E - | sort * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx * - https://sourceforge.net/p/predef/wiki/Home/ */ #ifndef UTIL_DETECT_H_ #define UTIL_DETECT_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 46 "../mesa/src/util/detect.h" # 47 "../mesa/src/util/detect.h" /* * Compiler detection */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* detect_cc.h expanded by -frewrite-includes */ #include "util/detect_cc.h" #else /* detect_cc.h expanded by -frewrite-includes */ # 51 "../mesa/src/util/detect.h" # 1 "../mesa/src/util/detect_cc.h" 1 /************************************************************************** * * Copyright 2022 Yonggang Luo * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * @file * Compiler configuration defines. * * See: * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html * - echo | gcc -dM -E - | sort * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx * - https://sourceforge.net/p/predef/wiki/Home/ */ #ifndef UTIL_DETECT_CC_H_ #define UTIL_DETECT_CC_H_ /* * Compiler */ #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 47 "../mesa/src/util/detect_cc.h" #define DETECT_CC_GCC 1 #define DETECT_CC_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) #endif # 50 "../mesa/src/util/detect_cc.h" /* * Meaning of _MSC_VER value: * - 1800: Visual Studio 2013 * - 1700: Visual Studio 2012 * - 1600: Visual Studio 2010 * - 1500: Visual Studio 2008 * - 1400: Visual C++ 2005 * - 1310: Visual C++ .NET 2003 * - 1300: Visual C++ .NET 2002 * * __MSC__ seems to be an old macro -- it is not pre-defined on recent MSVC * versions. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) || defined(__MSC__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 65 "../mesa/src/util/detect_cc.h" #define DETECT_CC_MSVC 1 #endif # 67 "../mesa/src/util/detect_cc.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__ICL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 69 "../mesa/src/util/detect_cc.h" #define DETECT_CC_ICL 1 #endif # 71 "../mesa/src/util/detect_cc.h" #ifndef DETECT_CC_GCC #define DETECT_CC_GCC 0 #endif # 75 "../mesa/src/util/detect_cc.h" #ifndef DETECT_CC_GCC_VERSION #define DETECT_CC_GCC_VERSION 0 #endif # 79 "../mesa/src/util/detect_cc.h" #ifndef DETECT_CC_MSVC #define DETECT_CC_MSVC 0 #endif # 83 "../mesa/src/util/detect_cc.h" #ifndef DETECT_CC_ICL #define DETECT_CC_ICL 0 #endif # 87 "../mesa/src/util/detect_cc.h" #endif /* UTIL_DETECT_CC_H_ */ # 89 "../mesa/src/util/detect_cc.h" #endif /* detect_cc.h expanded by -frewrite-includes */ # 52 "../mesa/src/util/detect.h" 2 /* * Processor architecture detection */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* detect_arch.h expanded by -frewrite-includes */ #include "util/detect_arch.h" #else /* detect_arch.h expanded by -frewrite-includes */ # 56 "../mesa/src/util/detect.h" # 1 "../mesa/src/util/detect_arch.h" 1 /************************************************************************** * * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * @file * Gallium configuration defines. * * This header file sets several defines based on the compiler, processor * architecture, and operating system being used. These defines should be used * throughout the code to facilitate porting to new platforms. It is likely that * this file is auto-generated by an autoconf-like tool at some point, as some * things cannot be determined by pre-defined environment alone. * * See also: * - http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html * - echo | gcc -dM -E - | sort * - http://msdn.microsoft.com/en-us/library/b0084kay.aspx * * @author José Fonseca */ #ifndef UTIL_DETECT_ARCH_H_ #define UTIL_DETECT_ARCH_H_ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 49 "../mesa/src/util/detect_arch.h" # 50 "../mesa/src/util/detect_arch.h" #if 0 /* expanded by -frewrite-includes */ #include "util/detect_cc.h" #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/util/detect_arch.h" # 52 "../mesa/src/util/detect_arch.h" /* * Processor architecture */ #if 0 /* disabled by -frewrite-includes */ #if defined(__i386__) /* gcc */ || defined(_M_IX86) /* msvc */ || defined(_X86_) || defined(__386__) || defined(i386) || defined(__i386) /* Sun cc */ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 58 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_X86 1 #endif # 60 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__x86_64__) /* gcc */ || defined(_M_X64) /* msvc */ || defined(_M_AMD64) /* msvc */ || defined(__x86_64) /* Sun cc */ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 62 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_X86_64 1 #endif # 64 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if DETECT_ARCH_X86 || DETECT_ARCH_X86_64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 66 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if DETECT_CC_GCC && !defined(__SSE2__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 67 "../mesa/src/util/detect_arch.h" /* #warning SSE2 support requires -msse -msse2 compiler options */ #else # 69 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_SSE 1 #endif # 71 "../mesa/src/util/detect_arch.h" #endif # 72 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__ppc__) || defined(__ppc64__) || defined(__PPC__) || defined(__PPC64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_PPC 1 #if 0 /* disabled by -frewrite-includes */ #if defined(__ppc64__) || defined(__PPC64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 76 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_PPC_64 1 #endif # 78 "../mesa/src/util/detect_arch.h" #endif # 79 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__s390x__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 81 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_S390 1 #endif # 83 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__arm__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 85 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_ARM 1 #endif # 87 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_AARCH64 1 #endif # 91 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__mips64) && defined(__LP64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 93 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_MIPS64 1 #endif # 95 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__mips__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 97 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_MIPS 1 #endif # 99 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__hppa__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 101 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_HPPA 1 #endif # 103 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__riscv) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 105 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_RISCV 1 #if 0 /* disabled by -frewrite-includes */ #if __riscv_xlen == 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 107 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_RISCV64 1 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __riscv_xlen == 32 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 109 "../mesa/src/util/detect_arch.h" #define DETECT_ARCH_RISCV32 1 #else # 111 "../mesa/src/util/detect_arch.h" #error "detect_arch: unknown target riscv xlen" #endif # 113 "../mesa/src/util/detect_arch.h" #endif # 114 "../mesa/src/util/detect_arch.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__loongarch__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 116 "../mesa/src/util/detect_arch.h" #ifdef __loongarch_lp64 #define DETECT_ARCH_LOONGARCH64 1 #else # 119 "../mesa/src/util/detect_arch.h" #error "detect_arch: unknown target loongarch base ABI type" #endif # 121 "../mesa/src/util/detect_arch.h" #endif # 122 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_X86 #define DETECT_ARCH_X86 0 #endif # 126 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_X86_64 #define DETECT_ARCH_X86_64 0 #endif # 130 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_SSE #define DETECT_ARCH_SSE 0 #endif # 134 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_PPC #define DETECT_ARCH_PPC 0 #endif # 138 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_PPC_64 #define DETECT_ARCH_PPC_64 0 #endif # 142 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_S390 #define DETECT_ARCH_S390 0 #endif # 146 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_ARM #define DETECT_ARCH_ARM 0 #endif # 150 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_AARCH64 #define DETECT_ARCH_AARCH64 0 #endif # 154 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_MIPS64 #define DETECT_ARCH_MIPS64 0 #endif # 158 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_MIPS #define DETECT_ARCH_MIPS 0 #endif # 162 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_HPPA #define DETECT_ARCH_HPPA 0 #endif # 166 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_RISCV #define DETECT_ARCH_RISCV 0 #endif # 170 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_RISCV32 #define DETECT_ARCH_RISCV32 0 #endif # 174 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_RISCV64 #define DETECT_ARCH_RISCV64 0 #endif # 178 "../mesa/src/util/detect_arch.h" #ifndef DETECT_ARCH_LOONGARCH64 #define DETECT_ARCH_LOONGARCH64 0 #endif # 182 "../mesa/src/util/detect_arch.h" #endif /* UTIL_DETECT_ARCH_H_ */ # 184 "../mesa/src/util/detect_arch.h" #endif /* detect_arch.h expanded by -frewrite-includes */ # 57 "../mesa/src/util/detect.h" 2 /* * Endian detection detection */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_endian.h expanded by -frewrite-includes */ #include "util/u_endian.h" #else /* u_endian.h expanded by -frewrite-includes */ # 61 "../mesa/src/util/detect.h" # 1 "../mesa/src/util/u_endian.h" 1 /************************************************************************** * * Copyright 2007-2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef U_ENDIAN_H #define U_ENDIAN_H #ifdef HAVE_ENDIAN_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/util/u_endian.h" # 32 "../mesa/src/util/u_endian.h" /* glibc */ #if 0 /* disabled by -frewrite-includes */ #if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 1 # define UTIL_ARCH_BIG_ENDIAN 0 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 38 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 0 # define UTIL_ARCH_BIG_ENDIAN 1 #endif # 41 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if defined(BYTE_ORDER) && (BYTE_ORDER == LITTLE_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 1 # define UTIL_ARCH_BIG_ENDIAN 0 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(BYTE_ORDER) && (BYTE_ORDER == BIG_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 46 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 0 # define UTIL_ARCH_BIG_ENDIAN 1 #endif # 49 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__APPLE__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 51 "../mesa/src/util/u_endian.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/util/u_endian.h" # 52 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 54 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 1 # define UTIL_ARCH_BIG_ENDIAN 0 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 57 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 0 # define UTIL_ARCH_BIG_ENDIAN 1 #endif # 60 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 62 "../mesa/src/util/u_endian.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 62 "../mesa/src/util/u_endian.h" # 63 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_LITTLE_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 65 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 1 # define UTIL_ARCH_BIG_ENDIAN 0 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_BIG_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 68 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 0 # define UTIL_ARCH_BIG_ENDIAN 1 #endif # 71 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__NetBSD__) || defined(__FreeBSD__) || \ defined(__DragonFly__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 74 "../mesa/src/util/u_endian.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 74 "../mesa/src/util/u_endian.h" # 75 "../mesa/src/util/u_endian.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 75 "../mesa/src/util/u_endian.h" # 76 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if _BYTE_ORDER == _LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 1 # define UTIL_ARCH_BIG_ENDIAN 0 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif _BYTE_ORDER == _BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 81 "../mesa/src/util/u_endian.h" # define UTIL_ARCH_LITTLE_ENDIAN 0 # define UTIL_ARCH_BIG_ENDIAN 1 #endif # 84 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN32) || defined(__ANDROID__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 86 "../mesa/src/util/u_endian.h" #define UTIL_ARCH_LITTLE_ENDIAN 1 #define UTIL_ARCH_BIG_ENDIAN 0 #endif # 91 "../mesa/src/util/u_endian.h" #if 0 /* disabled by -frewrite-includes */ #if !defined(UTIL_ARCH_LITTLE_ENDIAN) || !defined(UTIL_ARCH_BIG_ENDIAN) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 93 "../mesa/src/util/u_endian.h" # error "UTIL_ARCH_LITTLE_ENDIAN and/or UTIL_ARCH_BIG_ENDIAN were unset." #if 0 /* disabled by -frewrite-includes */ #if 0 #elif UTIL_ARCH_LITTLE_ENDIAN == UTIL_ARCH_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 95 "../mesa/src/util/u_endian.h" # error "UTIL_ARCH_LITTLE_ENDIAN and UTIL_ARCH_BIG_ENDIAN must not both be 1 or 0." #endif # 97 "../mesa/src/util/u_endian.h" #endif # 99 "../mesa/src/util/u_endian.h" #endif /* u_endian.h expanded by -frewrite-includes */ # 62 "../mesa/src/util/detect.h" 2 /* * Operating system family detection */ #if 0 /* expanded by -frewrite-includes */ #include "util/detect_os.h" #endif /* expanded by -frewrite-includes */ # 66 "../mesa/src/util/detect.h" # 67 "../mesa/src/util/detect.h" #endif /* UTIL_DETECT_H_ */ # 69 "../mesa/src/util/detect.h" #endif /* detect.h expanded by -frewrite-includes */ # 41 "../mesa/src/util/os_misc.h" 2 #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_POSIX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 44 "../mesa/src/util/os_misc.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal.h expanded by -frewrite-includes */ # include /* for kill() */ #else /* signal.h expanded by -frewrite-includes */ # 44 "../mesa/src/util/os_misc.h" # 1 "/usr/include/signal.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.14 Signal handling */ #ifndef _SIGNAL_H #define _SIGNAL_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/signal.h" 3 4 # 26 "/usr/include/signal.h" 3 4 __BEGIN_DECLS #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 29 "/usr/include/signal.h" 3 4 # 30 "/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signum-generic.h expanded by -frewrite-includes */ #include #else /* signum-generic.h expanded by -frewrite-includes */ # 30 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/signum-generic.h" 1 3 4 /* Signal number constants. Generic template. Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGNUM_GENERIC_H #define _BITS_SIGNUM_GENERIC_H 1 #ifndef _SIGNAL_H #error "Never include directly; use instead." #endif # 25 "/usr/include/bits/signum-generic.h" 3 4 /* Fake signal functions. */ #define SIG_ERR ((__sighandler_t) -1) /* Error return. */ #define SIG_DFL ((__sighandler_t) 0) /* Default action. */ #define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */ #ifdef __USE_XOPEN # define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */ #endif # 35 "/usr/include/bits/signum-generic.h" 3 4 /* We define here all the signal names listed in POSIX (1003.1-2008); as of 1003.1-2013, no additional signals have been added by POSIX. We also define here signal names that historically exist in every real-world POSIX variant (e.g. SIGWINCH). Signals in the 1-15 range are defined with their historical numbers. For other signals, we use the BSD numbers. There are two unallocated signal numbers in the 1-31 range: 7 and 29. Signal number 0 is reserved for use as kill(pid, 0), to test whether a process exists without sending it a signal. */ /* ISO C99 signals. */ #define SIGINT 2 /* Interactive attention signal. */ #define SIGILL 4 /* Illegal instruction. */ #define SIGABRT 6 /* Abnormal termination. */ #define SIGFPE 8 /* Erroneous arithmetic operation. */ #define SIGSEGV 11 /* Invalid access to storage. */ #define SIGTERM 15 /* Termination request. */ /* Historical signals specified by POSIX. */ #define SIGHUP 1 /* Hangup. */ #define SIGQUIT 3 /* Quit. */ #define SIGTRAP 5 /* Trace/breakpoint trap. */ #define SIGKILL 9 /* Killed. */ #define SIGPIPE 13 /* Broken pipe. */ #define SIGALRM 14 /* Alarm clock. */ /* Archaic names for compatibility. */ #define SIGIO SIGPOLL /* I/O now possible (4.2 BSD). */ #define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP-11. */ #define SIGCLD SIGCHLD /* Old System V name */ /* Not all systems support real-time signals. bits/signum.h indicates that they are supported by overriding __SIGRTMAX to a value greater than __SIGRTMIN. These constants give the kernel-level hard limits, but some real-time signals may be used internally by glibc. Do not use these constants in application code; use SIGRTMIN and SIGRTMAX (defined in signal.h) instead. */ /* Include system specific bits. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signum-arch.h expanded by -frewrite-includes */ #include #else /* signum-arch.h expanded by -frewrite-includes */ # 76 "/usr/include/bits/signum-generic.h" 3 4 # 1 "/usr/include/bits/signum-arch.h" 1 3 4 /* Signal number definitions. Linux version. Copyright (C) 1995-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGNUM_ARCH_H #define _BITS_SIGNUM_ARCH_H 1 #ifndef _SIGNAL_H #error "Never include directly; use instead." #endif # 25 "/usr/include/bits/signum-arch.h" 3 4 /* Adjustments and additions to the signal number constants for most Linux systems. */ #define SIGSTKFLT 16 /* Stack fault (obsolete). */ #define SIGPWR 30 /* Power failure imminent. */ /* Historical signals specified by POSIX. */ #define SIGBUS 7 /* Bus error. */ #define SIGSYS 31 /* Bad system call. */ /* New(er) POSIX signals (1003.1-2008, 1003.1-2013). */ #define SIGURG 23 /* Urgent data is available at a socket. */ #define SIGSTOP 19 /* Stop, unblockable. */ #define SIGTSTP 20 /* Keyboard stop. */ #define SIGCONT 18 /* Continue. */ #define SIGCHLD 17 /* Child terminated or stopped. */ #define SIGTTIN 21 /* Background read from control terminal. */ #define SIGTTOU 22 /* Background write to control terminal. */ #define SIGPOLL 29 /* Pollable event occurred (System V). */ #define SIGXFSZ 25 /* File size limit exceeded. */ #define SIGXCPU 24 /* CPU time limit exceeded. */ #define SIGVTALRM 26 /* Virtual timer expired. */ #define SIGPROF 27 /* Profiling timer expired. */ #define SIGUSR1 10 /* User-defined signal 1. */ #define SIGUSR2 12 /* User-defined signal 2. */ /* Nonstandard signals found in all modern POSIX systems (including both BSD and Linux). */ #define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */ /* Archaic names for compatibility. */ #define SIGIO SIGPOLL /* I/O now possible (4.2 BSD). */ #define SIGIOT SIGABRT /* IOT instruction, abort() on a PDP-11. */ #define SIGCLD SIGCHLD /* Old System V name */ #define __SIGRTMIN 32 #define __SIGRTMAX 64 #endif /* included. */ # 65 "/usr/include/bits/signum-arch.h" 3 4 #endif /* signum-arch.h expanded by -frewrite-includes */ # 77 "/usr/include/bits/signum-generic.h" 2 3 4 /* Biggest signal number + 1 (including real-time signals). */ #define _NSIG (__SIGRTMAX + 1) #endif /* bits/signum-generic.h. */ # 82 "/usr/include/bits/signum-generic.h" 3 4 #endif /* signum-generic.h expanded by -frewrite-includes */ # 31 "/usr/include/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sig_atomic_t.h expanded by -frewrite-includes */ #include #else /* sig_atomic_t.h expanded by -frewrite-includes */ # 32 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/types/sig_atomic_t.h" 1 3 4 #ifndef __sig_atomic_t_defined #define __sig_atomic_t_defined 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/sig_atomic_t.h" 3 4 # 5 "/usr/include/bits/types/sig_atomic_t.h" 3 4 /* An integral type that can be modified atomically, without the possibility of a signal arriving in the middle of the operation. */ typedef __sig_atomic_t sig_atomic_t; #endif # 11 "/usr/include/bits/types/sig_atomic_t.h" 3 4 #endif /* sig_atomic_t.h expanded by -frewrite-includes */ # 33 "/usr/include/signal.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "/usr/include/signal.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/signal.h" 3 4 # 36 "/usr/include/signal.h" 3 4 #endif # 37 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_XOPEN2K #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 39 "/usr/include/signal.h" 3 4 # ifndef __pid_t_defined typedef __pid_t pid_t; # define __pid_t_defined #endif # 43 "/usr/include/signal.h" 3 4 #ifdef __USE_XOPEN # endif # 45 "/usr/include/signal.h" 3 4 # ifndef __uid_t_defined typedef __uid_t uid_t; # define __uid_t_defined # endif # 49 "/usr/include/signal.h" 3 4 #endif /* Unix98 */ # 50 "/usr/include/signal.h" 3 4 #ifdef __USE_POSIX199309 /* We need `struct timespec' later on. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 53 "/usr/include/signal.h" 3 4 # 54 "/usr/include/signal.h" 3 4 #endif # 55 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 57 "/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* siginfo_t.h expanded by -frewrite-includes */ # include #else /* siginfo_t.h expanded by -frewrite-includes */ # 57 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/types/siginfo_t.h" 1 3 4 #ifndef __siginfo_t_defined #define __siginfo_t_defined 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/siginfo_t.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/siginfo_t.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/siginfo_t.h" 3 4 # 6 "/usr/include/bits/types/siginfo_t.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __sigval_t.h expanded by -frewrite-includes */ #include #else /* __sigval_t.h expanded by -frewrite-includes */ # 6 "/usr/include/bits/types/siginfo_t.h" 3 4 # 1 "/usr/include/bits/types/__sigval_t.h" 1 3 4 /* Define __sigval_t. Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef ____sigval_t_defined #define ____sigval_t_defined /* Type for data associated with a signal. */ #ifdef __USE_POSIX199309 union sigval { int sival_int; void *sival_ptr; }; typedef union sigval __sigval_t; #else # 32 "/usr/include/bits/types/__sigval_t.h" 3 4 union __sigval { int __sival_int; void *__sival_ptr; }; typedef union __sigval __sigval_t; #endif # 40 "/usr/include/bits/types/__sigval_t.h" 3 4 #endif # 42 "/usr/include/bits/types/__sigval_t.h" 3 4 #endif /* __sigval_t.h expanded by -frewrite-includes */ # 7 "/usr/include/bits/types/siginfo_t.h" 2 3 4 #define __SI_MAX_SIZE 128 #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 10 "/usr/include/bits/types/siginfo_t.h" 3 4 # define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4) #else # 12 "/usr/include/bits/types/siginfo_t.h" 3 4 # define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3) #endif # 14 "/usr/include/bits/types/siginfo_t.h" 3 4 /* Some fields of siginfo_t have architecture-specific variations. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* siginfo-arch.h expanded by -frewrite-includes */ #include #else /* siginfo-arch.h expanded by -frewrite-includes */ # 16 "/usr/include/bits/types/siginfo_t.h" 3 4 # 1 "/usr/include/bits/siginfo-arch.h" 1 3 4 /* Architecture-specific adjustments to siginfo_t. x86 version. */ #ifndef _BITS_SIGINFO_ARCH_H #define _BITS_SIGINFO_ARCH_H 1 #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && __WORDSIZE == 32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 6 "/usr/include/bits/siginfo-arch.h" 3 4 /* si_utime and si_stime must be 4 byte aligned for x32 to match the kernel. We align siginfo_t to 8 bytes so that si_utime and si_stime are actually aligned to 8 bytes since their offsets are multiple of 8 bytes. Note: with some compilers, the alignment attribute would be ignored if it were put in __SI_CLOCK_T instead of encapsulated in a typedef. */ typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t; # define __SI_ALIGNMENT __attribute__ ((__aligned__ (8))) # define __SI_CLOCK_T __sigchld_clock_t #endif # 16 "/usr/include/bits/siginfo-arch.h" 3 4 #endif # 18 "/usr/include/bits/siginfo-arch.h" 3 4 #endif /* siginfo-arch.h expanded by -frewrite-includes */ # 17 "/usr/include/bits/types/siginfo_t.h" 2 3 4 #ifndef __SI_ALIGNMENT # define __SI_ALIGNMENT /* nothing */ #endif # 20 "/usr/include/bits/types/siginfo_t.h" 3 4 #ifndef __SI_BAND_TYPE # define __SI_BAND_TYPE long int #endif # 23 "/usr/include/bits/types/siginfo_t.h" 3 4 #ifndef __SI_CLOCK_T # define __SI_CLOCK_T __clock_t #endif # 26 "/usr/include/bits/types/siginfo_t.h" 3 4 #ifndef __SI_ERRNO_THEN_CODE # define __SI_ERRNO_THEN_CODE 1 #endif # 29 "/usr/include/bits/types/siginfo_t.h" 3 4 #ifndef __SI_HAVE_SIGSYS # define __SI_HAVE_SIGSYS 1 #endif # 32 "/usr/include/bits/types/siginfo_t.h" 3 4 #ifndef __SI_SIGFAULT_ADDL # define __SI_SIGFAULT_ADDL /* nothing */ #endif # 35 "/usr/include/bits/types/siginfo_t.h" 3 4 typedef struct { int si_signo; /* Signal number. */ #if 0 /* disabled by -frewrite-includes */ #if __SI_ERRNO_THEN_CODE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/types/siginfo_t.h" 3 4 int si_errno; /* If non-zero, an errno value associated with this signal, as defined in . */ int si_code; /* Signal code. */ #else # 44 "/usr/include/bits/types/siginfo_t.h" 3 4 int si_code; int si_errno; #endif # 47 "/usr/include/bits/types/siginfo_t.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 48 "/usr/include/bits/types/siginfo_t.h" 3 4 int __pad0; /* Explicit padding. */ #endif # 50 "/usr/include/bits/types/siginfo_t.h" 3 4 union { int _pad[__SI_PAD_SIZE]; /* kill(). */ struct { __pid_t si_pid; /* Sending process ID. */ __uid_t si_uid; /* Real user ID of sending process. */ } _kill; /* POSIX.1b timers. */ struct { int si_tid; /* Timer ID. */ int si_overrun; /* Overrun count. */ __sigval_t si_sigval; /* Signal value. */ } _timer; /* POSIX.1b signals. */ struct { __pid_t si_pid; /* Sending process ID. */ __uid_t si_uid; /* Real user ID of sending process. */ __sigval_t si_sigval; /* Signal value. */ } _rt; /* SIGCHLD. */ struct { __pid_t si_pid; /* Which child. */ __uid_t si_uid; /* Real user ID of sending process. */ int si_status; /* Exit value or signal. */ __SI_CLOCK_T si_utime; __SI_CLOCK_T si_stime; } _sigchld; /* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */ struct { void *si_addr; /* Faulting insn/memory ref. */ __SI_SIGFAULT_ADDL short int si_addr_lsb; /* Valid LSB of the reported address. */ union { /* used when si_code=SEGV_BNDERR */ struct { void *_lower; void *_upper; } _addr_bnd; /* used when si_code=SEGV_PKUERR */ __uint32_t _pkey; } _bounds; } _sigfault; /* SIGPOLL. */ struct { __SI_BAND_TYPE si_band; /* Band event for SIGPOLL. */ int si_fd; } _sigpoll; /* SIGSYS. */ #if 0 /* disabled by -frewrite-includes */ #if __SI_HAVE_SIGSYS #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 116 "/usr/include/bits/types/siginfo_t.h" 3 4 struct { void *_call_addr; /* Calling user insn. */ int _syscall; /* Triggering system call number. */ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ } _sigsys; #endif # 123 "/usr/include/bits/types/siginfo_t.h" 3 4 } _sifields; } siginfo_t __SI_ALIGNMENT; /* X/Open requires some more fields with fixed names. */ #define si_pid _sifields._kill.si_pid #define si_uid _sifields._kill.si_uid #define si_timerid _sifields._timer.si_tid #define si_overrun _sifields._timer.si_overrun #define si_status _sifields._sigchld.si_status #define si_utime _sifields._sigchld.si_utime #define si_stime _sifields._sigchld.si_stime #define si_value _sifields._rt.si_sigval #define si_int _sifields._rt.si_sigval.sival_int #define si_ptr _sifields._rt.si_sigval.sival_ptr #define si_addr _sifields._sigfault.si_addr #define si_addr_lsb _sifields._sigfault.si_addr_lsb #define si_lower _sifields._sigfault._bounds._addr_bnd._lower #define si_upper _sifields._sigfault._bounds._addr_bnd._upper #define si_pkey _sifields._sigfault._bounds._pkey #define si_band _sifields._sigpoll.si_band #define si_fd _sifields._sigpoll.si_fd #if 0 /* disabled by -frewrite-includes */ #if __SI_HAVE_SIGSYS #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 146 "/usr/include/bits/types/siginfo_t.h" 3 4 # define si_call_addr _sifields._sigsys._call_addr # define si_syscall _sifields._sigsys._syscall # define si_arch _sifields._sigsys._arch #endif # 150 "/usr/include/bits/types/siginfo_t.h" 3 4 #endif # 152 "/usr/include/bits/types/siginfo_t.h" 3 4 #endif /* siginfo_t.h expanded by -frewrite-includes */ # 58 "/usr/include/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* siginfo-consts.h expanded by -frewrite-includes */ # include #else /* siginfo-consts.h expanded by -frewrite-includes */ # 58 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/siginfo-consts.h" 1 3 4 /* siginfo constants. Linux version. Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGINFO_CONSTS_H #define _BITS_SIGINFO_CONSTS_H 1 #ifndef _SIGNAL_H #error "Don't include directly; use instead." #endif # 25 "/usr/include/bits/siginfo-consts.h" 3 4 /* Most of these constants are uniform across all architectures, but there is one exception. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 28 "/usr/include/bits/siginfo-consts.h" 3 4 # 29 "/usr/include/bits/siginfo-consts.h" 3 4 #ifndef __SI_ASYNCIO_AFTER_SIGIO # define __SI_ASYNCIO_AFTER_SIGIO 1 #endif # 32 "/usr/include/bits/siginfo-consts.h" 3 4 /* Values for `si_code'. Positive values are reserved for kernel-generated signals. */ enum { SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */ SI_DETHREAD = -7, /* Sent by execve killing subsidiary threads. */ SI_TKILL, /* Sent by tkill. */ SI_SIGIO, /* Sent by queued SIGIO. */ #if 0 /* disabled by -frewrite-includes */ #if __SI_ASYNCIO_AFTER_SIGIO #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/usr/include/bits/siginfo-consts.h" 3 4 SI_ASYNCIO, /* Sent by AIO completion. */ SI_MESGQ, /* Sent by real time mesq state change. */ SI_TIMER, /* Sent by timer expiration. */ #else # 47 "/usr/include/bits/siginfo-consts.h" 3 4 SI_MESGQ, SI_TIMER, SI_ASYNCIO, #endif # 51 "/usr/include/bits/siginfo-consts.h" 3 4 SI_QUEUE, /* Sent by sigqueue. */ SI_USER, /* Sent by kill, sigsend. */ SI_KERNEL = 0x80 /* Send by kernel. */ #define SI_ASYNCNL SI_ASYNCNL #define SI_DETHREAD SI_DETHREAD #define SI_TKILL SI_TKILL #define SI_SIGIO SI_SIGIO #define SI_ASYNCIO SI_ASYNCIO #define SI_MESGQ SI_MESGQ #define SI_TIMER SI_TIMER #define SI_ASYNCIO SI_ASYNCIO #define SI_QUEUE SI_QUEUE #define SI_USER SI_USER #define SI_KERNEL SI_KERNEL }; #if 0 /* disabled by -frewrite-includes */ # if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 70 "/usr/include/bits/siginfo-consts.h" 3 4 /* `si_code' values for SIGILL signal. */ enum { ILL_ILLOPC = 1, /* Illegal opcode. */ # define ILL_ILLOPC ILL_ILLOPC ILL_ILLOPN, /* Illegal operand. */ # define ILL_ILLOPN ILL_ILLOPN ILL_ILLADR, /* Illegal addressing mode. */ # define ILL_ILLADR ILL_ILLADR ILL_ILLTRP, /* Illegal trap. */ # define ILL_ILLTRP ILL_ILLTRP ILL_PRVOPC, /* Privileged opcode. */ # define ILL_PRVOPC ILL_PRVOPC ILL_PRVREG, /* Privileged register. */ # define ILL_PRVREG ILL_PRVREG ILL_COPROC, /* Coprocessor error. */ # define ILL_COPROC ILL_COPROC ILL_BADSTK, /* Internal stack error. */ # define ILL_BADSTK ILL_BADSTK ILL_BADIADDR /* Unimplemented instruction address. */ # define ILL_BADIADDR ILL_BADIADDR }; /* `si_code' values for SIGFPE signal. */ enum { FPE_INTDIV = 1, /* Integer divide by zero. */ # define FPE_INTDIV FPE_INTDIV FPE_INTOVF, /* Integer overflow. */ # define FPE_INTOVF FPE_INTOVF FPE_FLTDIV, /* Floating point divide by zero. */ # define FPE_FLTDIV FPE_FLTDIV FPE_FLTOVF, /* Floating point overflow. */ # define FPE_FLTOVF FPE_FLTOVF FPE_FLTUND, /* Floating point underflow. */ # define FPE_FLTUND FPE_FLTUND FPE_FLTRES, /* Floating point inexact result. */ # define FPE_FLTRES FPE_FLTRES FPE_FLTINV, /* Floating point invalid operation. */ # define FPE_FLTINV FPE_FLTINV FPE_FLTSUB, /* Subscript out of range. */ # define FPE_FLTSUB FPE_FLTSUB FPE_FLTUNK = 14, /* Undiagnosed floating-point exception. */ # define FPE_FLTUNK FPE_FLTUNK FPE_CONDTRAP /* Trap on condition. */ # define FPE_CONDTRAP FPE_CONDTRAP }; /* `si_code' values for SIGSEGV signal. */ enum { SEGV_MAPERR = 1, /* Address not mapped to object. */ # define SEGV_MAPERR SEGV_MAPERR SEGV_ACCERR, /* Invalid permissions for mapped object. */ # define SEGV_ACCERR SEGV_ACCERR SEGV_BNDERR, /* Bounds checking failure. */ # define SEGV_BNDERR SEGV_BNDERR SEGV_PKUERR, /* Protection key checking failure. */ # define SEGV_PKUERR SEGV_PKUERR SEGV_ACCADI, /* ADI not enabled for mapped object. */ # define SEGV_ACCADI SEGV_ACCADI SEGV_ADIDERR, /* Disrupting MCD error. */ # define SEGV_ADIDERR SEGV_ADIDERR SEGV_ADIPERR, /* Precise MCD exception. */ # define SEGV_ADIPERR SEGV_ADIPERR SEGV_MTEAERR, /* Asynchronous ARM MTE error. */ # define SEGV_MTEAERR SEGV_MTEAERR SEGV_MTESERR, /* Synchronous ARM MTE exception. */ # define SEGV_MTESERR SEGV_MTESERR SEGV_CPERR /* Control protection fault. */ # define SEGV_CPERR SEGV_CPERR }; /* `si_code' values for SIGBUS signal. */ enum { BUS_ADRALN = 1, /* Invalid address alignment. */ # define BUS_ADRALN BUS_ADRALN BUS_ADRERR, /* Non-existent physical address. */ # define BUS_ADRERR BUS_ADRERR BUS_OBJERR, /* Object specific hardware error. */ # define BUS_OBJERR BUS_OBJERR BUS_MCEERR_AR, /* Hardware memory error: action required. */ # define BUS_MCEERR_AR BUS_MCEERR_AR BUS_MCEERR_AO /* Hardware memory error: action optional. */ # define BUS_MCEERR_AO BUS_MCEERR_AO }; # endif # 158 "/usr/include/bits/siginfo-consts.h" 3 4 # ifdef __USE_XOPEN_EXTENDED /* `si_code' values for SIGTRAP signal. */ enum { TRAP_BRKPT = 1, /* Process breakpoint. */ # define TRAP_BRKPT TRAP_BRKPT TRAP_TRACE, /* Process trace trap. */ # define TRAP_TRACE TRAP_TRACE TRAP_BRANCH, /* Process taken branch trap. */ # define TRAP_BRANCH TRAP_BRANCH TRAP_HWBKPT, /* Hardware breakpoint/watchpoint. */ # define TRAP_HWBKPT TRAP_HWBKPT TRAP_UNK /* Undiagnosed trap. */ # define TRAP_UNK TRAP_UNK }; # endif # 175 "/usr/include/bits/siginfo-consts.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 177 "/usr/include/bits/siginfo-consts.h" 3 4 /* `si_code' values for SIGCHLD signal. */ enum { CLD_EXITED = 1, /* Child has exited. */ # define CLD_EXITED CLD_EXITED CLD_KILLED, /* Child was killed. */ # define CLD_KILLED CLD_KILLED CLD_DUMPED, /* Child terminated abnormally. */ # define CLD_DUMPED CLD_DUMPED CLD_TRAPPED, /* Traced child has trapped. */ # define CLD_TRAPPED CLD_TRAPPED CLD_STOPPED, /* Child has stopped. */ # define CLD_STOPPED CLD_STOPPED CLD_CONTINUED /* Stopped child has continued. */ # define CLD_CONTINUED CLD_CONTINUED }; /* `si_code' values for SIGPOLL signal. */ enum { POLL_IN = 1, /* Data input available. */ # define POLL_IN POLL_IN POLL_OUT, /* Output buffers available. */ # define POLL_OUT POLL_OUT POLL_MSG, /* Input message available. */ # define POLL_MSG POLL_MSG POLL_ERR, /* I/O error. */ # define POLL_ERR POLL_ERR POLL_PRI, /* High priority input available. */ # define POLL_PRI POLL_PRI POLL_HUP /* Device disconnected. */ # define POLL_HUP POLL_HUP }; # endif # 211 "/usr/include/bits/siginfo-consts.h" 3 4 /* Architectures might also add architecture-specific constants. These are all considered GNU extensions. */ #ifdef __USE_GNU #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* siginfo-consts-arch.h expanded by -frewrite-includes */ # include #else /* siginfo-consts-arch.h expanded by -frewrite-includes */ # 215 "/usr/include/bits/siginfo-consts.h" 3 4 # 1 "/usr/include/bits/siginfo-consts-arch.h" 1 3 4 /* Architecture-specific additional siginfo constants. */ #ifndef _BITS_SIGINFO_CONSTS_ARCH_H #define _BITS_SIGINFO_CONSTS_ARCH_H 1 /* This architecture has no additional siginfo constants. */ #endif # 8 "/usr/include/bits/siginfo-consts-arch.h" 3 4 #endif /* siginfo-consts-arch.h expanded by -frewrite-includes */ # 216 "/usr/include/bits/siginfo-consts.h" 2 3 4 #endif # 217 "/usr/include/bits/siginfo-consts.h" 3 4 #endif # 219 "/usr/include/bits/siginfo-consts.h" 3 4 #endif /* siginfo-consts.h expanded by -frewrite-includes */ # 59 "/usr/include/signal.h" 2 3 4 #endif # 60 "/usr/include/signal.h" 3 4 #ifdef __USE_MISC #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigval_t.h expanded by -frewrite-includes */ # include #else /* sigval_t.h expanded by -frewrite-includes */ # 62 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/types/sigval_t.h" 1 3 4 #ifndef __sigval_t_defined #define __sigval_t_defined #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/sigval_t.h" 3 4 # 5 "/usr/include/bits/types/sigval_t.h" 3 4 /* To avoid sigval_t (not a standard type name) having C++ name mangling depending on whether the selected standard includes union sigval, it should not be defined at all when using a standard for which the sigval name is not reserved; in that case, headers should not include and should use only the internal __sigval_t name. */ #ifndef __USE_POSIX199309 # error "sigval_t defined for standard not including union sigval" #endif # 15 "/usr/include/bits/types/sigval_t.h" 3 4 typedef __sigval_t sigval_t; #endif # 19 "/usr/include/bits/types/sigval_t.h" 3 4 #endif /* sigval_t.h expanded by -frewrite-includes */ # 63 "/usr/include/signal.h" 2 3 4 #endif # 64 "/usr/include/signal.h" 3 4 #ifdef __USE_POSIX199309 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigevent_t.h expanded by -frewrite-includes */ # include #else /* sigevent_t.h expanded by -frewrite-includes */ # 66 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/types/sigevent_t.h" 1 3 4 #ifndef __sigevent_t_defined #define __sigevent_t_defined 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* wordsize.h expanded by -frewrite-includes */ #include #else /* wordsize.h expanded by -frewrite-includes */ # 4 "/usr/include/bits/types/sigevent_t.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 /* Determine the wordsize from the preprocessor defines. */ #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && !defined __ILP32__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 4 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 64 #else # 6 "/usr/include/bits/wordsize.h" 3 4 # define __WORDSIZE 32 #define __WORDSIZE32_SIZE_ULONG 0 #define __WORDSIZE32_PTRDIFF_LONG 0 #endif # 10 "/usr/include/bits/wordsize.h" 3 4 #define __WORDSIZE_TIME64_COMPAT32 1 #ifdef __x86_64__ /* Both x86-64 and x32 use the 64-bit system call interface. */ # define __SYSCALL_WORDSIZE 64 #endif # 17 "/usr/include/bits/wordsize.h" 3 4 #endif /* wordsize.h expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/sigevent_t.h" 2 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 5 "/usr/include/bits/types/sigevent_t.h" 3 4 # 6 "/usr/include/bits/types/sigevent_t.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 6 "/usr/include/bits/types/sigevent_t.h" 3 4 # 7 "/usr/include/bits/types/sigevent_t.h" 3 4 #define __SIGEV_MAX_SIZE 64 #if 0 /* disabled by -frewrite-includes */ #if __WORDSIZE == 64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 10 "/usr/include/bits/types/sigevent_t.h" 3 4 # define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) #else # 12 "/usr/include/bits/types/sigevent_t.h" 3 4 # define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) #endif # 14 "/usr/include/bits/types/sigevent_t.h" 3 4 /* Forward declaration. */ #ifndef __have_pthread_attr_t typedef union pthread_attr_t pthread_attr_t; # define __have_pthread_attr_t 1 #endif # 20 "/usr/include/bits/types/sigevent_t.h" 3 4 /* Structure to transport application-defined values with signals. */ typedef struct sigevent { __sigval_t sigev_value; int sigev_signo; int sigev_notify; union { int _pad[__SIGEV_PAD_SIZE]; /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the thread to receive the signal. */ __pid_t _tid; struct { void (*_function) (__sigval_t); /* Function to start. */ pthread_attr_t *_attribute; /* Thread attributes. */ } _sigev_thread; } _sigev_un; } sigevent_t; /* POSIX names to access some of the members. */ #define sigev_notify_function _sigev_un._sigev_thread._function #define sigev_notify_attributes _sigev_un._sigev_thread._attribute #endif # 49 "/usr/include/bits/types/sigevent_t.h" 3 4 #endif /* sigevent_t.h expanded by -frewrite-includes */ # 67 "/usr/include/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigevent-consts.h expanded by -frewrite-includes */ # include #else /* sigevent-consts.h expanded by -frewrite-includes */ # 67 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigevent-consts.h" 1 3 4 /* sigevent constants. Linux version. Copyright (C) 1997-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGEVENT_CONSTS_H #define _BITS_SIGEVENT_CONSTS_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _SIGNAL_H && !defined _AIO_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/usr/include/bits/sigevent-consts.h" 3 4 #error "Don't include directly; use instead." #endif # 25 "/usr/include/bits/sigevent-consts.h" 3 4 /* `sigev_notify' values. */ enum { SIGEV_SIGNAL = 0, /* Notify via signal. */ # define SIGEV_SIGNAL SIGEV_SIGNAL SIGEV_NONE, /* Other notification: meaningless. */ # define SIGEV_NONE SIGEV_NONE SIGEV_THREAD, /* Deliver via thread creation. */ # define SIGEV_THREAD SIGEV_THREAD SIGEV_THREAD_ID = 4 /* Send signal to specific thread. This is a Linux extension. */ #define SIGEV_THREAD_ID SIGEV_THREAD_ID }; #endif # 42 "/usr/include/bits/sigevent-consts.h" 3 4 #endif /* sigevent-consts.h expanded by -frewrite-includes */ # 68 "/usr/include/signal.h" 2 3 4 #endif # 69 "/usr/include/signal.h" 3 4 /* Type of a signal handler. */ typedef void (*__sighandler_t) (int); /* The X/Open definition of `signal' specifies the SVID semantic. Use the additional function `sysv_signal' when X/Open compatibility is requested. */ extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) __THROW; #ifdef __USE_GNU extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) __THROW; #endif # 83 "/usr/include/signal.h" 3 4 /* Set the handler for the signal SIG to HANDLER, returning the old handler, or SIG_ERR on error. By default `signal' has the BSD semantic. */ #ifdef __USE_MISC extern __sighandler_t signal (int __sig, __sighandler_t __handler) __THROW; #else # 91 "/usr/include/signal.h" 3 4 /* Make sure the used `signal' implementation is the SVID version. */ # ifdef __REDIRECT_NTH extern __sighandler_t __REDIRECT_NTH (signal, (int __sig, __sighandler_t __handler), __sysv_signal); # else # 97 "/usr/include/signal.h" 3 4 # define signal __sysv_signal # endif # 99 "/usr/include/signal.h" 3 4 #endif # 100 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 102 "/usr/include/signal.h" 3 4 /* The X/Open definition of `signal' conflicts with the BSD version. So they defined another function `bsd_signal'. */ extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) __THROW; #endif # 107 "/usr/include/signal.h" 3 4 /* Send signal SIG to process number PID. If PID is zero, send SIG to all processes in the current process's process group. If PID is < -1, send SIG to all processes in process group - PID. */ #ifdef __USE_POSIX extern int kill (__pid_t __pid, int __sig) __THROW; #endif /* Use POSIX. */ # 114 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 116 "/usr/include/signal.h" 3 4 /* Send SIG to all processes in process group PGRP. If PGRP is zero, send SIG to all processes in the current process's process group. */ extern int killpg (__pid_t __pgrp, int __sig) __THROW; #endif /* Use misc || X/Open Unix. */ # 121 "/usr/include/signal.h" 3 4 /* Raise signal SIG, i.e., send SIG to yourself. */ extern int raise (int __sig) __THROW; #ifdef __USE_MISC /* SVID names for the same things. */ extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) __THROW; extern int gsignal (int __sig) __THROW; #endif /* Use misc. */ # 131 "/usr/include/signal.h" 3 4 #ifdef __USE_XOPEN2K8 /* Print a message describing the meaning of the given signal number. */ extern void psignal (int __sig, const char *__s); /* Print a message describing the meaning of the given signal information. */ extern void psiginfo (const siginfo_t *__pinfo, const char *__s); #endif /* POSIX 2008. */ # 139 "/usr/include/signal.h" 3 4 /* The `sigpause' function in X/Open defines the argument as the signal number. This requires redirecting to another function because the default version in glibc uses an old BSD interface. This function is a cancellation point and therefore not marked with __THROW. */ #ifdef __USE_XOPEN_EXTENDED # ifdef __GNUC__ extern int sigpause (int __sig) __asm__ ("__xpg_sigpause") __attribute_deprecated_msg__ ("Use the sigsuspend function instead"); # else # 154 "/usr/include/signal.h" 3 4 extern int __sigpause (int __sig_or_mask, int __is_sig); /* Remove a signal from the signal mask and suspend the process. */ # define sigpause(sig) __sigpause ((sig), 1) # endif # 158 "/usr/include/signal.h" 3 4 #endif # 159 "/usr/include/signal.h" 3 4 #ifdef __USE_MISC /* None of the following functions should be used anymore. They are here only for compatibility. A single word (`int') is not guaranteed to be enough to hold a complete signal mask and therefore these functions simply do not work in many situations. Use `sigprocmask' instead. */ /* Compute mask for signal SIG. */ # define sigmask(sig) \ __glibc_macro_warning ("sigmask is deprecated") \ ((int)(1u << ((sig) - 1))) /* Block signals in MASK, returning the old mask. */ extern int sigblock (int __mask) __THROW __attribute_deprecated__; /* Set the mask of blocked signals to MASK, returning the old mask. */ extern int sigsetmask (int __mask) __THROW __attribute_deprecated__; /* Return currently selected signal mask. */ extern int siggetmask (void) __THROW __attribute_deprecated__; #endif /* Use misc. */ # 181 "/usr/include/signal.h" 3 4 #ifdef __USE_MISC # define NSIG _NSIG #endif # 186 "/usr/include/signal.h" 3 4 #ifdef __USE_GNU typedef __sighandler_t sighandler_t; #endif # 190 "/usr/include/signal.h" 3 4 /* 4.4 BSD uses the name `sig_t' for this. */ #ifdef __USE_MISC typedef __sighandler_t sig_t; #endif # 195 "/usr/include/signal.h" 3 4 #ifdef __USE_POSIX /* Clear all signals from SET. */ extern int sigemptyset (sigset_t *__set) __THROW __nonnull ((1)); /* Set all signals in SET. */ extern int sigfillset (sigset_t *__set) __THROW __nonnull ((1)); /* Add SIGNO to SET. */ extern int sigaddset (sigset_t *__set, int __signo) __THROW __nonnull ((1)); /* Remove SIGNO from SET. */ extern int sigdelset (sigset_t *__set, int __signo) __THROW __nonnull ((1)); /* Return 1 if SIGNO is in SET, 0 if not. */ extern int sigismember (const sigset_t *__set, int __signo) __THROW __nonnull ((1)); # ifdef __USE_GNU /* Return non-empty value is SET is not empty. */ extern int sigisemptyset (const sigset_t *__set) __THROW __nonnull ((1)); /* Build new signal set by combining the two inputs set using logical AND. */ extern int sigandset (sigset_t *__set, const sigset_t *__left, const sigset_t *__right) __THROW __nonnull ((1, 2, 3)); /* Build new signal set by combining the two inputs set using logical OR. */ extern int sigorset (sigset_t *__set, const sigset_t *__left, const sigset_t *__right) __THROW __nonnull ((1, 2, 3)); # endif /* GNU */ # 226 "/usr/include/signal.h" 3 4 /* Get the system-specific definitions of `struct sigaction' and the `SA_*' and `SIG_*'. constants. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigaction.h expanded by -frewrite-includes */ # include #else /* sigaction.h expanded by -frewrite-includes */ # 229 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigaction.h" 1 3 4 /* The proper definitions for Linux's sigaction. Copyright (C) 1993-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGACTION_H #define _BITS_SIGACTION_H 1 #ifndef _SIGNAL_H # error "Never include directly; use instead." #endif # 25 "/usr/include/bits/sigaction.h" 3 4 /* Structure describing the action to be taken when a signal arrives. */ struct sigaction { /* Signal handler. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 31 "/usr/include/bits/sigaction.h" 3 4 union { /* Used if SA_SIGINFO is not set. */ __sighandler_t sa_handler; /* Used if SA_SIGINFO is set. */ void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; # define sa_handler __sigaction_handler.sa_handler # define sa_sigaction __sigaction_handler.sa_sigaction #else # 42 "/usr/include/bits/sigaction.h" 3 4 __sighandler_t sa_handler; #endif # 44 "/usr/include/bits/sigaction.h" 3 4 /* Additional set of signals to be blocked. */ __sigset_t sa_mask; /* Special flags. */ int sa_flags; /* Restore handler. */ void (*sa_restorer) (void); }; /* Bits in `sa_flags'. */ #define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */ #define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */ #define SA_SIGINFO 4 /* Invoke signal-catching function with three arguments instead of one. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 61 "/usr/include/bits/sigaction.h" 3 4 # define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */ #endif # 63 "/usr/include/bits/sigaction.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 64 "/usr/include/bits/sigaction.h" 3 4 # define SA_RESTART 0x10000000 /* Restart syscall on signal return. */ # define SA_NODEFER 0x40000000 /* Don't automatically block the signal when its handler is being executed. */ # define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */ #endif # 69 "/usr/include/bits/sigaction.h" 3 4 #ifdef __USE_MISC # define SA_INTERRUPT 0x20000000 /* Historical no-op. */ /* Some aliases for the SA_ constants. */ # define SA_NOMASK SA_NODEFER # define SA_ONESHOT SA_RESETHAND # define SA_STACK SA_ONSTACK #endif # 77 "/usr/include/bits/sigaction.h" 3 4 /* Values for the HOW argument to `sigprocmask'. */ #define SIG_BLOCK 0 /* Block signals. */ #define SIG_UNBLOCK 1 /* Unblock signals. */ #define SIG_SETMASK 2 /* Set the set of blocked signals. */ #endif # 84 "/usr/include/bits/sigaction.h" 3 4 #endif /* sigaction.h expanded by -frewrite-includes */ # 230 "/usr/include/signal.h" 2 3 4 /* Get and/or change the set of blocked signals. */ extern int sigprocmask (int __how, const sigset_t *__restrict __set, sigset_t *__restrict __oset) __THROW; /* Change the set of blocked signals to SET, wait until a signal arrives, and restore the set of blocked signals. This function is a cancellation point and therefore not marked with __THROW. */ extern int sigsuspend (const sigset_t *__set) __nonnull ((1)); /* Get and/or set the action for signal SIG. */ extern int sigaction (int __sig, const struct sigaction *__restrict __act, struct sigaction *__restrict __oact) __THROW; /* Put in SET all signals that are blocked and waiting to be delivered. */ extern int sigpending (sigset_t *__set) __THROW __nonnull ((1)); # ifdef __USE_POSIX199506 /* Select any of pending signals from SET or wait for any to arrive. This function is a cancellation point and therefore not marked with __THROW. */ extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig) __nonnull ((1, 2)); # endif /* Use POSIX 1995. */ # 258 "/usr/include/signal.h" 3 4 # ifdef __USE_POSIX199309 /* Select any of pending signals from SET and place information in INFO. This function is a cancellation point and therefore not marked with __THROW. */ extern int sigwaitinfo (const sigset_t *__restrict __set, siginfo_t *__restrict __info) __nonnull ((1)); /* Select any of pending signals from SET and place information in INFO. Wait the time specified by TIMEOUT if no signal is pending. This function is a cancellation point and therefore not marked with __THROW. */ # ifndef __USE_TIME64_REDIRECTS extern int sigtimedwait (const sigset_t *__restrict __set, siginfo_t *__restrict __info, const struct timespec *__restrict __timeout) __nonnull ((1)); # else # 278 "/usr/include/signal.h" 3 4 # ifdef __REDIRECT extern int __REDIRECT (sigtimedwait, (const sigset_t *__restrict __set, siginfo_t *__restrict __info, const struct timespec *__restrict __timeout), __sigtimedwait64) __nonnull ((1)); # else # 286 "/usr/include/signal.h" 3 4 # define sigtimedwait __sigtimedwait64 # endif # 288 "/usr/include/signal.h" 3 4 # endif # 289 "/usr/include/signal.h" 3 4 /* Send signal SIG to the process PID. Associate data in VAL with the signal. */ extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val) __THROW; # endif /* Use POSIX 199306. */ # 295 "/usr/include/signal.h" 3 4 #endif /* Use POSIX. */ # 297 "/usr/include/signal.h" 3 4 #ifdef __USE_MISC /* Get machine-dependent `struct sigcontext' and signal subcodes. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigcontext.h expanded by -frewrite-includes */ # include #else /* sigcontext.h expanded by -frewrite-includes */ # 301 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigcontext.h" 1 3 4 /* Copyright (C) 2002-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGCONTEXT_H #define _BITS_SIGCONTEXT_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 22 "/usr/include/bits/sigcontext.h" 3 4 # error "Never use directly; include instead." #endif # 24 "/usr/include/bits/sigcontext.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/bits/sigcontext.h" 3 4 # 26 "/usr/include/bits/sigcontext.h" 3 4 #define FP_XSTATE_MAGIC1 0x46505853U #define FP_XSTATE_MAGIC2 0x46505845U #define FP_XSTATE_MAGIC2_SIZE sizeof (FP_XSTATE_MAGIC2) struct _fpx_sw_bytes { __uint32_t magic1; __uint32_t extended_size; __uint64_t xstate_bv; __uint32_t xstate_size; __uint32_t __glibc_reserved1[7]; }; struct _fpreg { unsigned short significand[4]; unsigned short exponent; }; struct _fpxreg { unsigned short significand[4]; unsigned short exponent; unsigned short __glibc_reserved1[3]; }; struct _xmmreg { __uint32_t element[4]; }; #ifndef __x86_64__ struct _fpstate { /* Regular FPU environment. */ __uint32_t cw; __uint32_t sw; __uint32_t tag; __uint32_t ipoff; __uint32_t cssel; __uint32_t dataoff; __uint32_t datasel; struct _fpreg _st[8]; unsigned short status; unsigned short magic; /* FXSR FPU environment. */ __uint32_t _fxsr_env[6]; __uint32_t mxcsr; __uint32_t __glibc_reserved1; struct _fpxreg _fxsr_st[8]; struct _xmmreg _xmm[8]; __uint32_t __glibc_reserved2[56]; }; #ifndef sigcontext_struct /* Kernel headers before 2.1.1 define a struct sigcontext_struct, but we need sigcontext. Some packages have come to rely on sigcontext_struct being defined on 32-bit x86, so define this for their benefit. */ # define sigcontext_struct sigcontext #endif # 92 "/usr/include/bits/sigcontext.h" 3 4 #define X86_FXSR_MAGIC 0x0000 struct sigcontext { unsigned short gs, __gsh; unsigned short fs, __fsh; unsigned short es, __esh; unsigned short ds, __dsh; unsigned long edi; unsigned long esi; unsigned long ebp; unsigned long esp; unsigned long ebx; unsigned long edx; unsigned long ecx; unsigned long eax; unsigned long trapno; unsigned long err; unsigned long eip; unsigned short cs, __csh; unsigned long eflags; unsigned long esp_at_signal; unsigned short ss, __ssh; struct _fpstate * fpstate; unsigned long oldmask; unsigned long cr2; }; #else /* __x86_64__ */ # 122 "/usr/include/bits/sigcontext.h" 3 4 struct _fpstate { /* FPU environment matching the 64-bit FXSAVE layout. */ __uint16_t cwd; __uint16_t swd; __uint16_t ftw; __uint16_t fop; __uint64_t rip; __uint64_t rdp; __uint32_t mxcsr; __uint32_t mxcr_mask; struct _fpxreg _st[8]; struct _xmmreg _xmm[16]; __uint32_t __glibc_reserved1[24]; }; struct sigcontext { __uint64_t r8; __uint64_t r9; __uint64_t r10; __uint64_t r11; __uint64_t r12; __uint64_t r13; __uint64_t r14; __uint64_t r15; __uint64_t rdi; __uint64_t rsi; __uint64_t rbp; __uint64_t rbx; __uint64_t rdx; __uint64_t rax; __uint64_t rcx; __uint64_t rsp; __uint64_t rip; __uint64_t eflags; unsigned short cs; unsigned short gs; unsigned short fs; unsigned short __pad0; __uint64_t err; __uint64_t trapno; __uint64_t oldmask; __uint64_t cr2; __extension__ union { struct _fpstate * fpstate; __uint64_t __fpstate_word; }; __uint64_t __reserved1 [8]; }; #endif /* __x86_64__ */ # 176 "/usr/include/bits/sigcontext.h" 3 4 struct _xsave_hdr { __uint64_t xstate_bv; __uint64_t __glibc_reserved1[2]; __uint64_t __glibc_reserved2[5]; }; struct _ymmh_state { __uint32_t ymmh_space[64]; }; struct _xstate { struct _fpstate fpstate; struct _xsave_hdr xstate_hdr; struct _ymmh_state ymmh; }; #endif /* _BITS_SIGCONTEXT_H */ # 197 "/usr/include/bits/sigcontext.h" 3 4 #endif /* sigcontext.h expanded by -frewrite-includes */ # 302 "/usr/include/signal.h" 2 3 4 /* Restore the state saved in SCP. */ extern int sigreturn (struct sigcontext *__scp) __THROW; #endif /* Use misc. */ # 307 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 310 "/usr/include/signal.h" 3 4 # define __need_size_t #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ # include #else /* stddef.h expanded by -frewrite-includes */ # 311 "/usr/include/signal.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 312 "/usr/include/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stack_t.h expanded by -frewrite-includes */ # include #else /* stack_t.h expanded by -frewrite-includes */ # 313 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/types/stack_t.h" 1 3 4 /* Define stack_t. Linux version. Copyright (C) 1998-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __stack_t_defined #define __stack_t_defined 1 #define __need_size_t #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 23 "/usr/include/bits/types/stack_t.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 4 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #endif /* expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 4 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 4 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 4 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #endif /* expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #endif /* expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 4 #endif /* stddef.h expanded by -frewrite-includes */ # 24 "/usr/include/bits/types/stack_t.h" 2 3 4 /* Structure describing a signal stack. */ typedef struct { void *ss_sp; int ss_flags; size_t ss_size; } stack_t; #endif # 34 "/usr/include/bits/types/stack_t.h" 3 4 #endif /* stack_t.h expanded by -frewrite-includes */ # 314 "/usr/include/signal.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __USE_XOPEN || defined __USE_XOPEN2K8 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 315 "/usr/include/signal.h" 3 4 /* This will define `ucontext_t' and `mcontext_t'. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* ucontext.h expanded by -frewrite-includes */ # include #else /* ucontext.h expanded by -frewrite-includes */ # 316 "/usr/include/signal.h" 3 4 # 1 "/usr/include/sys/ucontext.h" 1 3 4 /* Copyright (C) 2001-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SYS_UCONTEXT_H #define _SYS_UCONTEXT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 21 "/usr/include/sys/ucontext.h" 3 4 # 22 "/usr/include/sys/ucontext.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 23 "/usr/include/sys/ucontext.h" 3 4 # 24 "/usr/include/sys/ucontext.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 24 "/usr/include/sys/ucontext.h" 3 4 # 25 "/usr/include/sys/ucontext.h" 3 4 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 25 "/usr/include/sys/ucontext.h" 3 4 # 26 "/usr/include/sys/ucontext.h" 3 4 #ifdef __USE_MISC # define __ctx(fld) fld #else # 31 "/usr/include/sys/ucontext.h" 3 4 # define __ctx(fld) __ ## fld #endif # 33 "/usr/include/sys/ucontext.h" 3 4 #ifdef __x86_64__ /* Type for general register. */ __extension__ typedef long long int greg_t; /* Number of general registers. */ #define __NGREG 23 #ifdef __USE_MISC # define NGREG __NGREG #endif # 44 "/usr/include/sys/ucontext.h" 3 4 /* Container for all general registers. */ typedef greg_t gregset_t[__NGREG]; #ifdef __USE_GNU /* Number of each register in the `gregset_t' array. */ enum { REG_R8 = 0, # define REG_R8 REG_R8 REG_R9, # define REG_R9 REG_R9 REG_R10, # define REG_R10 REG_R10 REG_R11, # define REG_R11 REG_R11 REG_R12, # define REG_R12 REG_R12 REG_R13, # define REG_R13 REG_R13 REG_R14, # define REG_R14 REG_R14 REG_R15, # define REG_R15 REG_R15 REG_RDI, # define REG_RDI REG_RDI REG_RSI, # define REG_RSI REG_RSI REG_RBP, # define REG_RBP REG_RBP REG_RBX, # define REG_RBX REG_RBX REG_RDX, # define REG_RDX REG_RDX REG_RAX, # define REG_RAX REG_RAX REG_RCX, # define REG_RCX REG_RCX REG_RSP, # define REG_RSP REG_RSP REG_RIP, # define REG_RIP REG_RIP REG_EFL, # define REG_EFL REG_EFL REG_CSGSFS, /* Actually short cs, gs, fs, __pad0. */ # define REG_CSGSFS REG_CSGSFS REG_ERR, # define REG_ERR REG_ERR REG_TRAPNO, # define REG_TRAPNO REG_TRAPNO REG_OLDMASK, # define REG_OLDMASK REG_OLDMASK REG_CR2 # define REG_CR2 REG_CR2 }; #endif # 100 "/usr/include/sys/ucontext.h" 3 4 struct _libc_fpxreg { unsigned short int __ctx(significand)[4]; unsigned short int __ctx(exponent); unsigned short int __glibc_reserved1[3]; }; struct _libc_xmmreg { __uint32_t __ctx(element)[4]; }; struct _libc_fpstate { /* 64-bit FXSAVE format. */ __uint16_t __ctx(cwd); __uint16_t __ctx(swd); __uint16_t __ctx(ftw); __uint16_t __ctx(fop); __uint64_t __ctx(rip); __uint64_t __ctx(rdp); __uint32_t __ctx(mxcsr); __uint32_t __ctx(mxcr_mask); struct _libc_fpxreg _st[8]; struct _libc_xmmreg _xmm[16]; __uint32_t __glibc_reserved1[24]; }; /* Structure to describe FPU registers. */ typedef struct _libc_fpstate *fpregset_t; /* Context to describe whole processor state. */ typedef struct { gregset_t __ctx(gregs); /* Note that fpregs is a pointer. */ fpregset_t __ctx(fpregs); __extension__ unsigned long long __reserved1 [8]; } mcontext_t; /* Userlevel context. */ typedef struct ucontext_t { unsigned long int __ctx(uc_flags); struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; __extension__ unsigned long long int __ssp[4]; } ucontext_t; #else /* !__x86_64__ */ # 154 "/usr/include/sys/ucontext.h" 3 4 /* Type for general register. */ typedef int greg_t; /* Number of general registers. */ #define __NGREG 19 #ifdef __USE_MISC # define NGREG __NGREG #endif # 163 "/usr/include/sys/ucontext.h" 3 4 /* Container for all general registers. */ typedef greg_t gregset_t[__NGREG]; #ifdef __USE_GNU /* Number of each register is the `gregset_t' array. */ enum { REG_GS = 0, # define REG_GS REG_GS REG_FS, # define REG_FS REG_FS REG_ES, # define REG_ES REG_ES REG_DS, # define REG_DS REG_DS REG_EDI, # define REG_EDI REG_EDI REG_ESI, # define REG_ESI REG_ESI REG_EBP, # define REG_EBP REG_EBP REG_ESP, # define REG_ESP REG_ESP REG_EBX, # define REG_EBX REG_EBX REG_EDX, # define REG_EDX REG_EDX REG_ECX, # define REG_ECX REG_ECX REG_EAX, # define REG_EAX REG_EAX REG_TRAPNO, # define REG_TRAPNO REG_TRAPNO REG_ERR, # define REG_ERR REG_ERR REG_EIP, # define REG_EIP REG_EIP REG_CS, # define REG_CS REG_CS REG_EFL, # define REG_EFL REG_EFL REG_UESP, # define REG_UESP REG_UESP REG_SS # define REG_SS REG_SS }; #endif # 211 "/usr/include/sys/ucontext.h" 3 4 /* Definitions taken from the kernel headers. */ struct _libc_fpreg { unsigned short int __ctx(significand)[4]; unsigned short int __ctx(exponent); }; struct _libc_fpstate { unsigned long int __ctx(cw); unsigned long int __ctx(sw); unsigned long int __ctx(tag); unsigned long int __ctx(ipoff); unsigned long int __ctx(cssel); unsigned long int __ctx(dataoff); unsigned long int __ctx(datasel); struct _libc_fpreg _st[8]; unsigned long int __ctx(status); }; /* Structure to describe FPU registers. */ typedef struct _libc_fpstate *fpregset_t; /* Context to describe whole processor state. */ typedef struct { gregset_t __ctx(gregs); /* Due to Linux's history we have to use a pointer here. The SysV/i386 ABI requires a struct with the values. */ fpregset_t __ctx(fpregs); unsigned long int __ctx(oldmask); unsigned long int __ctx(cr2); } mcontext_t; /* Userlevel context. */ typedef struct ucontext_t { unsigned long int __ctx(uc_flags); struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; unsigned long int __ssp[4]; } ucontext_t; #endif /* !__x86_64__ */ # 259 "/usr/include/sys/ucontext.h" 3 4 #undef __ctx #endif /* sys/ucontext.h */ # 263 "/usr/include/sys/ucontext.h" 3 4 #endif /* ucontext.h expanded by -frewrite-includes */ # 317 "/usr/include/signal.h" 2 3 4 # endif # 318 "/usr/include/signal.h" 3 4 #endif /* Use POSIX.1-2008 or X/Open Unix. */ # 319 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_MISC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 321 "/usr/include/signal.h" 3 4 /* If INTERRUPT is nonzero, make signal SIG interrupt system calls (causing them to fail with EINTR); if INTERRUPT is zero, make system calls be restarted after signal SIG. */ extern int siginterrupt (int __sig, int __interrupt) __THROW __attribute_deprecated_msg__ ("Use sigaction with SA_RESTART instead"); #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigstack.h expanded by -frewrite-includes */ # include #else /* sigstack.h expanded by -frewrite-includes */ # 327 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigstack.h" 1 3 4 /* sigstack, sigaltstack definitions. Copyright (C) 1998-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SIGSTACK_H #define _BITS_SIGSTACK_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/usr/include/bits/sigstack.h" 3 4 # error "Never include this file directly. Use instead" #endif # 25 "/usr/include/bits/sigstack.h" 3 4 /* Minimum stack size for a signal handler. */ #define MINSIGSTKSZ 2048 /* System default stack size. */ #define SIGSTKSZ 8192 #endif /* bits/sigstack.h */ # 33 "/usr/include/bits/sigstack.h" 3 4 #endif /* sigstack.h expanded by -frewrite-includes */ # 328 "/usr/include/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigstksz.h expanded by -frewrite-includes */ # include #else /* sigstksz.h expanded by -frewrite-includes */ # 328 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigstksz.h" 1 3 4 /* Definition of MINSIGSTKSZ and SIGSTKSZ. Linux version. Copyright (C) 2020-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SIGNAL_H # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/sigstksz.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_DYNAMIC_STACK_SIZE && __USE_DYNAMIC_STACK_SIZE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 24 "/usr/include/bits/sigstksz.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 24 "/usr/include/bits/sigstksz.h" 3 4 # 25 "/usr/include/bits/sigstksz.h" 3 4 /* Default stack size for a signal handler: sysconf (SC_SIGSTKSZ). */ # undef SIGSTKSZ # define SIGSTKSZ sysconf (_SC_SIGSTKSZ) /* Minimum stack size for a signal handler: SIGSTKSZ. */ # undef MINSIGSTKSZ # define MINSIGSTKSZ SIGSTKSZ #endif # 34 "/usr/include/bits/sigstksz.h" 3 4 #endif /* sigstksz.h expanded by -frewrite-includes */ # 329 "/usr/include/signal.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* ss_flags.h expanded by -frewrite-includes */ # include #else /* ss_flags.h expanded by -frewrite-includes */ # 329 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/ss_flags.h" 1 3 4 /* ss_flags values for stack_t. Linux version. Copyright (C) 1998-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _BITS_SS_FLAGS_H #define _BITS_SS_FLAGS_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/usr/include/bits/ss_flags.h" 3 4 # error "Never include this file directly. Use instead" #endif # 25 "/usr/include/bits/ss_flags.h" 3 4 /* Possible values for `ss_flags'. */ enum { SS_ONSTACK = 1, #define SS_ONSTACK SS_ONSTACK SS_DISABLE #define SS_DISABLE SS_DISABLE }; #endif /* bits/ss_flags.h */ # 36 "/usr/include/bits/ss_flags.h" 3 4 #endif /* ss_flags.h expanded by -frewrite-includes */ # 330 "/usr/include/signal.h" 2 3 4 /* Alternate signal handler stack interface. This interface should always be preferred over `sigstack'. */ extern int sigaltstack (const stack_t *__restrict __ss, stack_t *__restrict __oss) __THROW; #endif /* __USE_XOPEN_EXTENDED || __USE_MISC */ # 336 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if ((defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8) \ || defined __USE_MISC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 339 "/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* struct_sigstack.h expanded by -frewrite-includes */ # include #else /* struct_sigstack.h expanded by -frewrite-includes */ # 339 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/types/struct_sigstack.h" 1 3 4 /* Define struct sigstack. Copyright (C) 1998-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef __sigstack_defined #define __sigstack_defined 1 /* Structure describing a signal stack (obsolete). */ struct sigstack { void *ss_sp; /* Signal stack pointer. */ int ss_onstack; /* Nonzero if executing on this stack. */ }; #endif # 30 "/usr/include/bits/types/struct_sigstack.h" 3 4 #endif /* struct_sigstack.h expanded by -frewrite-includes */ # 340 "/usr/include/signal.h" 2 3 4 #endif # 341 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if ((defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \ || defined __USE_MISC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 344 "/usr/include/signal.h" 3 4 /* Run signals handlers on the stack specified by SS (if not NULL). If OSS is not NULL, it is filled in with the old signal stack status. This interface is obsolete and on many platform not implemented. */ extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __THROW __attribute_deprecated__; #endif # 350 "/usr/include/signal.h" 3 4 #ifdef __USE_XOPEN_EXTENDED /* Simplified interface for signal management. */ /* Add SIG to the calling process' signal mask. */ extern int sighold (int __sig) __THROW __attribute_deprecated_msg__ ("Use the sigprocmask function instead"); /* Remove SIG from the calling process' signal mask. */ extern int sigrelse (int __sig) __THROW __attribute_deprecated_msg__ ("Use the sigprocmask function instead"); /* Set the disposition of SIG to SIG_IGN. */ extern int sigignore (int __sig) __THROW __attribute_deprecated_msg__ ("Use the signal function instead"); /* Set the disposition of SIG. */ extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW __attribute_deprecated_msg__ ("Use the signal and sigprocmask functions instead"); #endif # 371 "/usr/include/signal.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_POSIX199506 || defined __USE_UNIX98 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 373 "/usr/include/signal.h" 3 4 /* Some of the functions for handling signals in threaded programs must be defined here. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 375 "/usr/include/signal.h" 3 4 # 376 "/usr/include/signal.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* sigthread.h expanded by -frewrite-includes */ # include #else /* sigthread.h expanded by -frewrite-includes */ # 376 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/sigthread.h" 1 3 4 /* Signal handling function for threaded programs. Copyright (C) 1998-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If not, see . */ #ifndef _BITS_SIGTHREAD_H #define _BITS_SIGTHREAD_H 1 #if 0 /* disabled by -frewrite-includes */ #if !defined _SIGNAL_H && !defined _PTHREAD_H #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/usr/include/bits/sigthread.h" 3 4 # error "Never include this file directly. Use instead" #endif # 25 "/usr/include/bits/sigthread.h" 3 4 /* Functions for handling signals. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "/usr/include/bits/sigthread.h" 3 4 # 28 "/usr/include/bits/sigthread.h" 3 4 /* Modify the signal mask for the calling thread. The arguments have the same meaning as for sigprocmask(2). */ extern int pthread_sigmask (int __how, const __sigset_t *__restrict __newmask, __sigset_t *__restrict __oldmask)__THROW; /* Send signal SIGNO to the given thread. */ extern int pthread_kill (pthread_t __threadid, int __signo) __THROW; #ifdef __USE_GNU /* Queue signal and data to a thread. */ extern int pthread_sigqueue (pthread_t __threadid, int __signo, const union sigval __value) __THROW; #endif # 43 "/usr/include/bits/sigthread.h" 3 4 #endif /* bits/sigthread.h */ # 45 "/usr/include/bits/sigthread.h" 3 4 #endif /* sigthread.h expanded by -frewrite-includes */ # 377 "/usr/include/signal.h" 2 3 4 #endif /* use Unix98 */ # 378 "/usr/include/signal.h" 3 4 /* The following functions are used internally in the C library and in other code which need deep insights. */ /* Return number of available real-time signal with highest priority. */ extern int __libc_current_sigrtmin (void) __THROW; /* Return number of available real-time signal with lowest priority. */ extern int __libc_current_sigrtmax (void) __THROW; #define SIGRTMIN (__libc_current_sigrtmin ()) #define SIGRTMAX (__libc_current_sigrtmax ()) /* System-specific extensions. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* signal_ext.h expanded by -frewrite-includes */ #include #else /* signal_ext.h expanded by -frewrite-includes */ # 391 "/usr/include/signal.h" 3 4 # 1 "/usr/include/bits/signal_ext.h" 1 3 4 /* System-specific extensions of , Linux version. Copyright (C) 2019-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _SIGNAL_H # error "Never include directly; use instead." #endif # 22 "/usr/include/bits/signal_ext.h" 3 4 #ifdef __USE_GNU /* Send SIGNAL to the thread TID in the thread group (process) identified by TGID. This function behaves like kill, but also fails with ESRCH if the specified TID does not belong to the specified thread group. */ extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal); #endif /* __USE_GNU */ # 32 "/usr/include/bits/signal_ext.h" 3 4 #endif /* signal_ext.h expanded by -frewrite-includes */ # 392 "/usr/include/signal.h" 2 3 4 __END_DECLS #endif /* not signal.h */ # 396 "/usr/include/signal.h" 3 4 #endif /* signal.h expanded by -frewrite-includes */ # 45 "../mesa/src/util/os_misc.h" 2 #if 0 /* expanded by -frewrite-includes */ # include /* getpid() */ #endif /* expanded by -frewrite-includes */ # 45 "../mesa/src/util/os_misc.h" # 46 "../mesa/src/util/os_misc.h" #endif # 47 "../mesa/src/util/os_misc.h" #ifdef __cplusplus extern "C" { #endif # 52 "../mesa/src/util/os_misc.h" /* * Trap into the debugger. */ #if 0 /* disabled by -frewrite-includes */ #if (DETECT_ARCH_X86 || DETECT_ARCH_X86_64) && DETECT_CC_GCC #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 58 "../mesa/src/util/os_misc.h" # define os_break() __asm("int3") #if 0 /* disabled by -frewrite-includes */ #if 0 #elif DETECT_CC_MSVC #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 60 "../mesa/src/util/os_misc.h" # define os_break() __debugbreak() #if 0 /* disabled by -frewrite-includes */ #if 0 #elif DETECT_OS_POSIX #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 62 "../mesa/src/util/os_misc.h" # define os_break() kill(getpid(), SIGTRAP) #else # 64 "../mesa/src/util/os_misc.h" # define os_break() abort() #endif # 66 "../mesa/src/util/os_misc.h" /* * Abort the program. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 72 "../mesa/src/util/os_misc.h" # define os_abort() do { os_break(); abort(); } while(0) #else # 74 "../mesa/src/util/os_misc.h" # define os_abort() abort() #endif # 76 "../mesa/src/util/os_misc.h" /* * Output a message. Message should preferably end in a newline. */ void os_log_message(const char *message); /* * Get an option. Should return NULL if specified option is not set. * It has the same disadvantage as getenv, see * https://wiki.sei.cmu.edu/confluence/display/c/ENV34-C.+Do+not+store+pointers+returned+by+certain+functions */ const char * os_get_option(const char *name); /* * Get an option. Should return NULL if specified option is not set. * It's will save the option into hash table for the first time, and * for latter calling, it's will return the value comes from hash table * directly, and the returned value will always be valid before program exit * The disadvantage is that setenv, unsetenv, putenv won't take effect * after this function is called */ const char * os_get_option_cached(const char *name); /* * Get the total amount of physical memory available on the system. */ bool os_get_total_physical_memory(uint64_t *size); /* * Amount of physical memory available to a process */ bool os_get_available_system_memory(uint64_t *size); /* * Size of a page */ bool os_get_page_size(uint64_t *size); #ifdef __cplusplus } #endif # 126 "../mesa/src/util/os_misc.h" #endif /* _OS_MISC_H_ */ # 129 "../mesa/src/util/os_misc.h" #endif /* os_misc.h expanded by -frewrite-includes */ # 50 "../mesa/src/util/u_debug.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_atomic.h expanded by -frewrite-includes */ #include "util/u_atomic.h" #else /* u_atomic.h expanded by -frewrite-includes */ # 50 "../mesa/src/util/u_debug.h" # 1 "../mesa/src/util/u_atomic.h" 1 /** * Many similar implementations exist. See for example libwsbm * or the linux kernel include/atomic.h * * No copyright claimed on this file. * */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 9 "../mesa/src/util/u_atomic.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 10 "../mesa/src/util/u_atomic.h" 2 #ifndef U_ATOMIC_H #define U_ATOMIC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../mesa/src/util/u_atomic.h" # 15 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../mesa/src/util/u_atomic.h" # 16 "../mesa/src/util/u_atomic.h" /* Favor OS-provided implementations. * * Where no OS-provided implementation is available, fall back to * locally coded assembly, compiler intrinsic or ultimately a * mutex-based implementation. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_OS_SOLARIS #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 26 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_MSVC_INTRINSIC #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_GCC_INTRINSIC #else # 30 "../mesa/src/util/u_atomic.h" #error "Unsupported platform" #endif # 32 "../mesa/src/util/u_atomic.h" /* Implementation using GCC-provided synchronization intrinsics */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_GCC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 37 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "GCC Sync Intrinsics" #if 0 /* disabled by -frewrite-includes */ #if defined(USE_GCC_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../mesa/src/util/u_atomic.h" /* The builtins with explicit memory model are available since GCC 4.7. */ #define p_atomic_set(_v, _i) __atomic_store_n((_v), (_i), __ATOMIC_RELEASE) #define p_atomic_read(_v) __atomic_load_n((_v), __ATOMIC_ACQUIRE) #define p_atomic_read_relaxed(_v) __atomic_load_n((_v), __ATOMIC_RELAXED) #define p_atomic_dec_zero(v) (__atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) == 0) #define p_atomic_inc(v) (void) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec(v) (void) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add(v, i) (void) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_inc_return(v) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec_return(v) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add_return(v, i) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_fetch_add(v, i) __atomic_fetch_add((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_xchg(v, i) __atomic_exchange_n((v), (i), __ATOMIC_ACQ_REL) #define PIPE_NATIVE_ATOMIC_XCHG #else # 58 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(v) (__sync_sub_and_fetch((v), 1) == 0) #define p_atomic_inc(v) (void) __sync_add_and_fetch((v), 1) #define p_atomic_dec(v) (void) __sync_sub_and_fetch((v), 1) #define p_atomic_add(v, i) (void) __sync_add_and_fetch((v), (i)) #define p_atomic_inc_return(v) __sync_add_and_fetch((v), 1) #define p_atomic_dec_return(v) __sync_sub_and_fetch((v), 1) #define p_atomic_add_return(v, i) __sync_add_and_fetch((v), (i)) #define p_atomic_fetch_add(v, i) __sync_fetch_and_add((v), (i)) #endif # 72 "../mesa/src/util/u_atomic.h" /* There is no __atomic_* compare and exchange that returns the current value. * Also, GCC 5.4 seems unable to optimize a compound statement expression that * uses an additional stack variable with __atomic_compare_exchange[_n]. */ #define p_atomic_cmpxchg(v, old, _new) \ __sync_val_compare_and_swap((v), (old), (_new)) #define p_atomic_cmpxchg_ptr(v, old, _new) p_atomic_cmpxchg(v, old, _new) #endif # 82 "../mesa/src/util/u_atomic.h" /* Unlocked version for single threaded environments, such as some * windows kernel modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_UNLOCKED) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Unlocked" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) ((void) p_atomic_inc_return(_v)) #define p_atomic_dec(_v) ((void) p_atomic_dec_return(_v)) #define p_atomic_add(_v, _i) ((void) p_atomic_add_return((_v), (_i))) #define p_atomic_inc_return(_v) (++(*(_v))) #define p_atomic_dec_return(_v) (--(*(_v))) #define p_atomic_add_return(_v, _i) (*(_v) = *(_v) + (_i)) #define p_atomic_fetch_add(_v, _i) (*(_v) = *(_v) + (_i), *(_v) - (_i)) #define p_atomic_cmpxchg(_v, _old, _new) (*(_v) == (_old) ? (*(_v) = (_new), (_old)) : *(_v)) #define p_atomic_cmpxchg_ptr(_v, _old, _new) p_atomic_cmpxchg(_v, _old, _new) #endif # 107 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_MSVC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 110 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "MSVC Intrinsics" /* We use the Windows header's Interlocked*64 functions instead of the * _Interlocked*64 intrinsics wherever we can, as support for the latter varies * with target CPU, whereas Windows headers take care of all portability * issues: using intrinsics where available, falling back to library * implementations where not. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 119 "../mesa/src/util/u_atomic.h" # 120 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 120 "../mesa/src/util/u_atomic.h" # 121 "../mesa/src/util/u_atomic.h" __forceinline char _interlockedadd8(char volatile * _Addend, char _Value) { return _InterlockedExchangeAdd8(_Addend, _Value) + _Value; } __forceinline short _interlockedadd16(short volatile * _Addend, short _Value) { return _InterlockedExchangeAdd16(_Addend, _Value) + _Value; } /* MSVC supports decltype keyword, but it's only supported on C++ and doesn't * quite work here; and if a C++-only solution is worthwhile, then it would be * better to use templates / function overloading, instead of decltype magic. * Therefore, we rely on implicit casting to LONGLONG for the functions that return */ #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) \ (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) \ ((void) p_atomic_inc_return(_v)) #define p_atomic_inc_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), 1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedIncrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedIncrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedincrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(_v) \ ((void) p_atomic_dec_return(_v)) #define p_atomic_dec_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), -1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedDecrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedDecrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockeddecrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(_v, _i) \ ((void) p_atomic_fetch_add((_v), (_i))) #define p_atomic_add_return(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _interlockedadd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _interlockedadd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _interlockedadd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchangeAdd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchangeAdd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchangeAdd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchangeadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(_v, _old, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedCompareExchange8 ((char *) (_v), (char) (_new), (char) (_old)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedCompareExchange16((short *) (_v), (short) (_new), (short) (_old)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedCompareExchange ((long *) (_v), (long) (_new), (long) (_old)) : \ sizeof *(_v) == sizeof(__int64) ? _InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) #else # 192 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange((long *)(_v), (long)(_new), (long)(_old)) #endif # 194 "../mesa/src/util/u_atomic.h" #define PIPE_NATIVE_ATOMIC_XCHG #define p_atomic_xchg(_v, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchange8 ((char *) (_v), (char) (_new)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchange16((short *) (_v), (short) (_new)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchange ((long *) (_v), (long) (_new)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchange64((__int64 *)(_v), (__int64)(_new)) : \ (assert(!"should not get here"), 0)) #endif # 204 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_SOLARIS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 206 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Solaris OS atomic functions" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 209 "../mesa/src/util/u_atomic.h" # 210 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 210 "../mesa/src/util/u_atomic.h" # 211 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_dec_zero(v) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) == 0 : \ (assert(!"should not get here"), 0)) #define p_atomic_inc(v) (void) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_inc_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(v) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(v, i) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8 ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add_return(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) - (i) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(v, old, _new) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_cas_8 ((uint8_t *)(v), (uint8_t )(old), (uint8_t )(_new)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_cas_16((uint16_t *)(v), (uint16_t)(old), (uint16_t)(_new)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if INTPTR_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new))) #else # 281 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new))) #endif # 283 "../mesa/src/util/u_atomic.h" #endif # 285 "../mesa/src/util/u_atomic.h" #ifndef PIPE_ATOMIC #error "No pipe_atomic implementation selected" #endif # 289 "../mesa/src/util/u_atomic.h" #ifndef PIPE_NATIVE_ATOMIC_XCHG static inline uint8_t p_atomic_xchg_8(uint8_t *v, uint8_t i) { uint8_t actual = p_atomic_read(v); uint8_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint16_t p_atomic_xchg_16(uint16_t *v, uint16_t i) { uint16_t actual = p_atomic_read(v); uint16_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint32_t p_atomic_xchg_32(uint32_t *v, uint32_t i) { uint32_t actual = p_atomic_read(v); uint32_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint64_t p_atomic_xchg_64(uint64_t *v, uint64_t i) { uint64_t actual = p_atomic_read(v); uint64_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } #define p_atomic_xchg(v, i) (__typeof(*(v)))( \ sizeof(*(v)) == sizeof(uint8_t) ? p_atomic_xchg_8 ((uint8_t *)(v), (uint8_t )(i)) : \ sizeof(*(v)) == sizeof(uint16_t) ? p_atomic_xchg_16((uint16_t *)(v), (uint16_t)(i)) : \ sizeof(*(v)) == sizeof(uint32_t) ? p_atomic_xchg_32((uint32_t *)(v), (uint32_t)(i)) : \ sizeof(*(v)) == sizeof(uint64_t) ? p_atomic_xchg_64((uint64_t *)(v), (uint64_t)(i)) : \ (assert(!"should not get here"), 0)) #endif # 342 "../mesa/src/util/u_atomic.h" /* On x86 we can have sizeof(uint64_t) = 8 and _Alignof(uint64_t) = 4. causing split locks. The * implementation does handle that correctly, but with an internal mutex. Extend the alignment to * avoid this. * `p_atomic_int64_t` and `p_atomic_uint64_t` are used for casting any pointer to * `p_atomic_int64_t *` and `p_atomic_uint64_t *`. That's for telling the compiler is accessing * the 64 bits atomic in 8 byte aligned way to avoid clang `misaligned atomic operation` warning. * To define 64 bits atomic memeber in struct type, * use `alignas(8) int64_t $member` or `alignas(8) uint64_t $member` is enough. */ typedef struct { #ifndef __cplusplus _Alignas(8) #else # 356 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 358 "../mesa/src/util/u_atomic.h" int64_t value; } p_atomic_int64_t; typedef struct { #ifndef __cplusplus _Alignas(8) #else # 364 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 366 "../mesa/src/util/u_atomic.h" uint64_t value; } p_atomic_uint64_t; #endif /* U_ATOMIC_H */ # 370 "../mesa/src/util/u_atomic.h" #endif /* u_atomic.h expanded by -frewrite-includes */ # 51 "../mesa/src/util/u_debug.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/detect_os.h" #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/util/u_debug.h" # 52 "../mesa/src/util/u_debug.h" #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 52 "../mesa/src/util/u_debug.h" # 53 "../mesa/src/util/u_debug.h" #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_HAIKU #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 55 "../mesa/src/util/u_debug.h" /* Haiku provides debug_printf in libroot with OS.h */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 56 "../mesa/src/util/u_debug.h" # 57 "../mesa/src/util/u_debug.h" #endif # 58 "../mesa/src/util/u_debug.h" #ifdef __cplusplus extern "C" { #endif # 62 "../mesa/src/util/u_debug.h" enum util_debug_type { UTIL_DEBUG_TYPE_OUT_OF_MEMORY = 1, UTIL_DEBUG_TYPE_ERROR, UTIL_DEBUG_TYPE_SHADER_INFO, UTIL_DEBUG_TYPE_PERF_INFO, UTIL_DEBUG_TYPE_INFO, UTIL_DEBUG_TYPE_FALLBACK, UTIL_DEBUG_TYPE_CONFORMANCE, }; /** * Structure that contains a callback for debug messages from the driver back * to the gallium frontend. */ struct util_debug_callback { /** * When set to \c true, the callback may be called asynchronously from a * driver-created thread. */ bool async; /** * Callback for the driver to report debug/performance/etc information back * to the gallium frontend. * * \param data user-supplied data pointer * \param id message type identifier, if pointed value is 0, then a * new id is assigned * \param type UTIL_DEBUG_TYPE_* * \param format printf-style format string * \param args args for format string */ void (*debug_message)(void *data, unsigned *id, enum util_debug_type type, const char *fmt, va_list args); void *data; }; #define _util_printf_format(fmt, list) PRINTFLIKE(fmt, list) void _debug_vprintf(const char *format, va_list ap); static inline void _debug_printf(const char *format, ...) { va_list ap; va_start(ap, format); _debug_vprintf(format, ap); va_end(ap); } /** * Print debug messages. * * The actual channel used to output debug message is platform specific. To * avoid misformating or truncation, follow these rules of thumb: * - output whole lines * - avoid outputing large strings (512 bytes is the current maximum length * that is guaranteed to be printed in all platforms) */ #if 0 /* disabled by -frewrite-includes */ #if !DETECT_OS_HAIKU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 130 "../mesa/src/util/u_debug.h" static inline void debug_printf(const char *format, ...) _util_printf_format(1,2); static inline void debug_printf(const char *format, ...) { #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "../mesa/src/util/u_debug.h" va_list ap; va_start(ap, format); _debug_vprintf(format, ap); va_end(ap); #else # 142 "../mesa/src/util/u_debug.h" (void) format; /* silence warning */ #endif # 144 "../mesa/src/util/u_debug.h" } #endif # 146 "../mesa/src/util/u_debug.h" /* * ... isn't portable so we need to pass arguments in parentheses. * * usage: * debug_printf_once(("answer: %i\n", 42)); */ #define debug_printf_once(args) \ do { \ static bool once = true; \ if (once) { \ once = false; \ debug_printf args; \ } \ } while (0) #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 165 "../mesa/src/util/u_debug.h" #define debug_vprintf(_format, _ap) _debug_vprintf(_format, _ap) #else # 167 "../mesa/src/util/u_debug.h" #define debug_vprintf(_format, _ap) ((void)0) #endif # 169 "../mesa/src/util/u_debug.h" #ifdef _WIN32 /** * Disable Win32 interactive error message boxes. * * Should be called as soon as possible for effectiveness. */ void debug_disable_win32_error_dialogs(void); #endif # 179 "../mesa/src/util/u_debug.h" /** * Hard-coded breakpoint. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 185 "../mesa/src/util/u_debug.h" #define debug_break() os_break() #else /* !MESA_DEBUG */ # 187 "../mesa/src/util/u_debug.h" #define debug_break() ((void)0) #endif /* MESA_DEBUG */ # 189 "../mesa/src/util/u_debug.h" void debug_get_version_option(const char *name, unsigned *major, unsigned *minor); /** * Output the current function name. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 199 "../mesa/src/util/u_debug.h" #define debug_checkpoint() \ _debug_printf("%s\n", __func__) #else # 202 "../mesa/src/util/u_debug.h" #define debug_checkpoint() \ ((void)0) #endif # 205 "../mesa/src/util/u_debug.h" /** * Output the full source code position. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 211 "../mesa/src/util/u_debug.h" #define debug_checkpoint_full() \ _debug_printf("%s:%u:%s\n", __FILE__, __LINE__, __func__) #else # 214 "../mesa/src/util/u_debug.h" #define debug_checkpoint_full() \ ((void)0) #endif # 217 "../mesa/src/util/u_debug.h" /** * Output a warning message. Muted on release version. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 223 "../mesa/src/util/u_debug.h" #define debug_warning(__msg) \ _debug_printf("%s:%u:%s: warning: %s\n", __FILE__, __LINE__, __func__, __msg) #else # 226 "../mesa/src/util/u_debug.h" #define debug_warning(__msg) \ ((void)0) #endif # 229 "../mesa/src/util/u_debug.h" /** * Emit a warning message, but only once. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 235 "../mesa/src/util/u_debug.h" #define debug_warn_once(__msg) \ do { \ static bool warned = false; \ if (!warned) { \ _debug_printf("%s:%u:%s: one time warning: %s\n", \ __FILE__, __LINE__, __func__, __msg); \ warned = true; \ } \ } while (0) #else # 245 "../mesa/src/util/u_debug.h" #define debug_warn_once(__msg) \ ((void)0) #endif # 248 "../mesa/src/util/u_debug.h" /** * Output an error message. Not muted on release version. */ #if 0 /* disabled by -frewrite-includes */ #if MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 254 "../mesa/src/util/u_debug.h" #define debug_error(__msg) \ _debug_printf("%s:%u:%s: error: %s\n", __FILE__, __LINE__, __func__, __msg) #else # 257 "../mesa/src/util/u_debug.h" #define debug_error(__msg) \ _debug_printf("error: %s\n", __msg) #endif # 260 "../mesa/src/util/u_debug.h" /** * Output a debug log message to the debug info callback. */ #define util_debug_message(cb, type, fmt, ...) do { \ static unsigned id = 0; \ _util_debug_message(cb, &id, \ UTIL_DEBUG_TYPE_ ## type, \ fmt, ##__VA_ARGS__); \ } while (0) void _util_debug_message( struct util_debug_callback *cb, unsigned *id, enum util_debug_type type, const char *fmt, ...) _util_printf_format(4, 5); /** * Used by debug_dump_enum and debug_dump_flags to describe symbols. */ struct debug_named_value { const char *name; uint64_t value; const char *desc; }; /** * Some C pre-processor magic to simplify creating named values. * * Example: * @code * static const debug_named_value my_names[] = { * DEBUG_NAMED_VALUE(MY_ENUM_VALUE_X), * DEBUG_NAMED_VALUE(MY_ENUM_VALUE_Y), * DEBUG_NAMED_VALUE(MY_ENUM_VALUE_Z), * DEBUG_NAMED_VALUE_END * }; * * ... * debug_printf("%s = %s\n", * name, * debug_dump_enum(my_names, my_value)); * ... * @endcode */ #define DEBUG_NAMED_VALUE(__symbol) {#__symbol, (uint64_t)__symbol, NULL} #define DEBUG_NAMED_VALUE_WITH_DESCRIPTION(__symbol, __desc) {#__symbol, (uint64_t)__symbol, __desc} #define DEBUG_NAMED_VALUE_END {NULL, 0, NULL} /** * Convert a enum value to a string. */ const char * debug_dump_enum(const struct debug_named_value *names, uint64_t value); /** * Convert binary flags value to a string. */ const char * debug_dump_flags(const struct debug_named_value *names, uint64_t value); struct debug_control { const char * string; uint64_t flag; }; uint64_t parse_debug_string(const char *debug, const struct debug_control *control); uint64_t parse_enable_string(const char *debug, uint64_t default_value, const struct debug_control *control); bool comma_separated_list_contains(const char *list, const char *s); /** * Get option. * * It is an alias for getenv on Unix and Windows. * */ const char * debug_get_option(const char *name, const char *dfault); const char * debug_get_option_cached(const char *name, const char *dfault); bool debug_parse_bool_option(const char *str, bool dfault); bool debug_get_bool_option(const char *name, bool dfault); int64_t debug_parse_num_option(const char *str, int64_t dfault); int64_t debug_get_num_option(const char *name, int64_t dfault); uint64_t debug_parse_flags_option(const char *name, const char *str, const struct debug_named_value *flags, uint64_t dfault); uint64_t debug_get_flags_option(const char *name, const struct debug_named_value *flags, uint64_t dfault); #define DEBUG_GET_ONCE_OPTION(suffix, name, dfault) \ static const char * \ debug_get_option_ ## suffix (void) \ { \ static bool initialized = false; \ static const char * value; \ if (unlikely(!p_atomic_read_relaxed(&initialized))) { \ const char *str = debug_get_option_cached(name, dfault); \ p_atomic_set(&value, str); \ p_atomic_set(&initialized, true); \ } \ return value; \ } static inline bool __normal_user(void) { #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 401 "../mesa/src/util/u_debug.h" return true; #else # 403 "../mesa/src/util/u_debug.h" return geteuid() == getuid() && getegid() == getgid(); #endif # 405 "../mesa/src/util/u_debug.h" } #ifndef HAVE_SECURE_GETENV static inline char *secure_getenv(const char *name) { return getenv(name); } #endif # 413 "../mesa/src/util/u_debug.h" #define DEBUG_GET_ONCE_BOOL_OPTION(sufix, name, dfault) \ static bool \ debug_get_option_ ## sufix (void) \ { \ static bool initialized = false; \ static bool value; \ if (unlikely(!p_atomic_read_relaxed(&initialized))) { \ const char *str = debug_get_option_cached(name, NULL); \ bool parsed_value = debug_parse_bool_option(str, dfault); \ p_atomic_set(&value, parsed_value); \ p_atomic_set(&initialized, true); \ } \ return value; \ } #define DEBUG_GET_ONCE_NUM_OPTION(sufix, name, dfault) \ static int64_t \ debug_get_option_ ## sufix (void) \ { \ static bool initialized = false; \ static int64_t value; \ if (unlikely(!p_atomic_read_relaxed(&initialized))) { \ const char *str = debug_get_option_cached(name, NULL); \ int64_t parsed_value = debug_parse_num_option(str, dfault); \ p_atomic_set(&value, parsed_value); \ p_atomic_set(&initialized, true); \ } \ return value; \ } #define DEBUG_GET_ONCE_FLAGS_OPTION(sufix, name, flags, dfault) \ static uint64_t \ debug_get_option_ ## sufix (void) \ { \ static bool initialized = false; \ static uint64_t value; \ if (unlikely(!p_atomic_read_relaxed(&initialized))) { \ const char *str = debug_get_option_cached(name, NULL); \ uint64_t parsed_value = debug_parse_flags_option(name, str, flags, dfault); \ p_atomic_set(&value, parsed_value); \ p_atomic_set(&initialized, true); \ } \ return value; \ } #ifdef __cplusplus } #endif # 463 "../mesa/src/util/u_debug.h" #endif /* U_DEBUG_H_ */ # 465 "../mesa/src/util/u_debug.h" #endif /* u_debug.h expanded by -frewrite-includes */ # 33 "../mesa/src/compiler/shader_enums.h" 2 #else # 34 "../mesa/src/compiler/shader_enums.h" #if 0 /* expanded by -frewrite-includes */ #include "libcl/libcl.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/compiler/shader_enums.h" # 35 "../mesa/src/compiler/shader_enums.h" #define debug_printf(x, ...) #endif # 37 "../mesa/src/compiler/shader_enums.h" /* Project-wide (GL and Vulkan) maximum. */ #define MAX_DRAW_BUFFERS 8 #ifdef __cplusplus extern "C" { #endif # 44 "../mesa/src/compiler/shader_enums.h" /** * Shader stages. * * The order must match how shaders are ordered in the pipeline. * The GLSL linker assumes that if i is the maximum number of * invocations in a sub-group. The maximum * supported in this extension is 64." * * The spec defines this as a uniform. However, it's highly unlikely that * implementations actually treat it as a uniform (which is loaded from a * constant buffer). Most likely, this is an implementation-wide constant, * or perhaps something that depends on the shader stage. */ SYSTEM_VALUE_SUBGROUP_SIZE, /** * From the GL_ARB_shader_ballot spec: * * "The variable holds the index of the * invocation within sub-group. This variable is in the range 0 to * -1, where is the total * number of invocations in a sub-group." */ SYSTEM_VALUE_SUBGROUP_INVOCATION, /** * From the GL_ARB_shader_ballot spec: * * "The variables provide a bitmask for all * invocations, with one bit per invocation starting with the least * significant bit, according to the following table, * * variable equation for bit values * -------------------- ------------------------------------ * gl_SubGroupEqMaskARB bit index == gl_SubGroupInvocationARB * gl_SubGroupGeMaskARB bit index >= gl_SubGroupInvocationARB * gl_SubGroupGtMaskARB bit index > gl_SubGroupInvocationARB * gl_SubGroupLeMaskARB bit index <= gl_SubGroupInvocationARB * gl_SubGroupLtMaskARB bit index < gl_SubGroupInvocationARB */ SYSTEM_VALUE_SUBGROUP_EQ_MASK, SYSTEM_VALUE_SUBGROUP_GE_MASK, SYSTEM_VALUE_SUBGROUP_GT_MASK, SYSTEM_VALUE_SUBGROUP_LE_MASK, SYSTEM_VALUE_SUBGROUP_LT_MASK, /*@}*/ /** * Builtin variables added by VK_KHR_subgroups */ /*@{*/ SYSTEM_VALUE_NUM_SUBGROUPS, SYSTEM_VALUE_SUBGROUP_ID, /*@}*/ /*@}*/ /** * \name Vertex shader system values */ /*@{*/ /** * OpenGL-style vertex ID. * * Section 2.11.7 (Shader Execution), subsection Shader Inputs, of the * OpenGL 3.3 core profile spec says: * * "gl_VertexID holds the integer index i implicitly passed by * DrawArrays or one of the other drawing commands defined in section * 2.8.3." * * Section 2.8.3 (Drawing Commands) of the same spec says: * * "The commands....are equivalent to the commands with the same base * name (without the BaseVertex suffix), except that the ith element * transferred by the corresponding draw call will be taken from * element indices[i] + basevertex of each enabled array." * * Additionally, the overview in the GL_ARB_shader_draw_parameters spec * says: * * "In unextended GL, vertex shaders have inputs named gl_VertexID and * gl_InstanceID, which contain, respectively the index of the vertex * and instance. The value of gl_VertexID is the implicitly passed * index of the vertex being processed, which includes the value of * baseVertex, for those commands that accept it." * * gl_VertexID gets basevertex added in. This differs from DirectX where * SV_VertexID does \b not get basevertex added in. * * \note * If all system values are available, \c SYSTEM_VALUE_VERTEX_ID will be * equal to \c SYSTEM_VALUE_VERTEX_ID_ZERO_BASE plus * \c SYSTEM_VALUE_BASE_VERTEX. * * \sa SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, SYSTEM_VALUE_BASE_VERTEX */ SYSTEM_VALUE_VERTEX_ID, /** * Instanced ID as supplied to gl_InstanceID * * Values assigned to gl_InstanceID always begin with zero, regardless of * the value of baseinstance. * * Section 11.1.3.9 (Shader Inputs) of the OpenGL 4.4 core profile spec * says: * * "gl_InstanceID holds the integer instance number of the current * primitive in an instanced draw call (see section 10.5)." * * Through a big chain of pseudocode, section 10.5 describes that * baseinstance is not counted by gl_InstanceID. In that section, notice * * "If an enabled vertex attribute array is instanced (it has a * non-zero divisor as specified by VertexAttribDivisor), the element * index that is transferred to the GL, for all vertices, is given by * * floor(instance/divisor) + baseinstance * * If an array corresponding to an attribute required by a vertex * shader is not enabled, then the corresponding element is taken from * the current attribute state (see section 10.2)." * * Note that baseinstance is \b not included in the value of instance. */ SYSTEM_VALUE_INSTANCE_ID, /** * Vulkan InstanceIndex. * * InstanceIndex = gl_InstanceID + gl_BaseInstance */ SYSTEM_VALUE_INSTANCE_INDEX, /** * DirectX-style vertex ID. * * Unlike \c SYSTEM_VALUE_VERTEX_ID, this system value does \b not include * the value of basevertex. * * \sa SYSTEM_VALUE_VERTEX_ID, SYSTEM_VALUE_BASE_VERTEX */ SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, /** * Value of \c basevertex passed to \c glDrawElementsBaseVertex and similar * functions. * * \sa SYSTEM_VALUE_VERTEX_ID, SYSTEM_VALUE_VERTEX_ID_ZERO_BASE */ SYSTEM_VALUE_BASE_VERTEX, /** * Depending on the type of the draw call (indexed or non-indexed), * is the value of \c basevertex passed to \c glDrawElementsBaseVertex and * similar, or is the value of \c first passed to \c glDrawArrays and * similar. * * \note * It can be used to calculate the \c SYSTEM_VALUE_VERTEX_ID as * \c SYSTEM_VALUE_VERTEX_ID_ZERO_BASE plus \c SYSTEM_VALUE_FIRST_VERTEX. * * \sa SYSTEM_VALUE_VERTEX_ID_ZERO_BASE, SYSTEM_VALUE_VERTEX_ID */ SYSTEM_VALUE_FIRST_VERTEX, /** * If the Draw command used to start the rendering was an indexed draw * or not (~0/0). Useful to calculate \c SYSTEM_VALUE_BASE_VERTEX as * \c SYSTEM_VALUE_IS_INDEXED_DRAW & \c SYSTEM_VALUE_FIRST_VERTEX. */ SYSTEM_VALUE_IS_INDEXED_DRAW, /** * Value of \c baseinstance passed to instanced draw entry points * * \sa SYSTEM_VALUE_INSTANCE_ID */ SYSTEM_VALUE_BASE_INSTANCE, /** * From _ARB_shader_draw_parameters: * * "Additionally, this extension adds a further built-in variable, * gl_DrawID to the shading language. This variable contains the index * of the draw currently being processed by a Multi* variant of a * drawing command (such as MultiDrawElements or * MultiDrawArraysIndirect)." * * If GL_ARB_multi_draw_indirect is not supported, this is always 0. */ SYSTEM_VALUE_DRAW_ID, /*@}*/ /** * \name Geometry shader system values */ /*@{*/ SYSTEM_VALUE_INVOCATION_ID, /**< (Also in Tessellation Control shader) */ /*@}*/ /** * \name Fragment shader system values */ /*@{*/ SYSTEM_VALUE_FRAG_COORD, SYSTEM_VALUE_PIXEL_COORD, SYSTEM_VALUE_POINT_COORD, SYSTEM_VALUE_LINE_COORD, /**< Coord along axis perpendicular to line */ SYSTEM_VALUE_FRONT_FACE, SYSTEM_VALUE_FRONT_FACE_FSIGN, SYSTEM_VALUE_SAMPLE_ID, SYSTEM_VALUE_SAMPLE_POS, SYSTEM_VALUE_SAMPLE_POS_OR_CENTER, SYSTEM_VALUE_SAMPLE_MASK_IN, SYSTEM_VALUE_LAYER_ID, SYSTEM_VALUE_HELPER_INVOCATION, SYSTEM_VALUE_COLOR0, SYSTEM_VALUE_COLOR1, /*@}*/ /** * \name Tessellation Evaluation shader system values */ /*@{*/ SYSTEM_VALUE_TESS_COORD, SYSTEM_VALUE_VERTICES_IN, /**< Tessellation vertices in input patch */ SYSTEM_VALUE_PRIMITIVE_ID, SYSTEM_VALUE_TESS_LEVEL_OUTER, /**< TES input */ SYSTEM_VALUE_TESS_LEVEL_INNER, /**< TES input */ SYSTEM_VALUE_TESS_LEVEL_OUTER_DEFAULT, /**< TCS input for passthru TCS */ SYSTEM_VALUE_TESS_LEVEL_INNER_DEFAULT, /**< TCS input for passthru TCS */ /*@}*/ /** * \name Compute shader system values */ /*@{*/ SYSTEM_VALUE_LOCAL_INVOCATION_ID, SYSTEM_VALUE_LOCAL_INVOCATION_INDEX, SYSTEM_VALUE_GLOBAL_INVOCATION_ID, SYSTEM_VALUE_BASE_GLOBAL_INVOCATION_ID, SYSTEM_VALUE_GLOBAL_INVOCATION_INDEX, SYSTEM_VALUE_WORKGROUP_ID, SYSTEM_VALUE_BASE_WORKGROUP_ID, SYSTEM_VALUE_WORKGROUP_INDEX, SYSTEM_VALUE_NUM_WORKGROUPS, SYSTEM_VALUE_WORKGROUP_SIZE, SYSTEM_VALUE_GLOBAL_GROUP_SIZE, SYSTEM_VALUE_WORK_DIM, SYSTEM_VALUE_USER_DATA_AMD, /*@}*/ /** Required for VK_KHR_device_group */ SYSTEM_VALUE_DEVICE_INDEX, /** Required for VK_KHX_multiview */ SYSTEM_VALUE_VIEW_INDEX, /** * Driver internal vertex-count, used (for example) for drivers to * calculate stride for stream-out outputs. Not externally visible. */ SYSTEM_VALUE_VERTEX_CNT, /** * Required for AMD_shader_explicit_vertex_parameter and also used for * varying-fetch instructions. * * The _SIZE value is "primitive size", used to scale i/j in primitive * space to pixel space. */ SYSTEM_VALUE_BARYCENTRIC_PERSP_PIXEL, SYSTEM_VALUE_BARYCENTRIC_PERSP_SAMPLE, SYSTEM_VALUE_BARYCENTRIC_PERSP_CENTROID, SYSTEM_VALUE_BARYCENTRIC_PERSP_CENTER_RHW, SYSTEM_VALUE_BARYCENTRIC_LINEAR_PIXEL, SYSTEM_VALUE_BARYCENTRIC_LINEAR_CENTROID, SYSTEM_VALUE_BARYCENTRIC_LINEAR_SAMPLE, SYSTEM_VALUE_BARYCENTRIC_PULL_MODEL, /** * \name VK_KHR_fragment_shader_barycentric */ /*@{*/ SYSTEM_VALUE_BARYCENTRIC_PERSP_COORD, SYSTEM_VALUE_BARYCENTRIC_LINEAR_COORD, /*@}*/ /** * \name Ray tracing shader system values */ /*@{*/ SYSTEM_VALUE_RAY_LAUNCH_ID, SYSTEM_VALUE_RAY_LAUNCH_SIZE, SYSTEM_VALUE_RAY_WORLD_ORIGIN, SYSTEM_VALUE_RAY_WORLD_DIRECTION, SYSTEM_VALUE_RAY_OBJECT_ORIGIN, SYSTEM_VALUE_RAY_OBJECT_DIRECTION, SYSTEM_VALUE_RAY_T_MIN, SYSTEM_VALUE_RAY_T_MAX, SYSTEM_VALUE_RAY_OBJECT_TO_WORLD, SYSTEM_VALUE_RAY_WORLD_TO_OBJECT, SYSTEM_VALUE_RAY_HIT_KIND, SYSTEM_VALUE_RAY_FLAGS, SYSTEM_VALUE_RAY_GEOMETRY_INDEX, SYSTEM_VALUE_RAY_INSTANCE_CUSTOM_INDEX, SYSTEM_VALUE_CULL_MASK, SYSTEM_VALUE_RAY_TRIANGLE_VERTEX_POSITIONS, /*@}*/ /** * \name Task/Mesh shader system values */ /*@{*/ SYSTEM_VALUE_MESH_VIEW_COUNT, SYSTEM_VALUE_MESH_VIEW_INDICES, /*@}*/ /** * IR3 specific geometry shader and tesselation control shader system * values that packs invocation id, thread id and vertex id. Having this * as a nir level system value lets us do the unpacking in nir. */ SYSTEM_VALUE_GS_HEADER_IR3, SYSTEM_VALUE_TCS_HEADER_IR3, /* IR3 specific system value that contains the patch id for the current * subdraw. */ SYSTEM_VALUE_REL_PATCH_ID_IR3, /** * Fragment shading rate used for KHR_fragment_shading_rate (Vulkan). */ SYSTEM_VALUE_FRAG_SHADING_RATE, /* * Rasterized fragment is fully covered by the generating primitive * (SPV_EXT_fragment_fully_covered). */ SYSTEM_VALUE_FULLY_COVERED, /* * Fragment size and invocation count used for * EXT_fragment_invocation_density (Vulkan). */ SYSTEM_VALUE_FRAG_SIZE, SYSTEM_VALUE_FRAG_INVOCATION_COUNT, /* SPV_AMDX_shader_enqueue */ SYSTEM_VALUE_SHADER_INDEX, SYSTEM_VALUE_COALESCED_INPUT_COUNT, /* SPV_NV_shader_sm_builtins */ SYSTEM_VALUE_WARPS_PER_SM_NV, SYSTEM_VALUE_SM_COUNT_NV, SYSTEM_VALUE_WARP_ID_NV, SYSTEM_VALUE_SM_ID_NV, SYSTEM_VALUE_MAX /**< Number of values */ } gl_system_value; const char *gl_system_value_name(gl_system_value sysval); /** * The possible interpolation qualifiers that can be applied to a fragment * shader input in GLSL. * * Note: INTERP_MODE_NONE must be 0 so that memsetting the * ir_variable data structure to 0 causes the default behavior. */ enum glsl_interp_mode { INTERP_MODE_NONE = 0, INTERP_MODE_SMOOTH, INTERP_MODE_FLAT, INTERP_MODE_NOPERSPECTIVE, INTERP_MODE_EXPLICIT, INTERP_MODE_COUNT /**< Number of interpolation qualifiers */ }; enum glsl_interface_packing { GLSL_INTERFACE_PACKING_STD140, GLSL_INTERFACE_PACKING_SHARED, GLSL_INTERFACE_PACKING_PACKED, GLSL_INTERFACE_PACKING_STD430 }; const char *glsl_interp_mode_name(enum glsl_interp_mode qual); /** * Fragment program results */ typedef enum { FRAG_RESULT_DEPTH = 0, FRAG_RESULT_STENCIL = 1, /* If a single color should be written to all render targets, this * register is written. No FRAG_RESULT_DATAn will be written. */ FRAG_RESULT_COLOR = 2, FRAG_RESULT_SAMPLE_MASK = 3, /* FRAG_RESULT_DATAn are the per-render-target (GLSL gl_FragData[n] * or ARB_fragment_program fragment.color[n]) color results. If * any are written, FRAG_RESULT_COLOR will not be written. * FRAG_RESULT_DATA1 and up are simply for the benefit of * gl_frag_result_name() and not to be construed as an upper bound */ FRAG_RESULT_DATA0 = 4, FRAG_RESULT_DATA1, FRAG_RESULT_DATA2, FRAG_RESULT_DATA3, FRAG_RESULT_DATA4, FRAG_RESULT_DATA5, FRAG_RESULT_DATA6, FRAG_RESULT_DATA7, } gl_frag_result; const char *gl_frag_result_name(gl_frag_result result); #define FRAG_RESULT_MAX (FRAG_RESULT_DATA0 + MAX_DRAW_BUFFERS) /** * \brief Layout qualifiers for gl_FragDepth. * * Extension AMD_conservative_depth allows gl_FragDepth to be redeclared with * a layout qualifier. * * \see enum ir_depth_layout */ enum gl_frag_depth_layout { FRAG_DEPTH_LAYOUT_NONE, /**< No layout is specified. */ FRAG_DEPTH_LAYOUT_ANY, FRAG_DEPTH_LAYOUT_GREATER, FRAG_DEPTH_LAYOUT_LESS, FRAG_DEPTH_LAYOUT_UNCHANGED }; /** * \brief Layout qualifiers for AMD_shader_early_and_late_fragment_tests. */ enum gl_frag_stencil_layout { FRAG_STENCIL_LAYOUT_NONE, /**< No layout is specified. */ FRAG_STENCIL_LAYOUT_ANY, FRAG_STENCIL_LAYOUT_GREATER, FRAG_STENCIL_LAYOUT_LESS, FRAG_STENCIL_LAYOUT_UNCHANGED }; /** * \brief Memory access qualifiers */ enum gl_access_qualifier { /** * This means that the memory scope is the current device. It indicates * that reads and writes are coherent with reads and writes from other * shader invocations and other workgroups. */ ACCESS_COHERENT = (1 << 0), /** * This means non-aliased. It indicates that the accessed address is not * accessible through any other memory resource in the shader. */ ACCESS_RESTRICT = (1 << 1), /** * The access cannot be eliminated, duplicated, or combined with other * accesses. */ ACCESS_VOLATILE = (1 << 2), /* The memory used by the access/variable is not read. */ ACCESS_NON_READABLE = (1 << 3), /* The memory used by the access/variable is not written. */ ACCESS_NON_WRITEABLE = (1 << 4), /** * The access may use a non-uniform buffer or image index. * * This is not allowed in either OpenGL or OpenGL ES, or Vulkan unless * VK_EXT_descriptor_indexing is supported and the appropriate capability is * enabled. * * Some GL spec archaeology justifying this: * * Up through at least GLSL ES 3.20 and GLSL 4.50, "Opaque Types" says "When * aggregated into arrays within a shader, opaque types can only be indexed * with a dynamically uniform integral expression (see section 3.9.3) unless * otherwise noted; otherwise, results are undefined." * * The original GL_AB_shader_image_load_store specification for desktop GL * didn't have this restriction ("Images may be aggregated into arrays within * a shader (using square brackets [ ]) and can be indexed with general * integer expressions.") At the same time, * GL_ARB_shader_storage_buffer_objects *did* have the uniform restriction * ("A uniform or shader storage block array can only be indexed with a * dynamically uniform integral expression, otherwise results are * undefined"), just like ARB_gpu_shader5 did when it first introduced a * non-constant indexing of an opaque type with samplers. So, we assume that * this was an oversight in the original image_load_store spec, and was * considered a correction in the merge to core. */ ACCESS_NON_UNIFORM = (1 << 5), /* This has the same semantics as NIR_INTRINSIC_CAN_REORDER, only to be * used with loads. In other words, it means that the load can be * arbitrarily reordered, or combined with other loads to the same address. * It is implied by ACCESS_NON_WRITEABLE and a lack of ACCESS_VOLATILE. */ ACCESS_CAN_REORDER = (1 << 6), /** * Hints that the accessed address is not likely to be accessed again * in the near future. This reduces data retention in caches. */ ACCESS_NON_TEMPORAL = (1 << 7), /** Execute instruction also in helpers. */ ACCESS_INCLUDE_HELPERS = (1 << 8), /** * Whether the address bits are swizzled by the hw. This practically means * that loads can't be vectorized and must be exactly 32 bits on some chips. * The swizzle amount is determined by the descriptor. */ ACCESS_IS_SWIZZLED_AMD = (1 << 9), /** * Whether an AMD-specific buffer intrinsic uses a format conversion. * * If unset, the intrinsic will access raw memory without any conversion. * * If set, the memory opcode performs a format conversion according to * the format determined by the descriptor (in a manner identical to image * buffers and sampler buffers). */ ACCESS_USES_FORMAT_AMD = (1 << 10), /** * Whether a multi sample image load intrinsic uses sample index extracted * from fragment mask buffer. */ ACCESS_FMASK_LOWERED_AMD = (1 << 11), /** * Whether it is safe to speculatively execute this load. This allows * hoisting loads out of conditional control flow (including out of software * bounds checks). Setting this optimally depends on knowledge of the * hardware. Speculation is safe if out-of-bounds access does not trigger * undefined behaviour (even though the returned value of the speculated load * is bogus). This is the case if there is hardware-level bounds checking, or * if MMU faults are suppressed for the load. */ ACCESS_CAN_SPECULATE = (1 << 12), /** * Whether coherency with CP (command processor) or GE (geometry engine) * is required. */ ACCESS_CP_GE_COHERENT_AMD = (1 << 13), /* Guarantee that an image_load is in bounds so we can skip robustness code * on AGX, used for some internal shaders. */ ACCESS_IN_BOUNDS_AGX = (1 << 14), /** * Disallow vectorization. * * On some hw (AMD), sparse buffer loads return 0 for all components if * a sparse load starts on a non-resident page, crosses the page boundary, * and ends on a resident page. Sometimes we want it to return 0 only for * the portion of the load that's non-resident, and load values for * the portion that's resident. The workaround is to scalarize such loads * and disallow vectorization. This is used by an internal copy_buffer * shader where the API wants to copy all bytes that are resident. */ ACCESS_KEEP_SCALAR = (1 << 15), /** * Indicates that this load will use SMEM. */ ACCESS_SMEM_AMD = (1 << 16), }; /** * \brief Blend support qualifiers */ enum gl_advanced_blend_mode { BLEND_NONE = 0, BLEND_MULTIPLY, BLEND_SCREEN, BLEND_OVERLAY, BLEND_DARKEN, BLEND_LIGHTEN, BLEND_COLORDODGE, BLEND_COLORBURN, BLEND_HARDLIGHT, BLEND_SOFTLIGHT, BLEND_DIFFERENCE, BLEND_EXCLUSION, BLEND_HSL_HUE, BLEND_HSL_SATURATION, BLEND_HSL_COLOR, BLEND_HSL_LUMINOSITY, }; enum gl_tess_spacing { TESS_SPACING_UNSPECIFIED, TESS_SPACING_EQUAL, TESS_SPACING_FRACTIONAL_ODD, TESS_SPACING_FRACTIONAL_EVEN, }; enum tess_primitive_mode { TESS_PRIMITIVE_UNSPECIFIED, TESS_PRIMITIVE_TRIANGLES, TESS_PRIMITIVE_QUADS, TESS_PRIMITIVE_ISOLINES, }; static inline void mesa_count_tess_level_components(const enum tess_primitive_mode mode, unsigned *outer, unsigned *inner) { switch (mode) { case TESS_PRIMITIVE_ISOLINES: *outer = 2; *inner = 0; break; case TESS_PRIMITIVE_TRIANGLES: *outer = 3; *inner = 1; break; case TESS_PRIMITIVE_QUADS: default: *outer = 4; *inner = 2; break; } } /** * Mesa primitive types for both GL and Vulkan: */ enum ENUM_PACKED mesa_prim { MESA_PRIM_POINTS, MESA_PRIM_LINES, MESA_PRIM_LINE_LOOP, MESA_PRIM_LINE_STRIP, MESA_PRIM_TRIANGLES, MESA_PRIM_TRIANGLE_STRIP, MESA_PRIM_TRIANGLE_FAN, MESA_PRIM_QUADS, MESA_PRIM_QUAD_STRIP, MESA_PRIM_POLYGON, MESA_PRIM_LINES_ADJACENCY, MESA_PRIM_LINE_STRIP_ADJACENCY, MESA_PRIM_TRIANGLES_ADJACENCY, MESA_PRIM_TRIANGLE_STRIP_ADJACENCY, MESA_PRIM_PATCHES, MESA_PRIM_MAX = MESA_PRIM_PATCHES, MESA_PRIM_COUNT = MESA_PRIM_MAX +1, MESA_PRIM_UNKNOWN = (MESA_PRIM_MAX * 2), }; /** * Number of vertices per primitive as seen by a geometry or mesh shader. */ static inline unsigned mesa_vertices_per_prim(enum mesa_prim prim) { switch(prim) { case MESA_PRIM_POINTS: return 1; case MESA_PRIM_LINES: case MESA_PRIM_LINE_LOOP: case MESA_PRIM_LINE_STRIP: return 2; case MESA_PRIM_TRIANGLES: case MESA_PRIM_TRIANGLE_STRIP: case MESA_PRIM_TRIANGLE_FAN: return 3; case MESA_PRIM_LINES_ADJACENCY: case MESA_PRIM_LINE_STRIP_ADJACENCY: return 4; case MESA_PRIM_TRIANGLES_ADJACENCY: case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY: return 6; case MESA_PRIM_QUADS: case MESA_PRIM_QUAD_STRIP: /* These won't be seen from geometry shaders but prim assembly might for * prim id. */ return 4; /* The following primitives should never be used with geometry or mesh * shaders and their size is undefined. */ case MESA_PRIM_POLYGON: default: debug_printf("Unrecognized geometry or mesh shader primitive"); return 3; } } /** * Returns the number of decomposed primitives for the given * vertex count. * Parts of the pipline are invoked once for each triangle in * triangle strip, triangle fans and triangles and once * for each line in line strip, line loop, lines. Also * statistics depend on knowing the exact number of decomposed * primitives for a set of vertices. */ static inline unsigned u_decomposed_prims_for_vertices(enum mesa_prim primitive, int vertices) { switch (primitive) { case MESA_PRIM_POINTS: return vertices; case MESA_PRIM_LINES: return vertices / 2; case MESA_PRIM_LINE_LOOP: return (vertices >= 2) ? vertices : 0; case MESA_PRIM_LINE_STRIP: return (vertices >= 2) ? vertices - 1 : 0; case MESA_PRIM_TRIANGLES: return vertices / 3; case MESA_PRIM_TRIANGLE_STRIP: return (vertices >= 3) ? vertices - 2 : 0; case MESA_PRIM_TRIANGLE_FAN: return (vertices >= 3) ? vertices - 2 : 0; case MESA_PRIM_LINES_ADJACENCY: return vertices / 4; case MESA_PRIM_LINE_STRIP_ADJACENCY: return (vertices >= 4) ? vertices - 3 : 0; case MESA_PRIM_TRIANGLES_ADJACENCY: return vertices / 6; case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY: return (vertices >= 6) ? 1 + (vertices - 6) / 2 : 0; case MESA_PRIM_QUADS: return vertices / 4; case MESA_PRIM_QUAD_STRIP: return (vertices >= 4) ? (vertices - 2) / 2 : 0; /* Polygons can't be decomposed * because the number of their vertices isn't known so * for them and whatever else we don't recognize just * return 1 if the number of vertices is greater than * or equal to 3 and zero otherwise */ case MESA_PRIM_POLYGON: default: debug_printf("Invalid decomposition primitive!\n"); return (vertices >= 3) ? 1 : 0; } } /** * Decompose a primitive that is a loop, a strip, or a fan. Return the * original primitive if it is already decomposed. */ static inline enum mesa_prim u_decomposed_prim(enum mesa_prim prim) { switch (prim) { case MESA_PRIM_LINE_LOOP: case MESA_PRIM_LINE_STRIP: return MESA_PRIM_LINES; case MESA_PRIM_TRIANGLE_STRIP: case MESA_PRIM_TRIANGLE_FAN: return MESA_PRIM_TRIANGLES; case MESA_PRIM_QUAD_STRIP: return MESA_PRIM_QUADS; case MESA_PRIM_LINE_STRIP_ADJACENCY: return MESA_PRIM_LINES_ADJACENCY; case MESA_PRIM_TRIANGLE_STRIP_ADJACENCY: return MESA_PRIM_TRIANGLES_ADJACENCY; default: return prim; } } /** * Reduce a primitive to one of MESA_PRIM_POINTS, MESA_PRIM_LINES, and * MESA_PRIM_TRIANGLES. */ static inline enum mesa_prim u_reduced_prim(enum mesa_prim prim) { switch (prim) { case MESA_PRIM_POINTS: return MESA_PRIM_POINTS; case MESA_PRIM_LINES: case MESA_PRIM_LINE_LOOP: case MESA_PRIM_LINE_STRIP: case MESA_PRIM_LINES_ADJACENCY: case MESA_PRIM_LINE_STRIP_ADJACENCY: return MESA_PRIM_LINES; default: return MESA_PRIM_TRIANGLES; } } static inline bool mesa_prim_has_adjacency(enum mesa_prim prim) { static_assert(MESA_PRIM_LINE_STRIP_ADJACENCY == MESA_PRIM_LINES_ADJACENCY + 1, ""); static_assert(MESA_PRIM_TRIANGLES_ADJACENCY == MESA_PRIM_LINES_ADJACENCY + 2, ""); static_assert(MESA_PRIM_TRIANGLE_STRIP_ADJACENCY == MESA_PRIM_LINES_ADJACENCY + 3, ""); /* Adjacency primitives are together so we can do a simple comparison */ return prim >= MESA_PRIM_LINES_ADJACENCY && prim <= MESA_PRIM_TRIANGLE_STRIP_ADJACENCY; } /** * A compare function enum for use in compiler lowering passes. This is in * the same order as GL's compare functions (shifted down by GL_NEVER), and is * exactly the same as gallium's PIPE_FUNC_*. */ enum compare_func { COMPARE_FUNC_NEVER, COMPARE_FUNC_LESS, COMPARE_FUNC_EQUAL, COMPARE_FUNC_LEQUAL, COMPARE_FUNC_GREATER, COMPARE_FUNC_NOTEQUAL, COMPARE_FUNC_GEQUAL, COMPARE_FUNC_ALWAYS, }; /** * Arrangements for grouping invocations from NV_compute_shader_derivatives. * * The extension provides new layout qualifiers that support two different * arrangements of compute shader invocations for the purpose of derivative * computation. When specifying * * layout(derivative_group_quadsNV) in; * * compute shader invocations are grouped into 2x2x1 arrays whose four local * invocation ID values follow the pattern: * * +-----------------+------------------+ * | (2x+0, 2y+0, z) | (2x+1, 2y+0, z) | * +-----------------+------------------+ * | (2x+0, 2y+1, z) | (2x+1, 2y+1, z) | * +-----------------+------------------+ * * where Y increases from bottom to top. When specifying * * layout(derivative_group_linearNV) in; * * compute shader invocations are grouped into 2x2x1 arrays whose four local * invocation index values follow the pattern: * * +------+------+ * | 4n+0 | 4n+1 | * +------+------+ * | 4n+2 | 4n+3 | * +------+------+ * * If neither layout qualifier is specified, derivatives in compute shaders * return zero, which is consistent with the handling of built-in texture * functions like texture() in GLSL 4.50 compute shaders. */ enum gl_derivative_group { DERIVATIVE_GROUP_NONE = 0, DERIVATIVE_GROUP_QUADS, DERIVATIVE_GROUP_LINEAR, }; enum float_controls { /* The order of these matters. For float_controls2, only the first 9 bits * are used and stored per-instruction in nir_alu_instr::fp_fast_math. * Any changes in this enum need to be synchronized with that. */ FLOAT_CONTROLS_DEFAULT_FLOAT_CONTROL_MODE = 0, FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP16 = BITFIELD_BIT(0), FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP32 = BITFIELD_BIT(1), FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP64 = BITFIELD_BIT(2), FLOAT_CONTROLS_INF_PRESERVE_FP16 = BITFIELD_BIT(3), FLOAT_CONTROLS_INF_PRESERVE_FP32 = BITFIELD_BIT(4), FLOAT_CONTROLS_INF_PRESERVE_FP64 = BITFIELD_BIT(5), FLOAT_CONTROLS_NAN_PRESERVE_FP16 = BITFIELD_BIT(6), FLOAT_CONTROLS_NAN_PRESERVE_FP32 = BITFIELD_BIT(7), FLOAT_CONTROLS_NAN_PRESERVE_FP64 = BITFIELD_BIT(8), FLOAT_CONTROLS_DENORM_PRESERVE_FP16 = BITFIELD_BIT(9), FLOAT_CONTROLS_DENORM_PRESERVE_FP32 = BITFIELD_BIT(10), FLOAT_CONTROLS_DENORM_PRESERVE_FP64 = BITFIELD_BIT(11), FLOAT_CONTROLS_DENORM_FLUSH_TO_ZERO_FP16 = BITFIELD_BIT(12), FLOAT_CONTROLS_DENORM_FLUSH_TO_ZERO_FP32 = BITFIELD_BIT(13), FLOAT_CONTROLS_DENORM_FLUSH_TO_ZERO_FP64 = BITFIELD_BIT(14), FLOAT_CONTROLS_ROUNDING_MODE_RTE_FP16 = BITFIELD_BIT(15), FLOAT_CONTROLS_ROUNDING_MODE_RTE_FP32 = BITFIELD_BIT(16), FLOAT_CONTROLS_ROUNDING_MODE_RTE_FP64 = BITFIELD_BIT(17), FLOAT_CONTROLS_ROUNDING_MODE_RTZ_FP16 = BITFIELD_BIT(18), FLOAT_CONTROLS_ROUNDING_MODE_RTZ_FP32 = BITFIELD_BIT(19), FLOAT_CONTROLS_ROUNDING_MODE_RTZ_FP64 = BITFIELD_BIT(20), FLOAT_CONTROLS_SIGNED_ZERO_INF_NAN_PRESERVE_FP16 = FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP16 | FLOAT_CONTROLS_INF_PRESERVE_FP16 | FLOAT_CONTROLS_NAN_PRESERVE_FP16, FLOAT_CONTROLS_SIGNED_ZERO_INF_NAN_PRESERVE_FP32 = FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP32 | FLOAT_CONTROLS_INF_PRESERVE_FP32 | FLOAT_CONTROLS_NAN_PRESERVE_FP32, FLOAT_CONTROLS_SIGNED_ZERO_INF_NAN_PRESERVE_FP64 = FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP64 | FLOAT_CONTROLS_INF_PRESERVE_FP64 | FLOAT_CONTROLS_NAN_PRESERVE_FP64, FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE = FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP16 | FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP32 | FLOAT_CONTROLS_SIGNED_ZERO_PRESERVE_FP64, FLOAT_CONTROLS_INF_PRESERVE = FLOAT_CONTROLS_INF_PRESERVE_FP16 | FLOAT_CONTROLS_INF_PRESERVE_FP32 | FLOAT_CONTROLS_INF_PRESERVE_FP64, FLOAT_CONTROLS_NAN_PRESERVE = FLOAT_CONTROLS_NAN_PRESERVE_FP16 | FLOAT_CONTROLS_NAN_PRESERVE_FP32 | FLOAT_CONTROLS_NAN_PRESERVE_FP64, }; /** * Enums to describe sampler properties used by OpenCL's inline constant samplers. * These values match the meanings described in the SPIR-V spec. */ enum cl_sampler_addressing_mode { SAMPLER_ADDRESSING_MODE_NONE = 0, SAMPLER_ADDRESSING_MODE_CLAMP_TO_EDGE = 1, SAMPLER_ADDRESSING_MODE_CLAMP = 2, SAMPLER_ADDRESSING_MODE_REPEAT = 3, SAMPLER_ADDRESSING_MODE_REPEAT_MIRRORED = 4, }; enum cl_sampler_filter_mode { SAMPLER_FILTER_MODE_NEAREST = 0, SAMPLER_FILTER_MODE_LINEAR = 1, }; /** * \name Bit flags used for updating material values. */ /*@{*/ #define MAT_ATTRIB_FRONT_AMBIENT 0 #define MAT_ATTRIB_BACK_AMBIENT 1 #define MAT_ATTRIB_FRONT_DIFFUSE 2 #define MAT_ATTRIB_BACK_DIFFUSE 3 #define MAT_ATTRIB_FRONT_SPECULAR 4 #define MAT_ATTRIB_BACK_SPECULAR 5 #define MAT_ATTRIB_FRONT_EMISSION 6 #define MAT_ATTRIB_BACK_EMISSION 7 #define MAT_ATTRIB_FRONT_SHININESS 8 #define MAT_ATTRIB_BACK_SHININESS 9 #define MAT_ATTRIB_FRONT_INDEXES 10 #define MAT_ATTRIB_BACK_INDEXES 11 #define MAT_ATTRIB_MAX 12 #define MAT_ATTRIB_AMBIENT(f) (MAT_ATTRIB_FRONT_AMBIENT+(f)) #define MAT_ATTRIB_DIFFUSE(f) (MAT_ATTRIB_FRONT_DIFFUSE+(f)) #define MAT_ATTRIB_SPECULAR(f) (MAT_ATTRIB_FRONT_SPECULAR+(f)) #define MAT_ATTRIB_EMISSION(f) (MAT_ATTRIB_FRONT_EMISSION+(f)) #define MAT_ATTRIB_SHININESS(f)(MAT_ATTRIB_FRONT_SHININESS+(f)) #define MAT_ATTRIB_INDEXES(f) (MAT_ATTRIB_FRONT_INDEXES+(f)) #define MAT_BIT_FRONT_AMBIENT (1<Const.MaxTextureCoord/ImageUnits fields) should be * used almost everywhere else. */ #define MAX_TEXTURE_UNITS ((MAX_TEXTURE_COORD_UNITS > MAX_TEXTURE_IMAGE_UNITS) ? MAX_TEXTURE_COORD_UNITS : MAX_TEXTURE_IMAGE_UNITS) /** Maximum number of viewports supported with ARB_viewport_array */ #define MAX_VIEWPORTS 16 /** Maximum number of window rectangles supported with EXT_window_rectangles */ #define MAX_WINDOW_RECTANGLES 8 /** Maximum size for CVA. May be overridden by the drivers. */ #define MAX_ARRAY_LOCK_SIZE 3000 /** Subpixel precision for antialiasing, window coordinate snapping */ #define SUB_PIXEL_BITS 4 /** For GL_ARB_texture_compression */ #define MAX_COMPRESSED_TEXTURE_FORMATS 25 /** For GL_EXT_texture_filter_anisotropic */ #define MAX_TEXTURE_MAX_ANISOTROPY 16.0 /** For GL_EXT_texture_lod_bias (typically MAX_TEXTURE_LEVELS - 1) */ #define MAX_TEXTURE_LOD_BIAS 14.0 /** For GL_OVR_multiview, value is recommended in extension spec. */ #define MAX_VIEWS_OVR 6 /** For any program target/extension */ /*@{*/ #define MAX_PROGRAM_INSTRUCTIONS (16 * 1024) /** * Per-program constants (power of two) * * \c MAX_PROGRAM_LOCAL_PARAMS and \c MAX_UNIFORMS are just the assembly shader * and GLSL shader names for the same thing. They should \b always have the * same value. Each refers to the number of vec4 values supplied as * per-program parameters. */ /*@{*/ #define MAX_PROGRAM_LOCAL_PARAMS 4096 #define MAX_UNIFORMS 4096 #define MAX_UNIFORM_BUFFERS 15 /* + 1 default uniform buffer */ #define MAX_SHADER_STORAGE_BUFFERS 16 /* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */ #define MAX_COMBINED_UNIFORM_BUFFERS (MAX_UNIFORM_BUFFERS * 6) #define MAX_COMBINED_SHADER_STORAGE_BUFFERS (MAX_SHADER_STORAGE_BUFFERS * 6) #define MAX_ATOMIC_COUNTERS 4096 /* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */ #define MAX_COMBINED_ATOMIC_BUFFERS (MAX_UNIFORM_BUFFERS * 6) /* Size of an atomic counter in bytes according to ARB_shader_atomic_counters */ #define ATOMIC_COUNTER_SIZE 4 #define MAX_IMAGE_UNIFORMS 32 /* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */ #define MAX_IMAGE_UNITS (MAX_IMAGE_UNIFORMS * 6) /*@}*/ /** * Per-context constants (power of two) * * \note * This value should always be less than or equal to \c MAX_PROGRAM_LOCAL_PARAMS * and \c MAX_VERTEX_PROGRAM_PARAMS. Otherwise some applications will make * incorrect assumptions. */ #define MAX_PROGRAM_ENV_PARAMS 256 #define MAX_PROGRAM_MATRICES 8 #define MAX_PROGRAM_MATRIX_STACK_DEPTH 4 #define MAX_PROGRAM_CALL_DEPTH 8 #define MAX_PROGRAM_TEMPS 256 #define MAX_PROGRAM_ADDRESS_REGS 1 #define MAX_SAMPLERS MAX_TEXTURE_IMAGE_UNITS #define MAX_PROGRAM_INPUTS 32 #define MAX_PROGRAM_OUTPUTS 64 /*@}*/ /** For GL_ARB_vertex_program */ /*@{*/ #define MAX_VERTEX_PROGRAM_ADDRESS_REGS 1 #define MAX_VERTEX_PROGRAM_PARAMS MAX_UNIFORMS /*@}*/ /** For GL_ARB_fragment_program */ /*@{*/ #define MAX_FRAGMENT_PROGRAM_ADDRESS_REGS 0 #define MAX_FRAGMENT_PROGRAM_PARAMS 64 #define MAX_FRAGMENT_PROGRAM_INPUTS 12 /*@}*/ /** For GL_ARB_vertex_shader */ /*@{*/ /* 6 is for vertex, hull, domain, geometry, fragment, and compute shader. */ #define MAX_COMBINED_TEXTURE_IMAGE_UNITS (MAX_TEXTURE_IMAGE_UNITS * 6) /*@}*/ /** For GL_EXT_framebuffer_object */ /*@{*/ #define MAX_COLOR_ATTACHMENTS 8 #define MAX_RENDERBUFFER_SIZE 16384 /*@}*/ /** For GL_ATI_envmap_bump - support bump mapping on first 8 units */ #define SUPPORTED_ATI_BUMP_UNITS 0xff /** For GL_EXT_transform_feedback */ #define MAX_FEEDBACK_BUFFERS 4 #define MAX_FEEDBACK_ATTRIBS 32 /** For geometry shader */ /*@{*/ #define MAX_GEOMETRY_UNIFORM_COMPONENTS 512 #define MAX_GEOMETRY_OUTPUT_VERTICES 256 #define MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 1024 /*@}*/ /** For GL_ARB_debug_output and GL_KHR_debug */ /*@{*/ #define MAX_DEBUG_LOGGED_MESSAGES 10 #define MAX_DEBUG_MESSAGE_LENGTH 4096 /*@}*/ /** For GL_KHR_debug */ /*@{*/ #define MAX_LABEL_LENGTH 256 #define MAX_DEBUG_GROUP_STACK_DEPTH 64 /*@}*/ /** For GL_ARB_gpu_shader5 */ /*@{*/ #define MAX_GEOMETRY_SHADER_INVOCATIONS 32 #define MIN_FRAGMENT_INTERPOLATION_OFFSET -0.5 #define MAX_FRAGMENT_INTERPOLATION_OFFSET 0.5 #define FRAGMENT_INTERPOLATION_OFFSET_BITS 4 #define MAX_VERTEX_STREAMS 4 /*@}*/ /** For GL_ARB_shader_subroutine */ /*@{*/ #define MAX_SUBROUTINES 256 #define MAX_SUBROUTINE_UNIFORM_LOCATIONS 1024 /*@}*/ /** For GL_INTEL_performance_query */ /*@{*/ #define MAX_PERFQUERY_QUERY_NAME_LENGTH 256 #define MAX_PERFQUERY_COUNTER_NAME_LENGTH 256 #define MAX_PERFQUERY_COUNTER_DESC_LENGTH 1024 #define PERFQUERY_HAVE_GPA_EXTENDED_COUNTERS 0 /*@}*/ /** For GL_ARB_pipeline_statistics_query */ #define MAX_PIPELINE_STATISTICS 11 /** For GL_ARB_tessellation_shader */ /*@{*/ #define MAX_TESS_GEN_LEVEL 64 #define MAX_PATCH_VERTICES 32 #define MAX_TESS_PATCH_COMPONENTS 120 #define MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 4096 /*@}*/ /* * Color channel component order * * \note Changes will almost certainly cause problems at this time. */ #define RCOMP 0 #define GCOMP 1 #define BCOMP 2 #define ACOMP 3 /** * Maximum number of temporary vertices required for clipping. * * Used in array_cache and tnl modules. */ #define MAX_CLIPPED_VERTICES ((2 * (6 + MAX_CLIP_PLANES))+1) /** For GL_ARB_sample_locations - maximum of SAMPLE_LOCATION_PIXEL_GRID_*_ARB */ #define MAX_SAMPLE_LOCATION_GRID_SIZE 4 /* It is theoretically possible for Consts.MaxSamples to be >32 but * other code seems to assume that is not the case. */ #define MAX_SAMPLE_LOCATION_TABLE_SIZE \ (MAX_SAMPLE_LOCATION_GRID_SIZE * MAX_SAMPLE_LOCATION_GRID_SIZE * 32) #endif /* MESA_CONFIG_H_INCLUDED */ # 316 "../mesa/src/mesa/main/config.h" #endif /* config.h expanded by -frewrite-includes */ # 59 "../mesa/src/mesa/main/glthread.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* hash.h expanded by -frewrite-includes */ #include "main/hash.h" #else /* hash.h expanded by -frewrite-includes */ # 59 "../mesa/src/mesa/main/glthread.h" # 1 "../mesa/src/mesa/main/hash.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file hash.h * A table managing OpenGL object IDs. */ #ifndef HASH_H #define HASH_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/mesa/main/hash.h" # 34 "../mesa/src/mesa/main/hash.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/hash.h" # 35 "../mesa/src/mesa/main/hash.h" #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/hash.h" # 36 "../mesa/src/mesa/main/hash.h" #if 0 /* expanded by -frewrite-includes */ #include "c11/threads.h" #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/hash.h" # 38 "../mesa/src/mesa/main/hash.h" #if 0 /* expanded by -frewrite-includes */ #include "util/simple_mtx.h" #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/main/hash.h" # 39 "../mesa/src/mesa/main/hash.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* sparse_array.h expanded by -frewrite-includes */ #include "util/sparse_array.h" #else /* sparse_array.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/hash.h" # 1 "../mesa/src/util/sparse_array.h" 1 /* * Copyright © 2019 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef _UTIL_SPARSE_ARRAY_H #define _UTIL_SPARSE_ARRAY_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "../mesa/src/util/sparse_array.h" # 28 "../mesa/src/util/sparse_array.h" #if 0 /* expanded by -frewrite-includes */ #include "c11/threads.h" #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/util/sparse_array.h" # 30 "../mesa/src/util/sparse_array.h" #if 0 /* expanded by -frewrite-includes */ #include "macros.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/util/sparse_array.h" # 31 "../mesa/src/util/sparse_array.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_atomic.h expanded by -frewrite-includes */ #include "u_atomic.h" #else /* u_atomic.h expanded by -frewrite-includes */ # 31 "../mesa/src/util/sparse_array.h" # 1 "../mesa/src/util/u_atomic.h" 1 /** * Many similar implementations exist. See for example libwsbm * or the linux kernel include/atomic.h * * No copyright claimed on this file. * */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 9 "../mesa/src/util/u_atomic.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 10 "../mesa/src/util/u_atomic.h" 2 #ifndef U_ATOMIC_H #define U_ATOMIC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 14 "../mesa/src/util/u_atomic.h" # 15 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 15 "../mesa/src/util/u_atomic.h" # 16 "../mesa/src/util/u_atomic.h" /* Favor OS-provided implementations. * * Where no OS-provided implementation is available, fall back to * locally coded assembly, compiler intrinsic or ultimately a * mutex-based implementation. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__sun) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 24 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_OS_SOLARIS #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 26 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_MSVC_INTRINSIC #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 28 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC_GCC_INTRINSIC #else # 30 "../mesa/src/util/u_atomic.h" #error "Unsupported platform" #endif # 32 "../mesa/src/util/u_atomic.h" /* Implementation using GCC-provided synchronization intrinsics */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_GCC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 37 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "GCC Sync Intrinsics" #if 0 /* disabled by -frewrite-includes */ #if defined(USE_GCC_ATOMIC_BUILTINS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 41 "../mesa/src/util/u_atomic.h" /* The builtins with explicit memory model are available since GCC 4.7. */ #define p_atomic_set(_v, _i) __atomic_store_n((_v), (_i), __ATOMIC_RELEASE) #define p_atomic_read(_v) __atomic_load_n((_v), __ATOMIC_ACQUIRE) #define p_atomic_read_relaxed(_v) __atomic_load_n((_v), __ATOMIC_RELAXED) #define p_atomic_dec_zero(v) (__atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) == 0) #define p_atomic_inc(v) (void) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec(v) (void) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add(v, i) (void) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_inc_return(v) __atomic_add_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_dec_return(v) __atomic_sub_fetch((v), 1, __ATOMIC_ACQ_REL) #define p_atomic_add_return(v, i) __atomic_add_fetch((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_fetch_add(v, i) __atomic_fetch_add((v), (i), __ATOMIC_ACQ_REL) #define p_atomic_xchg(v, i) __atomic_exchange_n((v), (i), __ATOMIC_ACQ_REL) #define PIPE_NATIVE_ATOMIC_XCHG #else # 58 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(v) (__sync_sub_and_fetch((v), 1) == 0) #define p_atomic_inc(v) (void) __sync_add_and_fetch((v), 1) #define p_atomic_dec(v) (void) __sync_sub_and_fetch((v), 1) #define p_atomic_add(v, i) (void) __sync_add_and_fetch((v), (i)) #define p_atomic_inc_return(v) __sync_add_and_fetch((v), 1) #define p_atomic_dec_return(v) __sync_sub_and_fetch((v), 1) #define p_atomic_add_return(v, i) __sync_add_and_fetch((v), (i)) #define p_atomic_fetch_add(v, i) __sync_fetch_and_add((v), (i)) #endif # 72 "../mesa/src/util/u_atomic.h" /* There is no __atomic_* compare and exchange that returns the current value. * Also, GCC 5.4 seems unable to optimize a compound statement expression that * uses an additional stack variable with __atomic_compare_exchange[_n]. */ #define p_atomic_cmpxchg(v, old, _new) \ __sync_val_compare_and_swap((v), (old), (_new)) #define p_atomic_cmpxchg_ptr(v, old, _new) p_atomic_cmpxchg(v, old, _new) #endif # 82 "../mesa/src/util/u_atomic.h" /* Unlocked version for single threaded environments, such as some * windows kernel modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_UNLOCKED) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Unlocked" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) ((void) p_atomic_inc_return(_v)) #define p_atomic_dec(_v) ((void) p_atomic_dec_return(_v)) #define p_atomic_add(_v, _i) ((void) p_atomic_add_return((_v), (_i))) #define p_atomic_inc_return(_v) (++(*(_v))) #define p_atomic_dec_return(_v) (--(*(_v))) #define p_atomic_add_return(_v, _i) (*(_v) = *(_v) + (_i)) #define p_atomic_fetch_add(_v, _i) (*(_v) = *(_v) + (_i), *(_v) - (_i)) #define p_atomic_cmpxchg(_v, _old, _new) (*(_v) == (_old) ? (*(_v) = (_new), (_old)) : *(_v)) #define p_atomic_cmpxchg_ptr(_v, _old, _new) p_atomic_cmpxchg(_v, _old, _new) #endif # 107 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_MSVC_INTRINSIC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 110 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "MSVC Intrinsics" /* We use the Windows header's Interlocked*64 functions instead of the * _Interlocked*64 intrinsics wherever we can, as support for the latter varies * with target CPU, whereas Windows headers take care of all portability * issues: using intrinsics where available, falling back to library * implementations where not. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 119 "../mesa/src/util/u_atomic.h" # 120 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 120 "../mesa/src/util/u_atomic.h" # 121 "../mesa/src/util/u_atomic.h" __forceinline char _interlockedadd8(char volatile * _Addend, char _Value) { return _InterlockedExchangeAdd8(_Addend, _Value) + _Value; } __forceinline short _interlockedadd16(short volatile * _Addend, short _Value) { return _InterlockedExchangeAdd16(_Addend, _Value) + _Value; } /* MSVC supports decltype keyword, but it's only supported on C++ and doesn't * quite work here; and if a C++-only solution is worthwhile, then it would be * better to use templates / function overloading, instead of decltype magic. * Therefore, we rely on implicit casting to LONGLONG for the functions that return */ #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_read_relaxed(_v) (*(_v)) #define p_atomic_dec_zero(_v) \ (p_atomic_dec_return(_v) == 0) #define p_atomic_inc(_v) \ ((void) p_atomic_inc_return(_v)) #define p_atomic_inc_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), 1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedIncrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedIncrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedincrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(_v) \ ((void) p_atomic_dec_return(_v)) #define p_atomic_dec_return(_v) (\ sizeof *(_v) == sizeof(char) ? p_atomic_add_return((_v), -1) : \ sizeof *(_v) == sizeof(short) ? _InterlockedDecrement16((short *) (_v)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedDecrement ((long *) (_v)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockeddecrement64((__int64 *)(_v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(_v, _i) \ ((void) p_atomic_fetch_add((_v), (_i))) #define p_atomic_add_return(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _interlockedadd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _interlockedadd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _interlockedadd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(_v, _i) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchangeAdd8 ((char *) (_v), (char) (_i)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchangeAdd16((short *) (_v), (short) (_i)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchangeAdd ((long *) (_v), (long) (_i)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchangeadd64((__int64 *)(_v), (__int64) (_i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(_v, _old, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedCompareExchange8 ((char *) (_v), (char) (_new), (char) (_old)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedCompareExchange16((short *) (_v), (short) (_new), (short) (_old)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedCompareExchange ((long *) (_v), (long) (_new), (long) (_old)) : \ sizeof *(_v) == sizeof(__int64) ? _InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN64) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange64((__int64 *)(_v), (__int64)(_new), (__int64)(_old)) #else # 192 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(_v, _old, _new) (void *)_InterlockedCompareExchange((long *)(_v), (long)(_new), (long)(_old)) #endif # 194 "../mesa/src/util/u_atomic.h" #define PIPE_NATIVE_ATOMIC_XCHG #define p_atomic_xchg(_v, _new) (\ sizeof *(_v) == sizeof(char) ? _InterlockedExchange8 ((char *) (_v), (char) (_new)) : \ sizeof *(_v) == sizeof(short) ? _InterlockedExchange16((short *) (_v), (short) (_new)) : \ sizeof *(_v) == sizeof(long) ? _InterlockedExchange ((long *) (_v), (long) (_new)) : \ sizeof *(_v) == sizeof(__int64) ? _interlockedexchange64((__int64 *)(_v), (__int64)(_new)) : \ (assert(!"should not get here"), 0)) #endif # 204 "../mesa/src/util/u_atomic.h" #if 0 /* disabled by -frewrite-includes */ #if defined(PIPE_ATOMIC_OS_SOLARIS) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 206 "../mesa/src/util/u_atomic.h" #define PIPE_ATOMIC "Solaris OS atomic functions" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 209 "../mesa/src/util/u_atomic.h" # 210 "../mesa/src/util/u_atomic.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 210 "../mesa/src/util/u_atomic.h" # 211 "../mesa/src/util/u_atomic.h" #define p_atomic_set(_v, _i) (*(_v) = (_i)) #define p_atomic_read(_v) (*(_v)) #define p_atomic_dec_zero(v) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) == 0 : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) == 0 : \ (assert(!"should not get here"), 0)) #define p_atomic_inc(v) (void) (\ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_inc_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_inc_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_inc_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_inc_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_inc_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec(v) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8 ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_dec_return(v) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_dec_8_nv ((uint8_t *)(v)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_dec_16_nv((uint16_t *)(v)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_dec_32_nv((uint32_t *)(v)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_dec_64_nv((uint64_t *)(v)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add(v, i) (void) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8 ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_add_return(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) : \ (assert(!"should not get here"), 0)) #define p_atomic_fetch_add(v, i) (__typeof(*v)) ( \ sizeof(*v) == sizeof(uint8_t) ? atomic_add_8_nv ((uint8_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_add_16_nv((uint16_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_add_32_nv((uint32_t *)(v), (i)) - (i) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_add_64_nv((uint64_t *)(v), (i)) - (i) : \ (assert(!"should not get here"), 0)) #define p_atomic_cmpxchg(v, old, _new) (__typeof(*v))( \ sizeof(*v) == sizeof(uint8_t) ? atomic_cas_8 ((uint8_t *)(v), (uint8_t )(old), (uint8_t )(_new)) : \ sizeof(*v) == sizeof(uint16_t) ? atomic_cas_16((uint16_t *)(v), (uint16_t)(old), (uint16_t)(_new)) : \ sizeof(*v) == sizeof(uint32_t) ? atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new)) : \ sizeof(*v) == sizeof(uint64_t) ? atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new)) : \ (assert(!"should not get here"), 0)) #if 0 /* disabled by -frewrite-includes */ #if INTPTR_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_32((uint32_t *)(v), (uint32_t)(old), (uint32_t)(_new))) #else # 281 "../mesa/src/util/u_atomic.h" #define p_atomic_cmpxchg_ptr(v, old, _new) (__typeof(*v))(atomic_cas_64((uint64_t *)(v), (uint64_t)(old), (uint64_t)(_new))) #endif # 283 "../mesa/src/util/u_atomic.h" #endif # 285 "../mesa/src/util/u_atomic.h" #ifndef PIPE_ATOMIC #error "No pipe_atomic implementation selected" #endif # 289 "../mesa/src/util/u_atomic.h" #ifndef PIPE_NATIVE_ATOMIC_XCHG static inline uint8_t p_atomic_xchg_8(uint8_t *v, uint8_t i) { uint8_t actual = p_atomic_read(v); uint8_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint16_t p_atomic_xchg_16(uint16_t *v, uint16_t i) { uint16_t actual = p_atomic_read(v); uint16_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint32_t p_atomic_xchg_32(uint32_t *v, uint32_t i) { uint32_t actual = p_atomic_read(v); uint32_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } static inline uint64_t p_atomic_xchg_64(uint64_t *v, uint64_t i) { uint64_t actual = p_atomic_read(v); uint64_t expected; do { expected = actual; actual = p_atomic_cmpxchg(v, expected, i); } while (expected != actual); return actual; } #define p_atomic_xchg(v, i) (__typeof(*(v)))( \ sizeof(*(v)) == sizeof(uint8_t) ? p_atomic_xchg_8 ((uint8_t *)(v), (uint8_t )(i)) : \ sizeof(*(v)) == sizeof(uint16_t) ? p_atomic_xchg_16((uint16_t *)(v), (uint16_t)(i)) : \ sizeof(*(v)) == sizeof(uint32_t) ? p_atomic_xchg_32((uint32_t *)(v), (uint32_t)(i)) : \ sizeof(*(v)) == sizeof(uint64_t) ? p_atomic_xchg_64((uint64_t *)(v), (uint64_t)(i)) : \ (assert(!"should not get here"), 0)) #endif # 342 "../mesa/src/util/u_atomic.h" /* On x86 we can have sizeof(uint64_t) = 8 and _Alignof(uint64_t) = 4. causing split locks. The * implementation does handle that correctly, but with an internal mutex. Extend the alignment to * avoid this. * `p_atomic_int64_t` and `p_atomic_uint64_t` are used for casting any pointer to * `p_atomic_int64_t *` and `p_atomic_uint64_t *`. That's for telling the compiler is accessing * the 64 bits atomic in 8 byte aligned way to avoid clang `misaligned atomic operation` warning. * To define 64 bits atomic memeber in struct type, * use `alignas(8) int64_t $member` or `alignas(8) uint64_t $member` is enough. */ typedef struct { #ifndef __cplusplus _Alignas(8) #else # 356 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 358 "../mesa/src/util/u_atomic.h" int64_t value; } p_atomic_int64_t; typedef struct { #ifndef __cplusplus _Alignas(8) #else # 364 "../mesa/src/util/u_atomic.h" alignas(8) #endif # 366 "../mesa/src/util/u_atomic.h" uint64_t value; } p_atomic_uint64_t; #endif /* U_ATOMIC_H */ # 370 "../mesa/src/util/u_atomic.h" #endif /* u_atomic.h expanded by -frewrite-includes */ # 32 "../mesa/src/util/sparse_array.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_math.h expanded by -frewrite-includes */ #include "u_math.h" #else /* u_math.h expanded by -frewrite-includes */ # 32 "../mesa/src/util/sparse_array.h" # 1 "../mesa/src/util/u_math.h" 1 /************************************************************************** * * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * Math utilities and approximations for common math functions. * Reduced precision is usually acceptable in shaders... * * "fast" is used in the names of functions which are low-precision, * or at least lower-precision than the normal C lib functions. */ #ifndef U_MATH_H #define U_MATH_H #if defined(__CLANG_REWRITTEN_INCLUDES) /* c99_compat.h expanded by -frewrite-includes */ #include "c99_compat.h" #else /* c99_compat.h expanded by -frewrite-includes */ # 42 "../mesa/src/util/u_math.h" # 1 "../mesa/include/c99_compat.h" 1 /************************************************************************** * * Copyright 2007-2013 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 28 "../mesa/include/c99_compat.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 29 "../mesa/include/c99_compat.h" 2 #ifndef _C99_COMPAT_H_ #define _C99_COMPAT_H_ /* * MSVC hacks. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "../mesa/include/c99_compat.h" #if 0 /* disabled by -frewrite-includes */ # if _MSC_VER < 1900 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 40 "../mesa/include/c99_compat.h" # error "Microsoft Visual Studio 2015 or higher required" # endif # 42 "../mesa/include/c99_compat.h" /* * XXX: MSVC has a `__restrict` keyword, but it also has a * `__declspec(restrict)` modifier, so it is impossible to define a * `restrict` macro without interfering with the latter. Furthermore the * MSVC standard library uses __declspec(restrict) under the _CRTRESTRICT * macro. For now resolve this issue by redefining _CRTRESTRICT, but going * forward we should probably should stop using restrict, especially * considering that our code does not obbey strict aliasing rules any way. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 52 "../mesa/include/c99_compat.h" # 53 "../mesa/include/c99_compat.h" # undef _CRTRESTRICT # define _CRTRESTRICT #endif # 56 "../mesa/include/c99_compat.h" /* * C99 restrict keyword * * See also: * - http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html */ #ifndef restrict # ifndef __cplusplus /* Use C99 restrict keyword */ #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 68 "../mesa/include/c99_compat.h" # define restrict __restrict__ #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 70 "../mesa/include/c99_compat.h" # define restrict __restrict # else # 72 "../mesa/include/c99_compat.h" # define restrict /* */ # endif # 74 "../mesa/include/c99_compat.h" #endif # 75 "../mesa/include/c99_compat.h" /* Simple test case for debugging */ #if 0 /* disabled by -frewrite-includes */ #if 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 79 "../mesa/include/c99_compat.h" static inline const char * test_c99_compat_h(const void * restrict a, const void * restrict b) { return __func__; } #endif # 86 "../mesa/include/c99_compat.h" #endif /* _C99_COMPAT_H_ */ # 89 "../mesa/include/c99_compat.h" #endif /* c99_compat.h expanded by -frewrite-includes */ # 43 "../mesa/src/util/u_math.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 43 "../mesa/src/util/u_math.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 44 "../mesa/src/util/u_math.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* float.h expanded by -frewrite-includes */ #include #else /* float.h expanded by -frewrite-includes */ # 44 "../mesa/src/util/u_math.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/float.h" 1 3 /*===---- float.h - Characteristics of floating point types ----------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __CLANG_FLOAT_H #define __CLANG_FLOAT_H #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # 15 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #else # 16 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 /* If we're on MinGW, fall back to the system's float.h, which might have * additional definitions provided for Windows. * For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx * * Also fall back on Darwin and AIX to allow additional definitions and * implementation-defined values. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__APPLE__) || defined(__MINGW32__) || defined(_MSC_VER) || \ defined(_AIX)) && \ __STDC_HOSTED__ && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 27 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 /* Prior to Apple's 10.7 SDK, float.h SDK header used to apply an extra level * of #include_next to keep Metrowerks compilers happy. Avoid this * extra indirection. */ #ifdef __APPLE__ #define _FLOAT_H_ #endif # 35 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #if 0 /* expanded by -frewrite-includes */ # include_next #endif /* expanded by -frewrite-includes */ # 36 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # 37 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 /* Undefine anything that we'll be redefining below. */ # undef FLT_EVAL_METHOD # undef FLT_ROUNDS # undef FLT_RADIX # undef FLT_MANT_DIG # undef DBL_MANT_DIG # undef LDBL_MANT_DIG #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 49 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # undef DECIMAL_DIG # endif # 51 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # undef FLT_DIG # undef DBL_DIG # undef LDBL_DIG # undef FLT_MIN_EXP # undef DBL_MIN_EXP # undef LDBL_MIN_EXP # undef FLT_MIN_10_EXP # undef DBL_MIN_10_EXP # undef LDBL_MIN_10_EXP # undef FLT_MAX_EXP # undef DBL_MAX_EXP # undef LDBL_MAX_EXP # undef FLT_MAX_10_EXP # undef DBL_MAX_10_EXP # undef LDBL_MAX_10_EXP # undef FLT_MAX # undef DBL_MAX # undef LDBL_MAX # undef FLT_EPSILON # undef DBL_EPSILON # undef LDBL_EPSILON # undef FLT_MIN # undef DBL_MIN # undef LDBL_MIN #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201703L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 79 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # undef FLT_TRUE_MIN # undef DBL_TRUE_MIN # undef LDBL_TRUE_MIN # undef FLT_DECIMAL_DIG # undef DBL_DECIMAL_DIG # undef LDBL_DECIMAL_DIG # undef FLT_HAS_SUBNORM # undef DBL_HAS_SUBNORM # undef LDBL_HAS_SUBNORM # endif # 89 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # undef FLT_NORM_MAX # undef DBL_NORM_MAX # undef LDBL_NORM_MAX #endif # 95 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #endif # 96 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 99 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # undef INFINITY # undef NAN #endif # 102 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 /* Characteristics of floating point types, C99 5.2.4.2.2 */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ #endif # 109 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #define FLT_ROUNDS (__builtin_flt_rounds()) #define FLT_RADIX __FLT_RADIX__ #define FLT_MANT_DIG __FLT_MANT_DIG__ #define DBL_MANT_DIG __DBL_MANT_DIG__ #define LDBL_MANT_DIG __LDBL_MANT_DIG__ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 120 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # define DECIMAL_DIG __DECIMAL_DIG__ #endif # 122 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #define FLT_DIG __FLT_DIG__ #define DBL_DIG __DBL_DIG__ #define LDBL_DIG __LDBL_DIG__ #define FLT_MIN_EXP __FLT_MIN_EXP__ #define DBL_MIN_EXP __DBL_MIN_EXP__ #define LDBL_MIN_EXP __LDBL_MIN_EXP__ #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ #define FLT_MAX_EXP __FLT_MAX_EXP__ #define DBL_MAX_EXP __DBL_MAX_EXP__ #define LDBL_MAX_EXP __LDBL_MAX_EXP__ #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ #define FLT_MAX __FLT_MAX__ #define DBL_MAX __DBL_MAX__ #define LDBL_MAX __LDBL_MAX__ #define FLT_EPSILON __FLT_EPSILON__ #define DBL_EPSILON __DBL_EPSILON__ #define LDBL_EPSILON __LDBL_EPSILON__ #define FLT_MIN __FLT_MIN__ #define DBL_MIN __DBL_MIN__ #define LDBL_MIN __LDBL_MIN__ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ !defined(__STRICT_ANSI__) || \ (defined(__cplusplus) && __cplusplus >= 201703L) || \ (__STDC_HOSTED__ && defined(_AIX) && defined(_ALL_SOURCE)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 159 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 # define FLT_TRUE_MIN __FLT_DENORM_MIN__ # define DBL_TRUE_MIN __DBL_DENORM_MIN__ # define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ # define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ # define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ # define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ # define FLT_HAS_SUBNORM __FLT_HAS_DENORM__ # define DBL_HAS_SUBNORM __DBL_HAS_DENORM__ # define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__ #endif # 169 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 172 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 /* C23 5.2.5.3.3p29-30 */ # define INFINITY (__builtin_inff()) # define NAN (__builtin_nanf("")) /* C23 5.2.5.3.3p32 */ # define FLT_NORM_MAX __FLT_NORM_MAX__ # define DBL_NORM_MAX __DBL_NORM_MAX__ # define LDBL_NORM_MAX __LDBL_NORM_MAX__ #endif # 180 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ # define FLT16_MANT_DIG __FLT16_MANT_DIG__ # define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__ # define FLT16_DIG __FLT16_DIG__ # define FLT16_MIN_EXP __FLT16_MIN_EXP__ # define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__ # define FLT16_MAX_EXP __FLT16_MAX_EXP__ # define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__ # define FLT16_MAX __FLT16_MAX__ # define FLT16_EPSILON __FLT16_EPSILON__ # define FLT16_MIN __FLT16_MIN__ # define FLT16_TRUE_MIN __FLT16_TRUE_MIN__ #endif /* __STDC_WANT_IEC_60559_TYPES_EXT__ */ # 194 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #endif /* __MVS__ */ # 196 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #endif /* __CLANG_FLOAT_H */ # 197 "/home/marcus/llvm20/lib/clang/20/include/float.h" 3 #endif /* float.h expanded by -frewrite-includes */ # 45 "../mesa/src/util/u_math.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 45 "../mesa/src/util/u_math.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 1 3 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 30 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #else # 32 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need_va_copy #endif # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 48 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif # 49 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #endif /* expanded by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 52 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #endif /* expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 57 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_arg #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #endif /* expanded by -frewrite-includes */ # 61 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 62 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #endif /* expanded by -frewrite-includes */ # 66 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 67 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #endif /* expanded by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 72 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* __MVS__ */ # 76 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* stdarg.h expanded by -frewrite-includes */ # 46 "../mesa/src/util/u_math.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* math.h expanded by -frewrite-includes */ #include #else /* math.h expanded by -frewrite-includes */ # 46 "../mesa/src/util/u_math.h" # 1 "/usr/include/math.h" 1 3 4 /* Declarations for math functions. Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.12 Mathematics */ #ifndef _MATH_H #define _MATH_H 1 #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libc-header-start.h expanded by -frewrite-includes */ #include #else /* libc-header-start.h expanded by -frewrite-includes */ # 27 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4 /* Handle feature test macros at the start of a header. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header cannot have multiple include guards because ISO C feature test macros depend on the definition of the macro when an affected header is included, not when the first system header is included. */ #ifndef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION # error "Never include directly." #endif # 30 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "/usr/include/bits/libc-header-start.h" 3 4 # 34 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ macro. */ #undef __GLIBC_USE_LIB_EXT2 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_GNU \ || (defined __STDC_WANT_LIB_EXT2__ && __STDC_WANT_LIB_EXT2__ > 0)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 40 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 1 #else # 42 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_LIB_EXT2 0 #endif # 44 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ macro. Most but not all symbols enabled by that macro in TS 18661-1 are enabled unconditionally in C23. In C23, the symbols in Annex F still require a new feature test macro __STDC_WANT_IEC_60559_EXT__ instead (C23 does not define __STDC_WANT_IEC_60559_BFP_EXT__), while a few features from TS 18661-1 are not included in C23 (and thus should depend on __STDC_WANT_IEC_60559_BFP_EXT__ even when C23 features are enabled). __GLIBC_USE (IEC_60559_BFP_EXT) controls those features from TS 18661-1 not included in C23. __GLIBC_USE (IEC_60559_BFP_EXT_C23) controls those features from TS 18661-1 that are also included in C23 (with no feature test macro required in C23). __GLIBC_USE (IEC_60559_EXT) controls those features from TS 18661-1 that are included in C23 but conditional on __STDC_WANT_IEC_60559_EXT__. (There are currently no features conditional on __STDC_WANT_IEC_60559_EXT__ that are not in TS 18661-1.) */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 69 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # 71 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif # 73 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_BFP_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 75 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 1 #else # 77 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_BFP_EXT_C23 0 #endif # 79 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_EXT #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) || defined __STDC_WANT_IEC_60559_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 81 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 1 #else # 83 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_EXT 0 #endif # 85 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-4:2015 defines the __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction functions, the symbols from this TS are enabled unconditionally in C23. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 92 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # 94 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif # 96 "/usr/include/bits/libc-header-start.h" 3 4 #undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1 #else # 100 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_FUNCS_EXT_C23 0 #endif # 102 "/usr/include/bits/libc-header-start.h" 3 4 /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ #undef __GLIBC_USE_IEC_60559_TYPES_EXT #if 0 /* disabled by -frewrite-includes */ #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_TYPES_EXT__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 107 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 1 #else # 109 "/usr/include/bits/libc-header-start.h" 3 4 # define __GLIBC_USE_IEC_60559_TYPES_EXT 0 #endif # 111 "/usr/include/bits/libc-header-start.h" 3 4 #endif /* libc-header-start.h expanded by -frewrite-includes */ # 28 "/usr/include/math.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined log && defined __GNUC__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 30 "/usr/include/math.h" 3 4 # warning A macro called log was already defined when was included. # warning This will cause compilation problems. #endif # 33 "/usr/include/math.h" 3 4 __BEGIN_DECLS /* Get definitions of __intmax_t and __uintmax_t. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "/usr/include/math.h" 3 4 # 38 "/usr/include/math.h" 3 4 /* Get machine-dependent vector math functions declarations. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* math-vector.h expanded by -frewrite-includes */ #include #else /* math-vector.h expanded by -frewrite-includes */ # 40 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/math-vector.h" 1 3 4 /* Platform-specific SIMD declarations of math functions. Copyright (C) 2014-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly;\ include instead." #endif # 23 "/usr/include/bits/math-vector.h" 3 4 /* Get default empty definitions for simd declarations. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* libm-simd-decl-stubs.h expanded by -frewrite-includes */ #include #else /* libm-simd-decl-stubs.h expanded by -frewrite-includes */ # 25 "/usr/include/bits/math-vector.h" 3 4 # 1 "/usr/include/bits/libm-simd-decl-stubs.h" 1 3 4 /* Empty definitions required for __MATHCALL_VEC unfolding in mathcalls.h. Copyright (C) 2014-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly;\ include instead." #endif # 23 "/usr/include/bits/libm-simd-decl-stubs.h" 3 4 /* Needed definitions could be generated with: for func in $(grep __MATHCALL_VEC math/bits/mathcalls.h |\ sed -r "s|__MATHCALL_VEC.?\(||; s|,.*||"); do echo "#define __DECL_SIMD_${func}"; echo "#define __DECL_SIMD_${func}f"; echo "#define __DECL_SIMD_${func}l"; done */ #ifndef _BITS_LIBM_SIMD_DECL_STUBS_H #define _BITS_LIBM_SIMD_DECL_STUBS_H 1 #define __DECL_SIMD_cos #define __DECL_SIMD_cosf #define __DECL_SIMD_cosl #define __DECL_SIMD_cosf16 #define __DECL_SIMD_cosf32 #define __DECL_SIMD_cosf64 #define __DECL_SIMD_cosf128 #define __DECL_SIMD_cosf32x #define __DECL_SIMD_cosf64x #define __DECL_SIMD_cosf128x #define __DECL_SIMD_sin #define __DECL_SIMD_sinf #define __DECL_SIMD_sinl #define __DECL_SIMD_sinf16 #define __DECL_SIMD_sinf32 #define __DECL_SIMD_sinf64 #define __DECL_SIMD_sinf128 #define __DECL_SIMD_sinf32x #define __DECL_SIMD_sinf64x #define __DECL_SIMD_sinf128x #define __DECL_SIMD_sincos #define __DECL_SIMD_sincosf #define __DECL_SIMD_sincosl #define __DECL_SIMD_sincosf16 #define __DECL_SIMD_sincosf32 #define __DECL_SIMD_sincosf64 #define __DECL_SIMD_sincosf128 #define __DECL_SIMD_sincosf32x #define __DECL_SIMD_sincosf64x #define __DECL_SIMD_sincosf128x #define __DECL_SIMD_log #define __DECL_SIMD_logf #define __DECL_SIMD_logl #define __DECL_SIMD_logf16 #define __DECL_SIMD_logf32 #define __DECL_SIMD_logf64 #define __DECL_SIMD_logf128 #define __DECL_SIMD_logf32x #define __DECL_SIMD_logf64x #define __DECL_SIMD_logf128x #define __DECL_SIMD_exp #define __DECL_SIMD_expf #define __DECL_SIMD_expl #define __DECL_SIMD_expf16 #define __DECL_SIMD_expf32 #define __DECL_SIMD_expf64 #define __DECL_SIMD_expf128 #define __DECL_SIMD_expf32x #define __DECL_SIMD_expf64x #define __DECL_SIMD_expf128x #define __DECL_SIMD_pow #define __DECL_SIMD_powf #define __DECL_SIMD_powl #define __DECL_SIMD_powf16 #define __DECL_SIMD_powf32 #define __DECL_SIMD_powf64 #define __DECL_SIMD_powf128 #define __DECL_SIMD_powf32x #define __DECL_SIMD_powf64x #define __DECL_SIMD_powf128x #define __DECL_SIMD_acos #define __DECL_SIMD_acosf #define __DECL_SIMD_acosl #define __DECL_SIMD_acosf16 #define __DECL_SIMD_acosf32 #define __DECL_SIMD_acosf64 #define __DECL_SIMD_acosf128 #define __DECL_SIMD_acosf32x #define __DECL_SIMD_acosf64x #define __DECL_SIMD_acosf128x #define __DECL_SIMD_atan #define __DECL_SIMD_atanf #define __DECL_SIMD_atanl #define __DECL_SIMD_atanf16 #define __DECL_SIMD_atanf32 #define __DECL_SIMD_atanf64 #define __DECL_SIMD_atanf128 #define __DECL_SIMD_atanf32x #define __DECL_SIMD_atanf64x #define __DECL_SIMD_atanf128x #define __DECL_SIMD_asin #define __DECL_SIMD_asinf #define __DECL_SIMD_asinl #define __DECL_SIMD_asinf16 #define __DECL_SIMD_asinf32 #define __DECL_SIMD_asinf64 #define __DECL_SIMD_asinf128 #define __DECL_SIMD_asinf32x #define __DECL_SIMD_asinf64x #define __DECL_SIMD_asinf128x #define __DECL_SIMD_hypot #define __DECL_SIMD_hypotf #define __DECL_SIMD_hypotl #define __DECL_SIMD_hypotf16 #define __DECL_SIMD_hypotf32 #define __DECL_SIMD_hypotf64 #define __DECL_SIMD_hypotf128 #define __DECL_SIMD_hypotf32x #define __DECL_SIMD_hypotf64x #define __DECL_SIMD_hypotf128x #define __DECL_SIMD_exp2 #define __DECL_SIMD_exp2f #define __DECL_SIMD_exp2l #define __DECL_SIMD_exp2f16 #define __DECL_SIMD_exp2f32 #define __DECL_SIMD_exp2f64 #define __DECL_SIMD_exp2f128 #define __DECL_SIMD_exp2f32x #define __DECL_SIMD_exp2f64x #define __DECL_SIMD_exp2f128x #define __DECL_SIMD_exp10 #define __DECL_SIMD_exp10f #define __DECL_SIMD_exp10l #define __DECL_SIMD_exp10f16 #define __DECL_SIMD_exp10f32 #define __DECL_SIMD_exp10f64 #define __DECL_SIMD_exp10f128 #define __DECL_SIMD_exp10f32x #define __DECL_SIMD_exp10f64x #define __DECL_SIMD_exp10f128x #define __DECL_SIMD_cosh #define __DECL_SIMD_coshf #define __DECL_SIMD_coshl #define __DECL_SIMD_coshf16 #define __DECL_SIMD_coshf32 #define __DECL_SIMD_coshf64 #define __DECL_SIMD_coshf128 #define __DECL_SIMD_coshf32x #define __DECL_SIMD_coshf64x #define __DECL_SIMD_coshf128x #define __DECL_SIMD_expm1 #define __DECL_SIMD_expm1f #define __DECL_SIMD_expm1l #define __DECL_SIMD_expm1f16 #define __DECL_SIMD_expm1f32 #define __DECL_SIMD_expm1f64 #define __DECL_SIMD_expm1f128 #define __DECL_SIMD_expm1f32x #define __DECL_SIMD_expm1f64x #define __DECL_SIMD_expm1f128x #define __DECL_SIMD_sinh #define __DECL_SIMD_sinhf #define __DECL_SIMD_sinhl #define __DECL_SIMD_sinhf16 #define __DECL_SIMD_sinhf32 #define __DECL_SIMD_sinhf64 #define __DECL_SIMD_sinhf128 #define __DECL_SIMD_sinhf32x #define __DECL_SIMD_sinhf64x #define __DECL_SIMD_sinhf128x #define __DECL_SIMD_cbrt #define __DECL_SIMD_cbrtf #define __DECL_SIMD_cbrtl #define __DECL_SIMD_cbrtf16 #define __DECL_SIMD_cbrtf32 #define __DECL_SIMD_cbrtf64 #define __DECL_SIMD_cbrtf128 #define __DECL_SIMD_cbrtf32x #define __DECL_SIMD_cbrtf64x #define __DECL_SIMD_cbrtf128x #define __DECL_SIMD_atan2 #define __DECL_SIMD_atan2f #define __DECL_SIMD_atan2l #define __DECL_SIMD_atan2f16 #define __DECL_SIMD_atan2f32 #define __DECL_SIMD_atan2f64 #define __DECL_SIMD_atan2f128 #define __DECL_SIMD_atan2f32x #define __DECL_SIMD_atan2f64x #define __DECL_SIMD_atan2f128x #define __DECL_SIMD_log10 #define __DECL_SIMD_log10f #define __DECL_SIMD_log10l #define __DECL_SIMD_log10f16 #define __DECL_SIMD_log10f32 #define __DECL_SIMD_log10f64 #define __DECL_SIMD_log10f128 #define __DECL_SIMD_log10f32x #define __DECL_SIMD_log10f64x #define __DECL_SIMD_log10f128x #define __DECL_SIMD_log2 #define __DECL_SIMD_log2f #define __DECL_SIMD_log2l #define __DECL_SIMD_log2f16 #define __DECL_SIMD_log2f32 #define __DECL_SIMD_log2f64 #define __DECL_SIMD_log2f128 #define __DECL_SIMD_log2f32x #define __DECL_SIMD_log2f64x #define __DECL_SIMD_log2f128x #define __DECL_SIMD_log1p #define __DECL_SIMD_log1pf #define __DECL_SIMD_log1pl #define __DECL_SIMD_log1pf16 #define __DECL_SIMD_log1pf32 #define __DECL_SIMD_log1pf64 #define __DECL_SIMD_log1pf128 #define __DECL_SIMD_log1pf32x #define __DECL_SIMD_log1pf64x #define __DECL_SIMD_log1pf128x #define __DECL_SIMD_atanh #define __DECL_SIMD_atanhf #define __DECL_SIMD_atanhl #define __DECL_SIMD_atanhf16 #define __DECL_SIMD_atanhf32 #define __DECL_SIMD_atanhf64 #define __DECL_SIMD_atanhf128 #define __DECL_SIMD_atanhf32x #define __DECL_SIMD_atanhf64x #define __DECL_SIMD_atanhf128x #define __DECL_SIMD_acosh #define __DECL_SIMD_acoshf #define __DECL_SIMD_acoshl #define __DECL_SIMD_acoshf16 #define __DECL_SIMD_acoshf32 #define __DECL_SIMD_acoshf64 #define __DECL_SIMD_acoshf128 #define __DECL_SIMD_acoshf32x #define __DECL_SIMD_acoshf64x #define __DECL_SIMD_acoshf128x #define __DECL_SIMD_erf #define __DECL_SIMD_erff #define __DECL_SIMD_erfl #define __DECL_SIMD_erff16 #define __DECL_SIMD_erff32 #define __DECL_SIMD_erff64 #define __DECL_SIMD_erff128 #define __DECL_SIMD_erff32x #define __DECL_SIMD_erff64x #define __DECL_SIMD_erff128x #define __DECL_SIMD_tanh #define __DECL_SIMD_tanhf #define __DECL_SIMD_tanhl #define __DECL_SIMD_tanhf16 #define __DECL_SIMD_tanhf32 #define __DECL_SIMD_tanhf64 #define __DECL_SIMD_tanhf128 #define __DECL_SIMD_tanhf32x #define __DECL_SIMD_tanhf64x #define __DECL_SIMD_tanhf128x #define __DECL_SIMD_asinh #define __DECL_SIMD_asinhf #define __DECL_SIMD_asinhl #define __DECL_SIMD_asinhf16 #define __DECL_SIMD_asinhf32 #define __DECL_SIMD_asinhf64 #define __DECL_SIMD_asinhf128 #define __DECL_SIMD_asinhf32x #define __DECL_SIMD_asinhf64x #define __DECL_SIMD_asinhf128x #define __DECL_SIMD_erfc #define __DECL_SIMD_erfcf #define __DECL_SIMD_erfcl #define __DECL_SIMD_erfcf16 #define __DECL_SIMD_erfcf32 #define __DECL_SIMD_erfcf64 #define __DECL_SIMD_erfcf128 #define __DECL_SIMD_erfcf32x #define __DECL_SIMD_erfcf64x #define __DECL_SIMD_erfcf128x #define __DECL_SIMD_tan #define __DECL_SIMD_tanf #define __DECL_SIMD_tanl #define __DECL_SIMD_tanf16 #define __DECL_SIMD_tanf32 #define __DECL_SIMD_tanf64 #define __DECL_SIMD_tanf128 #define __DECL_SIMD_tanf32x #define __DECL_SIMD_tanf64x #define __DECL_SIMD_tanf128x #endif # 333 "/usr/include/bits/libm-simd-decl-stubs.h" 3 4 #endif /* libm-simd-decl-stubs.h expanded by -frewrite-includes */ # 26 "/usr/include/bits/math-vector.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __x86_64__ && defined __FAST_MATH__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 28 "/usr/include/bits/math-vector.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined _OPENMP && _OPENMP >= 201307 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 29 "/usr/include/bits/math-vector.h" 3 4 /* OpenMP case. */ # define __DECL_SIMD_x86_64 _Pragma ("omp declare simd notinbranch") #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GNUC_PREREQ (6,0) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 32 "/usr/include/bits/math-vector.h" 3 4 /* W/o OpenMP use GCC 6.* __attribute__ ((__simd__)). */ # define __DECL_SIMD_x86_64 __attribute__ ((__simd__ ("notinbranch"))) # endif # 35 "/usr/include/bits/math-vector.h" 3 4 # ifdef __DECL_SIMD_x86_64 # undef __DECL_SIMD_cos # define __DECL_SIMD_cos __DECL_SIMD_x86_64 # undef __DECL_SIMD_cosf # define __DECL_SIMD_cosf __DECL_SIMD_x86_64 # undef __DECL_SIMD_sin # define __DECL_SIMD_sin __DECL_SIMD_x86_64 # undef __DECL_SIMD_sinf # define __DECL_SIMD_sinf __DECL_SIMD_x86_64 # undef __DECL_SIMD_sincos # define __DECL_SIMD_sincos __DECL_SIMD_x86_64 # undef __DECL_SIMD_sincosf # define __DECL_SIMD_sincosf __DECL_SIMD_x86_64 # undef __DECL_SIMD_log # define __DECL_SIMD_log __DECL_SIMD_x86_64 # undef __DECL_SIMD_logf # define __DECL_SIMD_logf __DECL_SIMD_x86_64 # undef __DECL_SIMD_exp # define __DECL_SIMD_exp __DECL_SIMD_x86_64 # undef __DECL_SIMD_expf # define __DECL_SIMD_expf __DECL_SIMD_x86_64 # undef __DECL_SIMD_pow # define __DECL_SIMD_pow __DECL_SIMD_x86_64 # undef __DECL_SIMD_powf # define __DECL_SIMD_powf __DECL_SIMD_x86_64 # undef __DECL_SIMD_acos # define __DECL_SIMD_acos __DECL_SIMD_x86_64 # undef __DECL_SIMD_acosf # define __DECL_SIMD_acosf __DECL_SIMD_x86_64 # undef __DECL_SIMD_atan # define __DECL_SIMD_atan __DECL_SIMD_x86_64 # undef __DECL_SIMD_atanf # define __DECL_SIMD_atanf __DECL_SIMD_x86_64 # undef __DECL_SIMD_asin # define __DECL_SIMD_asin __DECL_SIMD_x86_64 # undef __DECL_SIMD_asinf # define __DECL_SIMD_asinf __DECL_SIMD_x86_64 # undef __DECL_SIMD_hypot # define __DECL_SIMD_hypot __DECL_SIMD_x86_64 # undef __DECL_SIMD_hypotf # define __DECL_SIMD_hypotf __DECL_SIMD_x86_64 # undef __DECL_SIMD_exp2 # define __DECL_SIMD_exp2 __DECL_SIMD_x86_64 # undef __DECL_SIMD_exp2f # define __DECL_SIMD_exp2f __DECL_SIMD_x86_64 # undef __DECL_SIMD_exp10 # define __DECL_SIMD_exp10 __DECL_SIMD_x86_64 # undef __DECL_SIMD_exp10f # define __DECL_SIMD_exp10f __DECL_SIMD_x86_64 # undef __DECL_SIMD_cosh # define __DECL_SIMD_cosh __DECL_SIMD_x86_64 # undef __DECL_SIMD_coshf # define __DECL_SIMD_coshf __DECL_SIMD_x86_64 # undef __DECL_SIMD_expm1 # define __DECL_SIMD_expm1 __DECL_SIMD_x86_64 # undef __DECL_SIMD_expm1f # define __DECL_SIMD_expm1f __DECL_SIMD_x86_64 # undef __DECL_SIMD_sinh # define __DECL_SIMD_sinh __DECL_SIMD_x86_64 # undef __DECL_SIMD_sinhf # define __DECL_SIMD_sinhf __DECL_SIMD_x86_64 # undef __DECL_SIMD_cbrt # define __DECL_SIMD_cbrt __DECL_SIMD_x86_64 # undef __DECL_SIMD_cbrtf # define __DECL_SIMD_cbrtf __DECL_SIMD_x86_64 # undef __DECL_SIMD_atan2 # define __DECL_SIMD_atan2 __DECL_SIMD_x86_64 # undef __DECL_SIMD_atan2f # define __DECL_SIMD_atan2f __DECL_SIMD_x86_64 # undef __DECL_SIMD_log10 # define __DECL_SIMD_log10 __DECL_SIMD_x86_64 # undef __DECL_SIMD_log10f # define __DECL_SIMD_log10f __DECL_SIMD_x86_64 # undef __DECL_SIMD_log2 # define __DECL_SIMD_log2 __DECL_SIMD_x86_64 # undef __DECL_SIMD_log2f # define __DECL_SIMD_log2f __DECL_SIMD_x86_64 # undef __DECL_SIMD_log1p # define __DECL_SIMD_log1p __DECL_SIMD_x86_64 # undef __DECL_SIMD_log1pf # define __DECL_SIMD_log1pf __DECL_SIMD_x86_64 # undef __DECL_SIMD_atanh # define __DECL_SIMD_atanh __DECL_SIMD_x86_64 # undef __DECL_SIMD_atanhf # define __DECL_SIMD_atanhf __DECL_SIMD_x86_64 # undef __DECL_SIMD_acosh # define __DECL_SIMD_acosh __DECL_SIMD_x86_64 # undef __DECL_SIMD_acoshf # define __DECL_SIMD_acoshf __DECL_SIMD_x86_64 # undef __DECL_SIMD_erf # define __DECL_SIMD_erf __DECL_SIMD_x86_64 # undef __DECL_SIMD_erff # define __DECL_SIMD_erff __DECL_SIMD_x86_64 # undef __DECL_SIMD_tanh # define __DECL_SIMD_tanh __DECL_SIMD_x86_64 # undef __DECL_SIMD_tanhf # define __DECL_SIMD_tanhf __DECL_SIMD_x86_64 # undef __DECL_SIMD_asinh # define __DECL_SIMD_asinh __DECL_SIMD_x86_64 # undef __DECL_SIMD_asinhf # define __DECL_SIMD_asinhf __DECL_SIMD_x86_64 # undef __DECL_SIMD_erfc # define __DECL_SIMD_erfc __DECL_SIMD_x86_64 # undef __DECL_SIMD_erfcf # define __DECL_SIMD_erfcf __DECL_SIMD_x86_64 # undef __DECL_SIMD_tan # define __DECL_SIMD_tan __DECL_SIMD_x86_64 # undef __DECL_SIMD_tanf # define __DECL_SIMD_tanf __DECL_SIMD_x86_64 # endif # 147 "/usr/include/bits/math-vector.h" 3 4 #endif # 148 "/usr/include/bits/math-vector.h" 3 4 #endif /* math-vector.h expanded by -frewrite-includes */ # 41 "/usr/include/math.h" 2 3 4 /* Gather machine dependent type support. */ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "/usr/include/math.h" 3 4 # 44 "/usr/include/math.h" 3 4 /* Value returned on overflow. With IEEE 754 floating point, this is +Infinity, otherwise the largest representable positive value. */ #if 0 /* disabled by -frewrite-includes */ #if __GNUC_PREREQ (3, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 48 "/usr/include/math.h" 3 4 # define HUGE_VAL (__builtin_huge_val ()) #else # 50 "/usr/include/math.h" 3 4 /* This may provoke compiler warnings, and may not be rounded to +Infinity in all IEEE 754 rounding modes, but is the best that can be done in ISO C while remaining a constant expression. 10,000 is greater than the maximum (decimal) exponent for all supported floating-point formats and widths. */ # define HUGE_VAL 1e10000 #endif # 57 "/usr/include/math.h" 3 4 #ifdef __USE_ISOC99 #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (3, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 59 "/usr/include/math.h" 3 4 # define HUGE_VALF (__builtin_huge_valf ()) # define HUGE_VALL (__builtin_huge_vall ()) # else # 62 "/usr/include/math.h" 3 4 # define HUGE_VALF 1e10000f # define HUGE_VALL 1e10000L # endif # 65 "/usr/include/math.h" 3 4 #endif # 66 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 67 "/usr/include/math.h" 3 4 # define HUGE_VAL_F16 (__builtin_huge_valf16 ()) #endif # 69 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 70 "/usr/include/math.h" 3 4 # define HUGE_VAL_F32 (__builtin_huge_valf32 ()) #endif # 72 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 73 "/usr/include/math.h" 3 4 # define HUGE_VAL_F64 (__builtin_huge_valf64 ()) #endif # 75 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 76 "/usr/include/math.h" 3 4 # define HUGE_VAL_F128 (__builtin_huge_valf128 ()) #endif # 78 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 79 "/usr/include/math.h" 3 4 # define HUGE_VAL_F32X (__builtin_huge_valf32x ()) #endif # 81 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 82 "/usr/include/math.h" 3 4 # define HUGE_VAL_F64X (__builtin_huge_valf64x ()) #endif # 84 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 85 "/usr/include/math.h" 3 4 # define HUGE_VAL_F128X (__builtin_huge_valf128x ()) #endif # 87 "/usr/include/math.h" 3 4 #ifdef __USE_ISOC99 /* IEEE positive infinity. */ #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (3, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 91 "/usr/include/math.h" 3 4 # define INFINITY (__builtin_inff ()) # else # 93 "/usr/include/math.h" 3 4 # define INFINITY HUGE_VALF # endif # 95 "/usr/include/math.h" 3 4 /* IEEE Not A Number. */ #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (3, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "/usr/include/math.h" 3 4 # define NAN (__builtin_nanf ("")) # else # 100 "/usr/include/math.h" 3 4 /* This will raise an "invalid" exception outside static initializers, but is the best that can be done in ISO C while remaining a constant expression. */ # define NAN (0.0f / 0.0f) # endif # 105 "/usr/include/math.h" 3 4 #endif /* __USE_ISOC99 */ # 106 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 108 "/usr/include/math.h" 3 4 /* Signaling NaN macros, if supported. */ #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (3, 3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 110 "/usr/include/math.h" 3 4 # define SNANF (__builtin_nansf ("")) # define SNAN (__builtin_nans ("")) # define SNANL (__builtin_nansl ("")) # endif # 114 "/usr/include/math.h" 3 4 #endif # 115 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT16 \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/usr/include/math.h" 3 4 # define SNANF16 (__builtin_nansf16 ("")) #endif # 120 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT32 \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/usr/include/math.h" 3 4 # define SNANF32 (__builtin_nansf32 ("")) #endif # 125 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT64 \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/usr/include/math.h" 3 4 # define SNANF64 (__builtin_nansf64 ("")) #endif # 130 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT128 \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/math.h" 3 4 # define SNANF128 (__builtin_nansf128 ("")) #endif # 135 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT32X \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 138 "/usr/include/math.h" 3 4 # define SNANF32X (__builtin_nansf32x ("")) #endif # 140 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT64X \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 143 "/usr/include/math.h" 3 4 # define SNANF64X (__builtin_nansf64x ("")) #endif # 145 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_FLOAT128X \ && __GLIBC_USE (IEC_60559_TYPES_EXT) \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23))) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 148 "/usr/include/math.h" 3 4 # define SNANF128X (__builtin_nansf128x ("")) #endif # 150 "/usr/include/math.h" 3 4 /* Get __GLIBC_FLT_EVAL_METHOD. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* flt-eval-method.h expanded by -frewrite-includes */ #include #else /* flt-eval-method.h expanded by -frewrite-includes */ # 152 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/flt-eval-method.h" 1 3 4 /* Define __GLIBC_FLT_EVAL_METHOD. x86 version. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/flt-eval-method.h" 3 4 #ifdef __FLT_EVAL_METHOD__ #if 0 /* disabled by -frewrite-includes */ # if __FLT_EVAL_METHOD__ == -1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 25 "/usr/include/bits/flt-eval-method.h" 3 4 # define __GLIBC_FLT_EVAL_METHOD 2 # else # 27 "/usr/include/bits/flt-eval-method.h" 3 4 # define __GLIBC_FLT_EVAL_METHOD __FLT_EVAL_METHOD__ # endif # 29 "/usr/include/bits/flt-eval-method.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined __x86_64__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 30 "/usr/include/bits/flt-eval-method.h" 3 4 # define __GLIBC_FLT_EVAL_METHOD 0 #else # 32 "/usr/include/bits/flt-eval-method.h" 3 4 # define __GLIBC_FLT_EVAL_METHOD 2 #endif # 34 "/usr/include/bits/flt-eval-method.h" 3 4 #endif /* flt-eval-method.h expanded by -frewrite-includes */ # 153 "/usr/include/math.h" 2 3 4 #ifdef __USE_ISOC99 /* Define the following typedefs. float_t floating-point type at least as wide as `float' used to evaluate `float' expressions double_t floating-point type at least as wide as `double' used to evaluate `double' expressions */ #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_FLT_EVAL_METHOD == 0 || __GLIBC_FLT_EVAL_METHOD == 16 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 163 "/usr/include/math.h" 3 4 typedef float float_t; typedef double double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 1 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 166 "/usr/include/math.h" 3 4 typedef double float_t; typedef double double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 2 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 169 "/usr/include/math.h" 3 4 typedef long double float_t; typedef long double double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 32 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 172 "/usr/include/math.h" 3 4 typedef _Float32 float_t; typedef double double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 33 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 175 "/usr/include/math.h" 3 4 typedef _Float32x float_t; typedef _Float32x double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 64 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 178 "/usr/include/math.h" 3 4 typedef _Float64 float_t; typedef _Float64 double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 65 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 181 "/usr/include/math.h" 3 4 typedef _Float64x float_t; typedef _Float64x double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 128 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 184 "/usr/include/math.h" 3 4 typedef _Float128 float_t; typedef _Float128 double_t; #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GLIBC_FLT_EVAL_METHOD == 129 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 187 "/usr/include/math.h" 3 4 typedef _Float128x float_t; typedef _Float128x double_t; # else # 190 "/usr/include/math.h" 3 4 # error "Unknown __GLIBC_FLT_EVAL_METHOD" # endif # 192 "/usr/include/math.h" 3 4 #endif # 193 "/usr/include/math.h" 3 4 /* Define macros for the return values of ilogb and llogb, based on __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. FP_ILOGB0 Expands to a value returned by `ilogb (0.0)'. FP_ILOGBNAN Expands to a value returned by `ilogb (NAN)'. FP_LLOGB0 Expands to a value returned by `llogb (0.0)'. FP_LLOGBNAN Expands to a value returned by `llogb (NAN)'. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* fp-logb.h expanded by -frewrite-includes */ #include #else /* fp-logb.h expanded by -frewrite-includes */ # 204 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/fp-logb.h" 1 3 4 /* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. x86 version. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/fp-logb.h" 3 4 #define __FP_LOGB0_IS_MIN 1 #define __FP_LOGBNAN_IS_MIN 1 #endif /* fp-logb.h expanded by -frewrite-includes */ # 205 "/usr/include/math.h" 2 3 4 #ifdef __USE_ISOC99 #if 0 /* disabled by -frewrite-includes */ # if __FP_LOGB0_IS_MIN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 207 "/usr/include/math.h" 3 4 # define FP_ILOGB0 (-2147483647 - 1) # else # 209 "/usr/include/math.h" 3 4 # define FP_ILOGB0 (-2147483647) # endif # 211 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __FP_LOGBNAN_IS_MIN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 212 "/usr/include/math.h" 3 4 # define FP_ILOGBNAN (-2147483647 - 1) # else # 214 "/usr/include/math.h" 3 4 # define FP_ILOGBNAN 2147483647 # endif # 216 "/usr/include/math.h" 3 4 #endif # 217 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 218 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __WORDSIZE == 32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 219 "/usr/include/math.h" 3 4 # define __FP_LONG_MAX 0x7fffffffL # else # 221 "/usr/include/math.h" 3 4 # define __FP_LONG_MAX 0x7fffffffffffffffL # endif # 223 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __FP_LOGB0_IS_MIN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 224 "/usr/include/math.h" 3 4 # define FP_LLOGB0 (-__FP_LONG_MAX - 1) # else # 226 "/usr/include/math.h" 3 4 # define FP_LLOGB0 (-__FP_LONG_MAX) # endif # 228 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __FP_LOGBNAN_IS_MIN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 229 "/usr/include/math.h" 3 4 # define FP_LLOGBNAN (-__FP_LONG_MAX - 1) # else # 231 "/usr/include/math.h" 3 4 # define FP_LLOGBNAN __FP_LONG_MAX # endif # 233 "/usr/include/math.h" 3 4 #endif # 234 "/usr/include/math.h" 3 4 /* Get the architecture specific values describing the floating-point evaluation. The following symbols will get defined: FP_FAST_FMA FP_FAST_FMAF FP_FAST_FMAL If defined it indicates that the `fma' function generally executes about as fast as a multiply and an add. This macro is defined only iff the `fma' function is implemented directly with a hardware multiply-add instructions. */ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* fp-fast.h expanded by -frewrite-includes */ #include #else /* fp-fast.h expanded by -frewrite-includes */ # 247 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/fp-fast.h" 1 3 4 /* Define FP_FAST_* macros. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/fp-fast.h" 3 4 #ifdef __USE_ISOC99 /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l} builtins are supported. */ # ifdef __FP_FAST_FMA # define FP_FAST_FMA 1 # endif # 30 "/usr/include/bits/fp-fast.h" 3 4 # ifdef __FP_FAST_FMAF # define FP_FAST_FMAF 1 # endif # 34 "/usr/include/bits/fp-fast.h" 3 4 # ifdef __FP_FAST_FMAL # define FP_FAST_FMAL 1 # endif # 38 "/usr/include/bits/fp-fast.h" 3 4 #endif # 40 "/usr/include/bits/fp-fast.h" 3 4 #endif /* fp-fast.h expanded by -frewrite-includes */ # 248 "/usr/include/math.h" 2 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 250 "/usr/include/math.h" 3 4 /* Rounding direction macros for fromfp functions. */ enum { FP_INT_UPWARD = # define FP_INT_UPWARD 0 FP_INT_UPWARD, FP_INT_DOWNWARD = # define FP_INT_DOWNWARD 1 FP_INT_DOWNWARD, FP_INT_TOWARDZERO = # define FP_INT_TOWARDZERO 2 FP_INT_TOWARDZERO, FP_INT_TONEARESTFROMZERO = # define FP_INT_TONEARESTFROMZERO 3 FP_INT_TONEARESTFROMZERO, FP_INT_TONEAREST = # define FP_INT_TONEAREST 4 FP_INT_TONEAREST, }; #endif # 270 "/usr/include/math.h" 3 4 /* The file contains the prototypes for all the actual math functions. These macros are used for those prototypes, so we can easily declare each function as both `name' and `__name', and can declare the float versions `namef' and `__namef'. */ #define __SIMD_DECL(function) __CONCAT (__DECL_SIMD_, function) #define __MATHCALL_VEC(function, suffix, args) \ __SIMD_DECL (__MATH_PRECNAME (function, suffix)) \ __MATHCALL (function, suffix, args) #define __MATHDECL_VEC(type, function,suffix, args) \ __SIMD_DECL (__MATH_PRECNAME (function, suffix)) \ __MATHDECL(type, function,suffix, args) #define __MATHCALL(function,suffix, args) \ __MATHDECL (_Mdouble_,function,suffix, args) #define __MATHDECL(type, function,suffix, args) \ __MATHDECL_1(type, function,suffix, args); \ __MATHDECL_1(type, __CONCAT(__,function),suffix, args) #define __MATHCALLX(function,suffix, args, attrib) \ __MATHDECLX (_Mdouble_,function,suffix, args, attrib) #define __MATHDECLX(type, function,suffix, args, attrib) \ __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); \ __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib) #define __MATHDECL_1_IMPL(type, function, suffix, args) \ extern type __MATH_PRECNAME(function,suffix) args __THROW #define __MATHDECL_1(type, function, suffix, args) \ __MATHDECL_1_IMPL(type, function, suffix, args) /* Ignore the alias by default. The alias is only useful with redirections. */ #define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ __MATHDECL_1(type, function, suffix, args) #define __MATHREDIR(type, function, suffix, args, to) \ extern type __REDIRECT_NTH (__MATH_PRECNAME (function, suffix), args, to) #define _Mdouble_ double #define __MATH_PRECNAME(name,r) __CONCAT(name,r) #define __MATH_DECLARING_DOUBLE 1 #define __MATH_DECLARING_FLOATN 0 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-helper-functions.h expanded by -frewrite-includes */ #include #else /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 312 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 /* Prototype declarations for math classification macros helpers. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Classify given number. */ __MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify) __attribute__ ((__const__)); /* Test for negative number. */ __MATHDECL_ALIAS (int, __signbit,, (_Mdouble_ __value), signbit) __attribute__ ((__const__)); /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int, __isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); /* Return nonzero if VALUE is finite and not NaN. Used by isfinite macro. */ __MATHDECL_ALIAS (int, __finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int, __isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); /* Test equality. */ __MATHDECL_ALIAS (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y), iseqsig); /* Test for signaling NaN. */ __MATHDECL_ALIAS (int, __issignaling,, (_Mdouble_ __value), issignaling) __attribute__ ((__const__)); #endif /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 313 "/usr/include/math.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ #include #else /* mathcalls.h expanded by -frewrite-includes */ # 313 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 314 "/usr/include/math.h" 2 3 4 #undef _Mdouble_ #undef __MATH_PRECNAME #undef __MATH_DECLARING_DOUBLE #undef __MATH_DECLARING_FLOATN #ifdef __USE_ISOC99 /* Include the file of declarations again, this time using `float' instead of `double' and appending f to each function name. */ # define _Mdouble_ float # define __MATH_PRECNAME(name,r) name##f##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 0 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # include #else /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 329 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 /* Prototype declarations for math classification macros helpers. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Classify given number. */ __MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify) __attribute__ ((__const__)); /* Test for negative number. */ __MATHDECL_ALIAS (int, __signbit,, (_Mdouble_ __value), signbit) __attribute__ ((__const__)); /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int, __isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); /* Return nonzero if VALUE is finite and not NaN. Used by isfinite macro. */ __MATHDECL_ALIAS (int, __finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int, __isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); /* Test equality. */ __MATHDECL_ALIAS (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y), iseqsig); /* Test for signaling NaN. */ __MATHDECL_ALIAS (int, __issignaling,, (_Mdouble_ __value), issignaling) __attribute__ ((__const__)); #endif /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 330 "/usr/include/math.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 330 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 331 "/usr/include/math.h" 2 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #if 0 /* disabled by -frewrite-includes */ # if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \ || defined __LDBL_COMPAT \ || defined _LIBC_TEST #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 339 "/usr/include/math.h" 3 4 # ifdef __LDBL_COMPAT # ifdef __USE_ISOC99 extern float __nldbl_nexttowardf (float __x, long double __y) __THROW __attribute__ ((__const__)); # ifdef __REDIRECT_NTH extern float __REDIRECT_NTH (nexttowardf, (float __x, long double __y), __nldbl_nexttowardf) __attribute__ ((__const__)); extern double __REDIRECT_NTH (nexttoward, (double __x, long double __y), nextafter) __attribute__ ((__const__)); extern long double __REDIRECT_NTH (nexttowardl, (long double __x, long double __y), nextafter) __attribute__ ((__const__)); # endif # 354 "/usr/include/math.h" 3 4 # endif # 355 "/usr/include/math.h" 3 4 # undef __MATHDECL_1 # define __MATHDECL_1(type, function,suffix, args) \ __MATHREDIR(type, function, suffix, args, __CONCAT(function,suffix)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 361 "/usr/include/math.h" 3 4 # ifdef __REDIRECT_NTH # ifdef __USE_ISOC99 extern float __REDIRECT_NTH (nexttowardf, (float __x, long double __y), __nexttowardf_to_ieee128) __attribute__ ((__const__)); extern double __REDIRECT_NTH (nexttoward, (double __x, long double __y), __nexttoward_to_ieee128) __attribute__ ((__const__)); #define __dremieee128 __remainderieee128 #define __gammaieee128 __lgammaieee128 # endif # 374 "/usr/include/math.h" 3 4 # endif # 375 "/usr/include/math.h" 3 4 # undef __MATHDECL_1 # undef __MATHDECL_ALIAS # define __REDIRTO(function, suffix) \ __ ## function ## ieee128 ## suffix # define __REDIRTO_ALT(function, suffix) \ __ ## function ## f128 ## suffix # define __MATHDECL_1(type, function, suffix, args) \ __MATHREDIR (type, function, suffix, args, __REDIRTO (function, suffix)) # define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ __MATHREDIR (type, function, suffix, args, __REDIRTO_ALT (alias, suffix)) # endif # 389 "/usr/include/math.h" 3 4 /* Include the file of declarations again, this time using `long double' instead of `double' and appending l to each function name. */ # define _Mdouble_ long double # define __MATH_PRECNAME(name,r) name##l##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 0 # define __MATH_DECLARE_LDOUBLE 1 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # include #else /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 398 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 /* Prototype declarations for math classification macros helpers. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Classify given number. */ __MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify) __attribute__ ((__const__)); /* Test for negative number. */ __MATHDECL_ALIAS (int, __signbit,, (_Mdouble_ __value), signbit) __attribute__ ((__const__)); /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int, __isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); /* Return nonzero if VALUE is finite and not NaN. Used by isfinite macro. */ __MATHDECL_ALIAS (int, __finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int, __isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); /* Test equality. */ __MATHDECL_ALIAS (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y), iseqsig); /* Test for signaling NaN. */ __MATHDECL_ALIAS (int, __issignaling,, (_Mdouble_ __value), issignaling) __attribute__ ((__const__)); #endif /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 399 "/usr/include/math.h" 2 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 399 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 400 "/usr/include/math.h" 2 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #if 0 /* disabled by -frewrite-includes */ # if defined __LDBL_COMPAT \ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 408 "/usr/include/math.h" 3 4 # undef __REDIRTO # undef __REDIRTO_ALT # undef __MATHDECL_1 # undef __MATHDECL_ALIAS # define __MATHDECL_1(type, function, suffix, args) \ __MATHDECL_1_IMPL(type, function, suffix, args) # define __MATHDECL_ALIAS(type, function, suffix, args, alias) \ __MATHDECL_1(type, function, suffix, args) # endif # 417 "/usr/include/math.h" 3 4 # endif /* !(__NO_LONG_DOUBLE_MATH && _LIBC) || __LDBL_COMPAT */ # 418 "/usr/include/math.h" 3 4 #endif /* Use ISO C99. */ # 420 "/usr/include/math.h" 3 4 /* Include the file of declarations for _FloatN and _FloatNx types. */ #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 425 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float16 # define __MATH_PRECNAME(name,r) name##f16##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT16 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 430 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 430 "/usr/include/math.h" 3 4 # 431 "/usr/include/math.h" 3 4 # endif # 432 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 433 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 433 "/usr/include/math.h" 3 4 # 434 "/usr/include/math.h" 3 4 # endif # 435 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT16 || (__HAVE_FLOAT16 && !_LIBC). */ # 440 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 442 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float32 # define __MATH_PRECNAME(name,r) name##f32##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 447 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 447 "/usr/include/math.h" 3 4 # 448 "/usr/include/math.h" 3 4 # endif # 449 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 450 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 450 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 451 "/usr/include/math.h" 2 3 4 # endif # 452 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT32 || (__HAVE_FLOAT32 && !_LIBC). */ # 457 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 459 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float64 # define __MATH_PRECNAME(name,r) name##f64##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 464 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 464 "/usr/include/math.h" 3 4 # 465 "/usr/include/math.h" 3 4 # endif # 466 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 467 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 467 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 468 "/usr/include/math.h" 2 3 4 # endif # 469 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT64 || (__HAVE_FLOAT64 && !_LIBC). */ # 474 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 476 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float128 # define __MATH_PRECNAME(name,r) name##f128##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 481 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # include #else /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 481 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-helper-functions.h" 1 3 4 /* Prototype declarations for math classification macros helpers. Copyright (C) 2017-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Classify given number. */ __MATHDECL_ALIAS (int, __fpclassify,, (_Mdouble_ __value), fpclassify) __attribute__ ((__const__)); /* Test for negative number. */ __MATHDECL_ALIAS (int, __signbit,, (_Mdouble_ __value), signbit) __attribute__ ((__const__)); /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int, __isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); /* Return nonzero if VALUE is finite and not NaN. Used by isfinite macro. */ __MATHDECL_ALIAS (int, __finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int, __isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); /* Test equality. */ __MATHDECL_ALIAS (int, __iseqsig,, (_Mdouble_ __x, _Mdouble_ __y), iseqsig); /* Test for signaling NaN. */ __MATHDECL_ALIAS (int, __issignaling,, (_Mdouble_ __value), issignaling) __attribute__ ((__const__)); #endif /* mathcalls-helper-functions.h expanded by -frewrite-includes */ # 482 "/usr/include/math.h" 2 3 4 # endif # 483 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 484 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 484 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 485 "/usr/include/math.h" 2 3 4 # endif # 486 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT128 || (__HAVE_FLOAT128 && !_LIBC). */ # 491 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 493 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float32x # define __MATH_PRECNAME(name,r) name##f32x##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 498 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 498 "/usr/include/math.h" 3 4 # 499 "/usr/include/math.h" 3 4 # endif # 500 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 501 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 501 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 502 "/usr/include/math.h" 2 3 4 # endif # 503 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT32X || (__HAVE_FLOAT32X && !_LIBC). */ # 508 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 510 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float64x # define __MATH_PRECNAME(name,r) name##f64x##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 515 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 515 "/usr/include/math.h" 3 4 # 516 "/usr/include/math.h" 3 4 # endif # 517 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 518 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls.h expanded by -frewrite-includes */ # include #else /* mathcalls.h expanded by -frewrite-includes */ # 518 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls.h" 1 3 4 /* Prototype declarations for math functions; helper file for . Copyright (C) 1996-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* NOTE: Because of the special way this file is used by , this file must NOT be protected from multiple inclusion as header files usually are. This file provides prototype declarations for the math functions. Most functions are declared using the macro: __MATHCALL (NAME,[_r], (ARGS...)); This means there is a function `NAME' returning `double' and a function `NAMEf' returning `float'. Each place `_Mdouble_' appears in the prototype, that is actually `double' in the prototype for `NAME' and `float' in the prototype for `NAMEf'. Reentrant variant functions are called `NAME_r' and `NAMEf_r'. Functions returning other types like `int' are declared using the macro: __MATHDECL (TYPE, NAME,[_r], (ARGS...)); This is just like __MATHCALL but for a function returning `TYPE' instead of `_Mdouble_'. In all of these cases, there is still both a `NAME' and a `NAMEf' that takes `float' arguments. Note that there must be no whitespace before the argument passed for NAME, to make token pasting work with -traditional. */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 48 "/usr/include/bits/mathcalls.h" 3 4 /* Trigonometric functions. */ /* Arc cosine of X. */ __MATHCALL_VEC (acos,, (_Mdouble_ __x)); /* Arc sine of X. */ __MATHCALL_VEC (asin,, (_Mdouble_ __x)); /* Arc tangent of X. */ __MATHCALL_VEC (atan,, (_Mdouble_ __x)); /* Arc tangent of Y/X. */ __MATHCALL_VEC (atan2,, (_Mdouble_ __y, _Mdouble_ __x)); /* Cosine of X. */ __MATHCALL_VEC (cos,, (_Mdouble_ __x)); /* Sine of X. */ __MATHCALL_VEC (sin,, (_Mdouble_ __x)); /* Tangent of X. */ __MATHCALL_VEC (tan,, (_Mdouble_ __x)); /* Hyperbolic functions. */ /* Hyperbolic cosine of X. */ __MATHCALL_VEC (cosh,, (_Mdouble_ __x)); /* Hyperbolic sine of X. */ __MATHCALL_VEC (sinh,, (_Mdouble_ __x)); /* Hyperbolic tangent of X. */ __MATHCALL_VEC (tanh,, (_Mdouble_ __x)); #ifdef __USE_GNU /* Cosine and sine of X. */ __MATHDECL_VEC (void,sincos,, (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx)); #endif # 82 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 84 "/usr/include/bits/mathcalls.h" 3 4 /* Hyperbolic arc cosine of X. */ __MATHCALL_VEC (acosh,, (_Mdouble_ __x)); /* Hyperbolic arc sine of X. */ __MATHCALL_VEC (asinh,, (_Mdouble_ __x)); /* Hyperbolic arc tangent of X. */ __MATHCALL_VEC (atanh,, (_Mdouble_ __x)); #endif # 91 "/usr/include/bits/mathcalls.h" 3 4 /* Exponential and logarithmic functions. */ /* Exponential function of X. */ __MATHCALL_VEC (exp,, (_Mdouble_ __x)); /* Break VALUE into a normalized fraction and an integral power of 2. */ __MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent)); /* X times (two to the EXP power). */ __MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent)); /* Natural logarithm of X. */ __MATHCALL_VEC (log,, (_Mdouble_ __x)); /* Base-ten logarithm of X. */ __MATHCALL_VEC (log10,, (_Mdouble_ __x)); /* Break VALUE into integral and fractional parts. */ __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr)) __nonnull ((2)); #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_FUNCS_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 113 "/usr/include/bits/mathcalls.h" 3 4 /* Compute exponent to base ten. */ __MATHCALL_VEC (exp10,, (_Mdouble_ __x)); /* Return exp2(X) - 1. */ __MATHCALL (exp2m1,, (_Mdouble_ __x)); /* Return exp10(X) - 1. */ __MATHCALL (exp10m1,, (_Mdouble_ __x)); /* Return log2(1 + X). */ __MATHCALL (log2p1,, (_Mdouble_ __x)); /* Return log10(1 + X). */ __MATHCALL (log10p1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL (logp1,, (_Mdouble_ __x)); #endif # 131 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 133 "/usr/include/bits/mathcalls.h" 3 4 /* Return exp(X) - 1. */ __MATHCALL_VEC (expm1,, (_Mdouble_ __x)); /* Return log(1 + X). */ __MATHCALL_VEC (log1p,, (_Mdouble_ __x)); /* Return the base 2 signed integral exponent of X. */ __MATHCALL (logb,, (_Mdouble_ __x)); #endif # 142 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Compute base-2 exponential of X. */ __MATHCALL_VEC (exp2,, (_Mdouble_ __x)); /* Compute base-2 logarithm of X. */ __MATHCALL_VEC (log2,, (_Mdouble_ __x)); #endif # 150 "/usr/include/bits/mathcalls.h" 3 4 /* Power functions. */ /* Return X to the Y power. */ __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the square root of X. */ __MATHCALL (sqrt,, (_Mdouble_ __x)); #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 161 "/usr/include/bits/mathcalls.h" 3 4 /* Return `sqrt(X*X + Y*Y)'. */ __MATHCALL_VEC (hypot,, (_Mdouble_ __x, _Mdouble_ __y)); #endif # 164 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 166 "/usr/include/bits/mathcalls.h" 3 4 /* Return the cube root of X. */ __MATHCALL_VEC (cbrt,, (_Mdouble_ __x)); #endif # 169 "/usr/include/bits/mathcalls.h" 3 4 /* Nearest integer, absolute value, and remainder functions. */ /* Smallest integral value not less than X. */ __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__)); /* Absolute value of X. */ __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__)); /* Largest integer not greater than X. */ __MATHCALLX (floor,, (_Mdouble_ __x), (__const__)); /* Floating-point modulo remainder of X/Y. */ __MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y)); #ifdef __USE_MISC #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isinf conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isinff or isinfl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 190 "/usr/include/bits/mathcalls.h" 3 4 /* Return 0 if VALUE is finite or NaN, +1 if it is +Infinity, -1 if it is -Infinity. */ __MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf) __attribute__ ((__const__)); # endif # 195 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 197 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL_ALIAS (int,finite,, (_Mdouble_ __value), finite) __attribute__ ((__const__)); /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); # endif # 208 "/usr/include/bits/mathcalls.h" 3 4 #endif /* Use misc. */ # 210 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X with its signed changed to Y's. */ __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 215 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return representation of qNaN for double type. */ __MATHCALL (nan,, (const char *__tagb)); #endif # 220 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 223 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if ((!defined __cplusplus \ || __cplusplus < 201103L /* isnan conflicts with C++11. */ \ || __MATH_DECLARING_DOUBLE == 0)) /* isnanf or isnanl don't. */ \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 227 "/usr/include/bits/mathcalls.h" 3 4 /* Return nonzero if VALUE is not a number. */ __MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan) __attribute__ ((__const__)); # endif # 231 "/usr/include/bits/mathcalls.h" 3 4 #endif # 232 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && __MATH_DECLARING_DOUBLE) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 234 "/usr/include/bits/mathcalls.h" 3 4 /* Bessel functions. */ __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdouble_)); __MATHCALL (yn,, (int, _Mdouble_)); #endif # 242 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 245 "/usr/include/bits/mathcalls.h" 3 4 /* Error and gamma functions. */ __MATHCALL_VEC (erf,, (_Mdouble_)); __MATHCALL_VEC (erfc,, (_Mdouble_)); __MATHCALL (lgamma,, (_Mdouble_)); #endif # 250 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* True gamma function. */ __MATHCALL (tgamma,, (_Mdouble_)); #endif # 255 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 257 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 258 "/usr/include/bits/mathcalls.h" 3 4 /* Obsolete alias for `lgamma'. */ __MATHCALL (gamma,, (_Mdouble_)); # endif # 261 "/usr/include/bits/mathcalls.h" 3 4 #endif # 262 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_MISC /* Reentrant version of lgamma. This function uses the global variable `signgam'. The reentrant version instead takes a pointer and stores the value through it. */ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp)); #endif # 269 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 272 "/usr/include/bits/mathcalls.h" 3 4 /* Return the integer nearest X in the direction of the prevailing rounding mode. */ __MATHCALL (rint,, (_Mdouble_ __x)); /* Return X + epsilon if X < Y, X - epsilon if X > Y. */ __MATHCALL (nextafter,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 279 "/usr/include/bits/mathcalls.h" 3 4 __MATHCALL (nexttoward,, (_Mdouble_ __x, long double __y)); # endif # 281 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 283 "/usr/include/bits/mathcalls.h" 3 4 /* Return X - epsilon. */ __MATHCALL (nextdown,, (_Mdouble_ __x)); /* Return X + epsilon. */ __MATHCALL (nextup,, (_Mdouble_ __x)); # endif # 288 "/usr/include/bits/mathcalls.h" 3 4 /* Return the remainder of integer division X / Y with infinite precision. */ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y)); # ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbn,, (_Mdouble_ __x, int __n)); # endif # 296 "/usr/include/bits/mathcalls.h" 3 4 /* Return the binary exponent of X, which must be nonzero. */ __MATHDECL (int,ilogb,, (_Mdouble_ __x)); #endif # 300 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 302 "/usr/include/bits/mathcalls.h" 3 4 /* Like ilogb, but returning long int. */ __MATHDECL (long int, llogb,, (_Mdouble_ __x)); #endif # 305 "/usr/include/bits/mathcalls.h" 3 4 #ifdef __USE_ISOC99 /* Return X times (2 to the Nth power). */ __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); /* Round X to integral value in floating-point format using current rounding direction, but do not raise inexact exception. */ __MATHCALL (nearbyint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHCALLX (round,, (_Mdouble_ __x), (__const__)); /* Round X to the integral value in floating-point format nearest but not larger in magnitude. */ __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__)); /* Compute remainder of X and Y and put in *QUO a value with sign of x/y and magnitude congruent `mod 2^n' to the magnitude of the integral quotient x/y, with n >= 3. */ __MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo)); /* Conversion functions. */ /* Round X to nearest integral value according to current rounding direction. */ __MATHDECL (long int,lrint,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llrint,, (_Mdouble_ __x)); /* Round X to nearest integral value, rounding halfway cases away from zero. */ __MATHDECL (long int,lround,, (_Mdouble_ __x)); __extension__ __MATHDECL (long long int,llround,, (_Mdouble_ __x)); /* Return positive difference between X and Y. */ __MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y)); #if 0 /* disabled by -frewrite-includes */ # if !__MATH_DECLARING_FLOATN || defined __USE_GNU || !__GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 347 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmax,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fmin,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); # endif # 353 "/usr/include/bits/mathcalls.h" 3 4 /* Multiply-add function computed as a ternary operation. */ __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z)); #endif /* Use ISO C99. */ # 357 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 359 "/usr/include/bits/mathcalls.h" 3 4 /* Round X to nearest integer value, rounding halfway cases to even. */ __MATHCALLX (roundeven,, (_Mdouble_ __x), (__const__)); /* Round X to nearest signed integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, not raising inexact, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfp,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest signed integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__intmax_t, fromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Round X to nearest unsigned integer value, raising inexact for non-integers, with control of rounding direction and width of result. */ __MATHDECL (__uintmax_t, ufromfpx,, (_Mdouble_ __x, int __round, unsigned int __width)); /* Canonicalize floating-point representation. */ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #endif # 387 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__GLIBC_USE (IEC_60559_BFP_EXT) \ || (__MATH_DECLARING_FLOATN \ && (defined __USE_GNU || !__GLIBC_USE (ISOC23)))) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 391 "/usr/include/bits/mathcalls.h" 3 4 /* Return value with maximum magnitude. */ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 397 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (ISOC23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 399 "/usr/include/bits/mathcalls.h" 3 4 /* Return maximum value from X and Y. */ __MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum value from X and Y. */ __MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return maximum numeric value from X and Y. */ __MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return minimum numeric value from X and Y. */ __MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with maximum magnitude. */ __MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return value with minimum magnitude. */ __MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with maximum magnitude. */ __MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); /* Return numeric value with minimum magnitude. */ __MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif # 423 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 425 "/usr/include/bits/mathcalls.h" 3 4 /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Total order operation on absolute values. */ __MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute_pure__; /* Get NaN payload. */ __MATHCALL (getpayload,, (const _Mdouble_ *__x)); /* Set quiet NaN payload. */ __MATHDECL_1 (int, setpayload,, (_Mdouble_ *__x, _Mdouble_ __payload)); /* Set signaling NaN payload. */ __MATHDECL_1 (int, setpayloadsig,, (_Mdouble_ *__x, _Mdouble_ __payload)); #endif # 444 "/usr/include/bits/mathcalls.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \ && __MATH_DECLARING_DOUBLE \ && !defined __USE_XOPEN2K8)) \ && !__MATH_DECLARING_FLOATN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 449 "/usr/include/bits/mathcalls.h" 3 4 /* Return X times (2 to the Nth power). */ __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n)); #endif # 452 "/usr/include/bits/mathcalls.h" 3 4 #endif /* mathcalls.h expanded by -frewrite-includes */ # 519 "/usr/include/math.h" 2 3 4 # endif # 520 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT64X || (__HAVE_FLOAT64X && !_LIBC). */ # 525 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !defined _LIBC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 527 "/usr/include/math.h" 3 4 # define _Mdouble_ _Float128x # define __MATH_PRECNAME(name,r) name##f128x##r # define __MATH_DECLARING_DOUBLE 0 # define __MATH_DECLARING_FLOATN 1 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 532 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 532 "/usr/include/math.h" 3 4 # 533 "/usr/include/math.h" 3 4 # endif # 534 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 535 "/usr/include/math.h" 3 4 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 535 "/usr/include/math.h" 3 4 # 536 "/usr/include/math.h" 3 4 # endif # 537 "/usr/include/math.h" 3 4 # undef _Mdouble_ # undef __MATH_PRECNAME # undef __MATH_DECLARING_DOUBLE # undef __MATH_DECLARING_FLOATN #endif /* __HAVE_DISTINCT_FLOAT128X || (__HAVE_FLOAT128X && !_LIBC). */ # 542 "/usr/include/math.h" 3 4 #undef __MATHDECL_1_IMPL #undef __MATHDECL_1 #undef __MATHDECL_ALIAS #undef __MATHDECL #undef __MATHCALL /* Declare functions returning a narrower type. */ #define __MATHCALL_NARROW_ARGS_1 (_Marg_ __x) #define __MATHCALL_NARROW_ARGS_2 (_Marg_ __x, _Marg_ __y) #define __MATHCALL_NARROW_ARGS_3 (_Marg_ __x, _Marg_ __y, _Marg_ __z) #define __MATHCALL_NARROW_NORMAL(func, nargs) \ extern _Mret_ func __MATHCALL_NARROW_ARGS_ ## nargs __THROW #define __MATHCALL_NARROW_REDIR(func, redir, nargs) \ extern _Mret_ __REDIRECT_NTH (func, __MATHCALL_NARROW_ARGS_ ## nargs, \ redir) #define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_NORMAL (func, nargs) #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 562 "/usr/include/math.h" 3 4 # define _Mret_ float # define _Marg_ double # define __MATHCALL_NAME(name) f ## name #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 566 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 567 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # define _Mret_ float # define _Marg_ long double # define __MATHCALL_NAME(name) f ## name ## l # ifdef __LDBL_COMPAT # define __MATHCALL_REDIR_NAME(name) f ## name # define __MATHCALL_REDIR_NAME2(name) f ## name # undef __MATHCALL_NARROW # define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_REDIR (func, redir, nargs) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 581 "/usr/include/math.h" 3 4 # define __MATHCALL_REDIR_NAME(name) __ ## f32 ## name ## ieee128 # define __MATHCALL_REDIR_NAME2(name) __ ## f32 ## name ## ieee128 # undef __MATHCALL_NARROW # define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_REDIR (func, redir, nargs) # endif # 587 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 587 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 588 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME #if 0 /* disabled by -frewrite-includes */ # if defined __LDBL_COMPAT \ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 593 "/usr/include/math.h" 3 4 # undef __MATHCALL_REDIR_NAME # undef __MATHCALL_REDIR_NAME2 # undef __MATHCALL_NARROW # define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_NORMAL (func, nargs) # endif # 599 "/usr/include/math.h" 3 4 # define _Mret_ double # define _Marg_ long double # define __MATHCALL_NAME(name) d ## name ## l # ifdef __LDBL_COMPAT # define __MATHCALL_REDIR_NAME(name) __nldbl_d ## name ## l # define __MATHCALL_REDIR_NAME2(name) name # undef __MATHCALL_NARROW # define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_REDIR (func, redir, nargs) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 610 "/usr/include/math.h" 3 4 # define __MATHCALL_REDIR_NAME(name) __ ## f64 ## name ## ieee128 # define __MATHCALL_REDIR_NAME2(name) __ ## f64 ## name ## ieee128 # undef __MATHCALL_NARROW # define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_REDIR (func, redir, nargs) # endif # 616 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 616 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 617 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME #if 0 /* disabled by -frewrite-includes */ # if defined __LDBL_COMPAT \ || __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 622 "/usr/include/math.h" 3 4 # undef __MATHCALL_REDIR_NAME # undef __MATHCALL_REDIR_NAME2 # undef __MATHCALL_NARROW # define __MATHCALL_NARROW(func, redir, nargs) \ __MATHCALL_NARROW_NORMAL (func, nargs) # endif # 628 "/usr/include/math.h" 3 4 #endif # 630 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_TYPES_EXT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 632 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 && __HAVE_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 634 "/usr/include/math.h" 3 4 # define _Mret_ _Float16 # define _Marg_ _Float32 # define __MATHCALL_NAME(name) f16 ## name ## f32 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 637 "/usr/include/math.h" 3 4 # 638 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 642 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 && __HAVE_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 644 "/usr/include/math.h" 3 4 # define _Mret_ _Float16 # define _Marg_ _Float32x # define __MATHCALL_NAME(name) f16 ## name ## f32x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 647 "/usr/include/math.h" 3 4 # 648 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 652 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 && __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 654 "/usr/include/math.h" 3 4 # define _Mret_ _Float16 # define _Marg_ _Float64 # define __MATHCALL_NAME(name) f16 ## name ## f64 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 657 "/usr/include/math.h" 3 4 # 658 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 662 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 && __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 664 "/usr/include/math.h" 3 4 # define _Mret_ _Float16 # define _Marg_ _Float64x # define __MATHCALL_NAME(name) f16 ## name ## f64x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 667 "/usr/include/math.h" 3 4 # 668 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 672 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 && __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 674 "/usr/include/math.h" 3 4 # define _Mret_ _Float16 # define _Marg_ _Float128 # define __MATHCALL_NAME(name) f16 ## name ## f128 #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 677 "/usr/include/math.h" 3 4 # 678 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 682 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT16 && __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 684 "/usr/include/math.h" 3 4 # define _Mret_ _Float16 # define _Marg_ _Float128x # define __MATHCALL_NAME(name) f16 ## name ## f128x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 687 "/usr/include/math.h" 3 4 # 688 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 692 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 && __HAVE_FLOAT32X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 694 "/usr/include/math.h" 3 4 # define _Mret_ _Float32 # define _Marg_ _Float32x # define __MATHCALL_NAME(name) f32 ## name ## f32x #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 697 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 698 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 702 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 && __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 704 "/usr/include/math.h" 3 4 # define _Mret_ _Float32 # define _Marg_ _Float64 # define __MATHCALL_NAME(name) f32 ## name ## f64 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 707 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 708 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 712 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 && __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 714 "/usr/include/math.h" 3 4 # define _Mret_ _Float32 # define _Marg_ _Float64x # define __MATHCALL_NAME(name) f32 ## name ## f64x #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 717 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 718 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 722 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 && __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 724 "/usr/include/math.h" 3 4 # define _Mret_ _Float32 # define _Marg_ _Float128 # define __MATHCALL_NAME(name) f32 ## name ## f128 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 727 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 728 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 732 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 && __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 734 "/usr/include/math.h" 3 4 # define _Mret_ _Float32 # define _Marg_ _Float128x # define __MATHCALL_NAME(name) f32 ## name ## f128x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 737 "/usr/include/math.h" 3 4 # 738 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 742 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X && __HAVE_FLOAT64 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 744 "/usr/include/math.h" 3 4 # define _Mret_ _Float32x # define _Marg_ _Float64 # define __MATHCALL_NAME(name) f32x ## name ## f64 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 747 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 748 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 752 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X && __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 754 "/usr/include/math.h" 3 4 # define _Mret_ _Float32x # define _Marg_ _Float64x # define __MATHCALL_NAME(name) f32x ## name ## f64x #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 757 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 758 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 762 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X && __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 764 "/usr/include/math.h" 3 4 # define _Mret_ _Float32x # define _Marg_ _Float128 # define __MATHCALL_NAME(name) f32x ## name ## f128 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 767 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 768 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 772 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X && __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 774 "/usr/include/math.h" 3 4 # define _Mret_ _Float32x # define _Marg_ _Float128x # define __MATHCALL_NAME(name) f32x ## name ## f128x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 777 "/usr/include/math.h" 3 4 # 778 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 782 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 && __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 784 "/usr/include/math.h" 3 4 # define _Mret_ _Float64 # define _Marg_ _Float64x # define __MATHCALL_NAME(name) f64 ## name ## f64x #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 787 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 788 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 792 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 && __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 794 "/usr/include/math.h" 3 4 # define _Mret_ _Float64 # define _Marg_ _Float128 # define __MATHCALL_NAME(name) f64 ## name ## f128 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 797 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 798 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 802 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 && __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 804 "/usr/include/math.h" 3 4 # define _Mret_ _Float64 # define _Marg_ _Float128x # define __MATHCALL_NAME(name) f64 ## name ## f128x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 807 "/usr/include/math.h" 3 4 # 808 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 812 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X && __HAVE_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 814 "/usr/include/math.h" 3 4 # define _Mret_ _Float64x # define _Marg_ _Float128 # define __MATHCALL_NAME(name) f64x ## name ## f128 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mathcalls-narrow.h expanded by -frewrite-includes */ # include #else /* mathcalls-narrow.h expanded by -frewrite-includes */ # 817 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/mathcalls-narrow.h" 1 3 4 /* Declare functions returning a narrower type. Copyright (C) 2018-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never include directly; include instead." #endif # 22 "/usr/include/bits/mathcalls-narrow.h" 3 4 /* Add. */ __MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2); /* Divide. */ __MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2); /* Fused multiply-add. */ __MATHCALL_NARROW (__MATHCALL_NAME (fma), __MATHCALL_REDIR_NAME2 (fma), 3); /* Multiply. */ __MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2); /* Square root. */ __MATHCALL_NARROW (__MATHCALL_NAME (sqrt), __MATHCALL_REDIR_NAME2 (sqrt), 1); /* Subtract. */ __MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2); #endif /* mathcalls-narrow.h expanded by -frewrite-includes */ # 818 "/usr/include/math.h" 2 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 822 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X && __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 824 "/usr/include/math.h" 3 4 # define _Mret_ _Float64x # define _Marg_ _Float128x # define __MATHCALL_NAME(name) f64x ## name ## f128x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 827 "/usr/include/math.h" 3 4 # 828 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 832 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128 && __HAVE_FLOAT128X #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 834 "/usr/include/math.h" 3 4 # define _Mret_ _Float128 # define _Marg_ _Float128x # define __MATHCALL_NAME(name) f128 ## name ## f128x #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 837 "/usr/include/math.h" 3 4 # 838 "/usr/include/math.h" 3 4 # undef _Mret_ # undef _Marg_ # undef __MATHCALL_NAME # endif # 842 "/usr/include/math.h" 3 4 #endif # 844 "/usr/include/math.h" 3 4 #undef __MATHCALL_NARROW_ARGS_1 #undef __MATHCALL_NARROW_ARGS_2 #undef __MATHCALL_NARROW_ARGS_3 #undef __MATHCALL_NARROW_NORMAL #undef __MATHCALL_NARROW_REDIR #undef __MATHCALL_NARROW #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 853 "/usr/include/math.h" 3 4 /* This variable is used by `gamma' and `lgamma'. */ extern int signgam; #endif # 856 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (__HAVE_DISTINCT_FLOAT16 \ || __HAVE_DISTINCT_FLOAT32 \ || __HAVE_DISTINCT_FLOAT64 \ || __HAVE_DISTINCT_FLOAT32X \ || __HAVE_DISTINCT_FLOAT64X \ || __HAVE_DISTINCT_FLOAT128X) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 863 "/usr/include/math.h" 3 4 # error "Unsupported _FloatN or _FloatNx types for ." #endif # 865 "/usr/include/math.h" 3 4 /* Depending on the type of TG_ARG, call an appropriately suffixed version of FUNC with arguments (including parentheses) ARGS. Suffixed functions may not exist for long double if it has the same format as double, or for other types with the same format as float, double or long double. The behavior is undefined if the argument does not have a real floating type. The definition may use a conditional expression, so all suffixed versions of FUNC must return the same type (FUNC may include a cast if necessary rather than being a single identifier). */ #ifdef __NO_LONG_DOUBLE_MATH #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 877 "/usr/include/math.h" 3 4 # error "Distinct _Float128 without distinct long double not supported." # endif # 879 "/usr/include/math.h" 3 4 # define __MATH_TG(TG_ARG, FUNC, ARGS) \ (sizeof (TG_ARG) == sizeof (float) ? FUNC ## f ARGS : FUNC ARGS) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __HAVE_DISTINCT_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 882 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_GENERIC_SELECTION #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 883 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOATN_NOT_TYPEDEF && __HAVE_FLOAT32 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 884 "/usr/include/math.h" 3 4 # define __MATH_TG_F32(FUNC, ARGS) _Float32: FUNC ## f ARGS, # else # 886 "/usr/include/math.h" 3 4 # define __MATH_TG_F32(FUNC, ARGS) # endif # 888 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOATN_NOT_TYPEDEF && __HAVE_FLOAT64X #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 889 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X_LONG_DOUBLE #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 890 "/usr/include/math.h" 3 4 # define __MATH_TG_F64X(FUNC, ARGS) _Float64x: FUNC ## l ARGS, # else # 892 "/usr/include/math.h" 3 4 # define __MATH_TG_F64X(FUNC, ARGS) _Float64x: FUNC ## f128 ARGS, # endif # 894 "/usr/include/math.h" 3 4 # else # 895 "/usr/include/math.h" 3 4 # define __MATH_TG_F64X(FUNC, ARGS) # endif # 897 "/usr/include/math.h" 3 4 # define __MATH_TG(TG_ARG, FUNC, ARGS) \ _Generic ((TG_ARG), \ float: FUNC ## f ARGS, \ __MATH_TG_F32 (FUNC, ARGS) \ default: FUNC ARGS, \ long double: FUNC ## l ARGS, \ __MATH_TG_F64X (FUNC, ARGS) \ _Float128: FUNC ## f128 ARGS) # else # 906 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOATN_NOT_TYPEDEF #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 907 "/usr/include/math.h" 3 4 # error "Non-typedef _FloatN but no _Generic." # endif # 909 "/usr/include/math.h" 3 4 # define __MATH_TG(TG_ARG, FUNC, ARGS) \ __builtin_choose_expr \ (__builtin_types_compatible_p (__typeof (TG_ARG), float), \ FUNC ## f ARGS, \ __builtin_choose_expr \ (__builtin_types_compatible_p (__typeof (TG_ARG), double), \ FUNC ARGS, \ __builtin_choose_expr \ (__builtin_types_compatible_p (__typeof (TG_ARG), long double), \ FUNC ## l ARGS, \ FUNC ## f128 ARGS))) # endif # 921 "/usr/include/math.h" 3 4 #else # 922 "/usr/include/math.h" 3 4 # define __MATH_TG(TG_ARG, FUNC, ARGS) \ (sizeof (TG_ARG) == sizeof (float) \ ? FUNC ## f ARGS \ : sizeof (TG_ARG) == sizeof (double) \ ? FUNC ARGS \ : FUNC ## l ARGS) #endif # 929 "/usr/include/math.h" 3 4 /* ISO C99 defines some generic macros which work on any data type. */ #ifdef __USE_ISOC99 /* All floating-point numbers can be put in one of these categories. */ enum { FP_NAN = # define FP_NAN 0 FP_NAN, FP_INFINITE = # define FP_INFINITE 1 FP_INFINITE, FP_ZERO = # define FP_ZERO 2 FP_ZERO, FP_SUBNORMAL = # define FP_SUBNORMAL 3 FP_SUBNORMAL, FP_NORMAL = # define FP_NORMAL 4 FP_NORMAL }; /* GCC bug 66462 means we cannot use the math builtins with -fsignaling-nan, so disable builtins if this is enabled. When fixed in a newer GCC, the __SUPPORT_SNAN__ check may be skipped for those versions. */ /* Return number of classification appropriate for X. */ #if 0 /* disabled by -frewrite-includes */ # if ((__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \ || __glibc_clang_prereq (2,8)) \ && (!defined __OPTIMIZE_SIZE__ || defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 961 "/usr/include/math.h" 3 4 /* The check for __cplusplus allows the use of the builtin, even when optimization for size is on. This is provided for libstdc++, only to let its configure test work when it is built with -Os. No further use of this definition of fpclassify is expected in C++ mode, since libstdc++ provides its own version of fpclassify in cmath (which undefines fpclassify). */ # define fpclassify(x) __builtin_fpclassify (FP_NAN, FP_INFINITE, \ FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x) # else # 970 "/usr/include/math.h" 3 4 # define fpclassify(x) __MATH_TG ((x), __fpclassify, (x)) # endif # 972 "/usr/include/math.h" 3 4 /* Return nonzero value if sign of X is negative. */ #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (6,0) || __glibc_clang_prereq (3,3) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 975 "/usr/include/math.h" 3 4 # define signbit(x) __builtin_signbit (x) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 977 "/usr/include/math.h" 3 4 /* In C++ mode, __MATH_TG cannot be used, because it relies on __builtin_types_compatible_p, which is a C-only builtin. The check for __cplusplus allows the use of the builtin instead of __MATH_TG. This is provided for libstdc++, only to let its configure test work. No further use of this definition of signbit is expected in C++ mode, since libstdc++ provides its own version of signbit in cmath (which undefines signbit). */ # define signbit(x) __builtin_signbitl (x) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __GNUC_PREREQ (4,0) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 986 "/usr/include/math.h" 3 4 # define signbit(x) __MATH_TG ((x), __builtin_signbit, (x)) # else # 988 "/usr/include/math.h" 3 4 # define signbit(x) __MATH_TG ((x), __signbit, (x)) # endif # 990 "/usr/include/math.h" 3 4 /* Return nonzero value if X is not +-Inf or NaN. */ #if 0 /* disabled by -frewrite-includes */ # if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \ || __glibc_clang_prereq (2,8) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 994 "/usr/include/math.h" 3 4 # define isfinite(x) __builtin_isfinite (x) # else # 996 "/usr/include/math.h" 3 4 # define isfinite(x) __MATH_TG ((x), __finite, (x)) # endif # 998 "/usr/include/math.h" 3 4 /* Return nonzero value if X is neither zero, subnormal, Inf, nor NaN. */ #if 0 /* disabled by -frewrite-includes */ # if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \ || __glibc_clang_prereq (2,8) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1002 "/usr/include/math.h" 3 4 # define isnormal(x) __builtin_isnormal (x) # else # 1004 "/usr/include/math.h" 3 4 # define isnormal(x) (fpclassify (x) == FP_NORMAL) # endif # 1006 "/usr/include/math.h" 3 4 /* Return nonzero value if X is a NaN. We could use `fpclassify' but we already have this functions `__isnan' and it is faster. */ #if 0 /* disabled by -frewrite-includes */ # if (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \ || __glibc_clang_prereq (2,8) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1011 "/usr/include/math.h" 3 4 # define isnan(x) __builtin_isnan (x) # else # 1013 "/usr/include/math.h" 3 4 # define isnan(x) __MATH_TG ((x), __isnan, (x)) # endif # 1015 "/usr/include/math.h" 3 4 /* Return nonzero value if X is positive or negative infinity. */ #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT128 && !__GNUC_PREREQ (7,0) \ && !defined __SUPPORT_SNAN__ && !defined __cplusplus \ && !defined __clang__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1020 "/usr/include/math.h" 3 4 /* Since __builtin_isinf_sign is broken for float128 before GCC 7.0, use the helper function, __isinff128, with older compilers. This is only provided for C mode, because in C++ mode, GCC has no support for __builtin_types_compatible_p (and when in C++ mode, this macro is not used anyway, because libstdc++ headers undefine it). */ # define isinf(x) \ (__builtin_types_compatible_p (__typeof (x), _Float128) \ ? __isinff128 (x) : __builtin_isinf_sign (x)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif (__GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__) \ || __glibc_clang_prereq (3,7) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 1030 "/usr/include/math.h" 3 4 # define isinf(x) __builtin_isinf_sign (x) # else # 1032 "/usr/include/math.h" 3 4 # define isinf(x) __MATH_TG ((x), __isinf, (x)) # endif # 1034 "/usr/include/math.h" 3 4 /* Bitmasks for the math_errhandling macro. */ # define MATH_ERRNO 1 /* errno set by math functions. */ # define MATH_ERREXCEPT 2 /* Exceptions raised by math functions. */ /* By default all math functions support both errno and exception handling (except for soft floating point implementations which may only support errno handling). If errno handling is disabled, exceptions are still supported by GLIBC. Set math_errhandling to 0 with -ffast-math (this is nonconforming but it is more useful than leaving it undefined). */ # ifdef __FAST_MATH__ # define math_errhandling 0 #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined __NO_MATH_ERRNO__ #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 1047 "/usr/include/math.h" 3 4 # define math_errhandling (MATH_ERREXCEPT) # else # 1049 "/usr/include/math.h" 3 4 # define math_errhandling (MATH_ERRNO | MATH_ERREXCEPT) # endif # 1051 "/usr/include/math.h" 3 4 #endif /* Use ISO C99. */ # 1053 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1055 "/usr/include/math.h" 3 4 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* iscanonical.h expanded by -frewrite-includes */ # include #else /* iscanonical.h expanded by -frewrite-includes */ # 1055 "/usr/include/math.h" 3 4 # 1 "/usr/include/bits/iscanonical.h" 1 3 4 /* Define iscanonical macro. ldbl-96 version. Copyright (C) 2016-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ #ifndef _MATH_H # error "Never use directly; include instead." #endif # 22 "/usr/include/bits/iscanonical.h" 3 4 extern int __iscanonicall (long double __x) __THROW __attribute__ ((__const__)); #define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1) #define __iscanonical(x) ((void) (__typeof (x)) (x), 1) #if 0 /* disabled by -frewrite-includes */ #if __HAVE_DISTINCT_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 28 "/usr/include/bits/iscanonical.h" 3 4 # define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1) #endif # 30 "/usr/include/bits/iscanonical.h" 3 4 /* Return nonzero value if X is canonical. In IEEE interchange binary formats, all values are canonical, but the argument must still be converted to its semantic type for any exceptions arising from the conversion, before being discarded; in extended precision, there are encodings that are not consistently handled as corresponding to any particular value of the type, and we return 0 for those. */ #ifndef __cplusplus # define iscanonical(x) __MATH_TG ((x), __iscanonical, (x)) #else # 40 "/usr/include/bits/iscanonical.h" 3 4 /* In C++ mode, __MATH_TG cannot be used, because it relies on __builtin_types_compatible_p, which is a C-only builtin. On the other hand, overloading provides the means to distinguish between the floating-point types. The overloading resolution will match the correct parameter (regardless of type qualifiers (i.e.: const and volatile)). */ extern "C++" { inline int iscanonical (float __val) { return __iscanonicalf (__val); } inline int iscanonical (double __val) { return __iscanonical (__val); } inline int iscanonical (long double __val) { return __iscanonicall (__val); } #if 0 /* disabled by -frewrite-includes */ # if __HAVE_DISTINCT_FLOAT128 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 51 "/usr/include/bits/iscanonical.h" 3 4 inline int iscanonical (_Float128 __val) { return __iscanonicalf128 (__val); } # endif # 53 "/usr/include/bits/iscanonical.h" 3 4 } #endif /* __cplusplus */ # 55 "/usr/include/bits/iscanonical.h" 3 4 #endif /* iscanonical.h expanded by -frewrite-includes */ # 1056 "/usr/include/math.h" 2 3 4 /* Return nonzero value if X is a signaling NaN. */ # ifndef __cplusplus # define issignaling(x) __MATH_TG ((x), __issignaling, (x)) # else # 1061 "/usr/include/math.h" 3 4 /* In C++ mode, __MATH_TG cannot be used, because it relies on __builtin_types_compatible_p, which is a C-only builtin. On the other hand, overloading provides the means to distinguish between the floating-point types. The overloading resolution will match the correct parameter (regardless of type qualifiers (i.e.: const and volatile)). */ extern "C++" { inline int issignaling (float __val) { return __issignalingf (__val); } inline int issignaling (double __val) { return __issignaling (__val); } inline int issignaling (long double __val) { # ifdef __NO_LONG_DOUBLE_MATH return __issignaling (__val); # else # 1076 "/usr/include/math.h" 3 4 return __issignalingl (__val); # endif # 1078 "/usr/include/math.h" 3 4 } #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128_UNLIKE_LDBL #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1080 "/usr/include/math.h" 3 4 /* When using an IEEE 128-bit long double, _Float128 is defined as long double in C++. */ inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); } # endif # 1084 "/usr/include/math.h" 3 4 } /* extern C++ */ # endif # 1086 "/usr/include/math.h" 3 4 /* Return nonzero value if X is subnormal. */ # define issubnormal(x) (fpclassify (x) == FP_SUBNORMAL) /* Return nonzero value if X is zero. */ # ifndef __cplusplus # ifdef __SUPPORT_SNAN__ # define iszero(x) (fpclassify (x) == FP_ZERO) # else # 1095 "/usr/include/math.h" 3 4 # define iszero(x) (((__typeof (x)) (x)) == 0) # endif # 1097 "/usr/include/math.h" 3 4 # else /* __cplusplus */ # 1098 "/usr/include/math.h" 3 4 extern "C++" { # ifdef __SUPPORT_SNAN__ inline int iszero (float __val) { return __fpclassifyf (__val) == FP_ZERO; } inline int iszero (double __val) { return __fpclassify (__val) == FP_ZERO; } inline int iszero (long double __val) { # ifdef __NO_LONG_DOUBLE_MATH return __fpclassify (__val) == FP_ZERO; # else # 1116 "/usr/include/math.h" 3 4 return __fpclassifyl (__val) == FP_ZERO; # endif # 1118 "/usr/include/math.h" 3 4 } #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128_UNLIKE_LDBL #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1120 "/usr/include/math.h" 3 4 /* When using an IEEE 128-bit long double, _Float128 is defined as long double in C++. */ inline int iszero (_Float128 __val) { return __fpclassifyf128 (__val) == FP_ZERO; } # endif # 1128 "/usr/include/math.h" 3 4 # else # 1129 "/usr/include/math.h" 3 4 template inline bool iszero (__T __val) { return __val == 0; } # endif # 1135 "/usr/include/math.h" 3 4 } /* extern C++ */ # endif /* __cplusplus */ # 1137 "/usr/include/math.h" 3 4 #endif /* Use IEC_60559_BFP_EXT. */ # 1138 "/usr/include/math.h" 3 4 #ifdef __USE_XOPEN /* X/Open wants another strange constant. */ # define MAXFLOAT 3.40282347e+38F #endif # 1143 "/usr/include/math.h" 3 4 /* Some useful constants. */ #if 0 /* disabled by -frewrite-includes */ #if defined __USE_MISC || defined __USE_XOPEN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1147 "/usr/include/math.h" 3 4 # define M_E 2.7182818284590452354 /* e */ # define M_LOG2E 1.4426950408889634074 /* log_2 e */ # define M_LOG10E 0.43429448190325182765 /* log_10 e */ # define M_LN2 0.69314718055994530942 /* log_e 2 */ # define M_LN10 2.30258509299404568402 /* log_e 10 */ # define M_PI 3.14159265358979323846 /* pi */ # define M_PI_2 1.57079632679489661923 /* pi/2 */ # define M_PI_4 0.78539816339744830962 /* pi/4 */ # define M_1_PI 0.31830988618379067154 /* 1/pi */ # define M_2_PI 0.63661977236758134308 /* 2/pi */ # define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ # define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ # define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ #endif # 1161 "/usr/include/math.h" 3 4 /* GNU extension to provide float constants with similar names. */ #ifdef __USE_GNU # define M_Ef 2.7182818284590452354f /* e */ # define M_LOG2Ef 1.4426950408889634074f /* log_2 e */ # define M_LOG10Ef 0.43429448190325182765f /* log_10 e */ # define M_LN2f 0.69314718055994530942f /* log_e 2 */ # define M_LN10f 2.30258509299404568402f /* log_e 10 */ # define M_PIf 3.14159265358979323846f /* pi */ # define M_PI_2f 1.57079632679489661923f /* pi/2 */ # define M_PI_4f 0.78539816339744830962f /* pi/4 */ # define M_1_PIf 0.31830988618379067154f /* 1/pi */ # define M_2_PIf 0.63661977236758134308f /* 2/pi */ # define M_2_SQRTPIf 1.12837916709551257390f /* 2/sqrt(pi) */ # define M_SQRT2f 1.41421356237309504880f /* sqrt(2) */ # define M_SQRT1_2f 0.70710678118654752440f /* 1/sqrt(2) */ #endif # 1178 "/usr/include/math.h" 3 4 /* The above constants are not adequate for computation using `long double's. Therefore we provide as an extension constants with similar names as a GNU extension. Provide enough digits for the 128-bit IEEE quad. */ #ifdef __USE_GNU # define M_El 2.718281828459045235360287471352662498L /* e */ # define M_LOG2El 1.442695040888963407359924681001892137L /* log_2 e */ # define M_LOG10El 0.434294481903251827651128918916605082L /* log_10 e */ # define M_LN2l 0.693147180559945309417232121458176568L /* log_e 2 */ # define M_LN10l 2.302585092994045684017991454684364208L /* log_e 10 */ # define M_PIl 3.141592653589793238462643383279502884L /* pi */ # define M_PI_2l 1.570796326794896619231321691639751442L /* pi/2 */ # define M_PI_4l 0.785398163397448309615660845819875721L /* pi/4 */ # define M_1_PIl 0.318309886183790671537767526745028724L /* 1/pi */ # define M_2_PIl 0.636619772367581343075535053490057448L /* 2/pi */ # define M_2_SQRTPIl 1.128379167095512573896158903121545172L /* 2/sqrt(pi) */ # define M_SQRT2l 1.414213562373095048801688724209698079L /* sqrt(2) */ # define M_SQRT1_2l 0.707106781186547524400844362104849039L /* 1/sqrt(2) */ #endif # 1197 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT16 && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1199 "/usr/include/math.h" 3 4 # define M_Ef16 __f16 (2.718281828459045235360287471352662498) /* e */ # define M_LOG2Ef16 __f16 (1.442695040888963407359924681001892137) /* log_2 e */ # define M_LOG10Ef16 __f16 (0.434294481903251827651128918916605082) /* log_10 e */ # define M_LN2f16 __f16 (0.693147180559945309417232121458176568) /* log_e 2 */ # define M_LN10f16 __f16 (2.302585092994045684017991454684364208) /* log_e 10 */ # define M_PIf16 __f16 (3.141592653589793238462643383279502884) /* pi */ # define M_PI_2f16 __f16 (1.570796326794896619231321691639751442) /* pi/2 */ # define M_PI_4f16 __f16 (0.785398163397448309615660845819875721) /* pi/4 */ # define M_1_PIf16 __f16 (0.318309886183790671537767526745028724) /* 1/pi */ # define M_2_PIf16 __f16 (0.636619772367581343075535053490057448) /* 2/pi */ # define M_2_SQRTPIf16 __f16 (1.128379167095512573896158903121545172) /* 2/sqrt(pi) */ # define M_SQRT2f16 __f16 (1.414213562373095048801688724209698079) /* sqrt(2) */ # define M_SQRT1_2f16 __f16 (0.707106781186547524400844362104849039) /* 1/sqrt(2) */ #endif # 1213 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32 && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1215 "/usr/include/math.h" 3 4 # define M_Ef32 __f32 (2.718281828459045235360287471352662498) /* e */ # define M_LOG2Ef32 __f32 (1.442695040888963407359924681001892137) /* log_2 e */ # define M_LOG10Ef32 __f32 (0.434294481903251827651128918916605082) /* log_10 e */ # define M_LN2f32 __f32 (0.693147180559945309417232121458176568) /* log_e 2 */ # define M_LN10f32 __f32 (2.302585092994045684017991454684364208) /* log_e 10 */ # define M_PIf32 __f32 (3.141592653589793238462643383279502884) /* pi */ # define M_PI_2f32 __f32 (1.570796326794896619231321691639751442) /* pi/2 */ # define M_PI_4f32 __f32 (0.785398163397448309615660845819875721) /* pi/4 */ # define M_1_PIf32 __f32 (0.318309886183790671537767526745028724) /* 1/pi */ # define M_2_PIf32 __f32 (0.636619772367581343075535053490057448) /* 2/pi */ # define M_2_SQRTPIf32 __f32 (1.128379167095512573896158903121545172) /* 2/sqrt(pi) */ # define M_SQRT2f32 __f32 (1.414213562373095048801688724209698079) /* sqrt(2) */ # define M_SQRT1_2f32 __f32 (0.707106781186547524400844362104849039) /* 1/sqrt(2) */ #endif # 1229 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64 && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1231 "/usr/include/math.h" 3 4 # define M_Ef64 __f64 (2.718281828459045235360287471352662498) /* e */ # define M_LOG2Ef64 __f64 (1.442695040888963407359924681001892137) /* log_2 e */ # define M_LOG10Ef64 __f64 (0.434294481903251827651128918916605082) /* log_10 e */ # define M_LN2f64 __f64 (0.693147180559945309417232121458176568) /* log_e 2 */ # define M_LN10f64 __f64 (2.302585092994045684017991454684364208) /* log_e 10 */ # define M_PIf64 __f64 (3.141592653589793238462643383279502884) /* pi */ # define M_PI_2f64 __f64 (1.570796326794896619231321691639751442) /* pi/2 */ # define M_PI_4f64 __f64 (0.785398163397448309615660845819875721) /* pi/4 */ # define M_1_PIf64 __f64 (0.318309886183790671537767526745028724) /* 1/pi */ # define M_2_PIf64 __f64 (0.636619772367581343075535053490057448) /* 2/pi */ # define M_2_SQRTPIf64 __f64 (1.128379167095512573896158903121545172) /* 2/sqrt(pi) */ # define M_SQRT2f64 __f64 (1.414213562373095048801688724209698079) /* sqrt(2) */ # define M_SQRT1_2f64 __f64 (0.707106781186547524400844362104849039) /* 1/sqrt(2) */ #endif # 1245 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128 && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1247 "/usr/include/math.h" 3 4 # define M_Ef128 __f128 (2.718281828459045235360287471352662498) /* e */ # define M_LOG2Ef128 __f128 (1.442695040888963407359924681001892137) /* log_2 e */ # define M_LOG10Ef128 __f128 (0.434294481903251827651128918916605082) /* log_10 e */ # define M_LN2f128 __f128 (0.693147180559945309417232121458176568) /* log_e 2 */ # define M_LN10f128 __f128 (2.302585092994045684017991454684364208) /* log_e 10 */ # define M_PIf128 __f128 (3.141592653589793238462643383279502884) /* pi */ # define M_PI_2f128 __f128 (1.570796326794896619231321691639751442) /* pi/2 */ # define M_PI_4f128 __f128 (0.785398163397448309615660845819875721) /* pi/4 */ # define M_1_PIf128 __f128 (0.318309886183790671537767526745028724) /* 1/pi */ # define M_2_PIf128 __f128 (0.636619772367581343075535053490057448) /* 2/pi */ # define M_2_SQRTPIf128 __f128 (1.128379167095512573896158903121545172) /* 2/sqrt(pi) */ # define M_SQRT2f128 __f128 (1.414213562373095048801688724209698079) /* sqrt(2) */ # define M_SQRT1_2f128 __f128 (0.707106781186547524400844362104849039) /* 1/sqrt(2) */ #endif # 1261 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT32X && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1263 "/usr/include/math.h" 3 4 # define M_Ef32x __f32x (2.718281828459045235360287471352662498) /* e */ # define M_LOG2Ef32x __f32x (1.442695040888963407359924681001892137) /* log_2 e */ # define M_LOG10Ef32x __f32x (0.434294481903251827651128918916605082) /* log_10 e */ # define M_LN2f32x __f32x (0.693147180559945309417232121458176568) /* log_e 2 */ # define M_LN10f32x __f32x (2.302585092994045684017991454684364208) /* log_e 10 */ # define M_PIf32x __f32x (3.141592653589793238462643383279502884) /* pi */ # define M_PI_2f32x __f32x (1.570796326794896619231321691639751442) /* pi/2 */ # define M_PI_4f32x __f32x (0.785398163397448309615660845819875721) /* pi/4 */ # define M_1_PIf32x __f32x (0.318309886183790671537767526745028724) /* 1/pi */ # define M_2_PIf32x __f32x (0.636619772367581343075535053490057448) /* 2/pi */ # define M_2_SQRTPIf32x __f32x (1.128379167095512573896158903121545172) /* 2/sqrt(pi) */ # define M_SQRT2f32x __f32x (1.414213562373095048801688724209698079) /* sqrt(2) */ # define M_SQRT1_2f32x __f32x (0.707106781186547524400844362104849039) /* 1/sqrt(2) */ #endif # 1277 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT64X && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1279 "/usr/include/math.h" 3 4 # define M_Ef64x __f64x (2.718281828459045235360287471352662498) /* e */ # define M_LOG2Ef64x __f64x (1.442695040888963407359924681001892137) /* log_2 e */ # define M_LOG10Ef64x __f64x (0.434294481903251827651128918916605082) /* log_10 e */ # define M_LN2f64x __f64x (0.693147180559945309417232121458176568) /* log_e 2 */ # define M_LN10f64x __f64x (2.302585092994045684017991454684364208) /* log_e 10 */ # define M_PIf64x __f64x (3.141592653589793238462643383279502884) /* pi */ # define M_PI_2f64x __f64x (1.570796326794896619231321691639751442) /* pi/2 */ # define M_PI_4f64x __f64x (0.785398163397448309615660845819875721) /* pi/4 */ # define M_1_PIf64x __f64x (0.318309886183790671537767526745028724) /* 1/pi */ # define M_2_PIf64x __f64x (0.636619772367581343075535053490057448) /* 2/pi */ # define M_2_SQRTPIf64x __f64x (1.128379167095512573896158903121545172) /* 2/sqrt(pi) */ # define M_SQRT2f64x __f64x (1.414213562373095048801688724209698079) /* sqrt(2) */ # define M_SQRT1_2f64x __f64x (0.707106781186547524400844362104849039) /* 1/sqrt(2) */ #endif # 1293 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __HAVE_FLOAT128X && defined __USE_GNU #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1295 "/usr/include/math.h" 3 4 # error "M_* values needed for _Float128x" #endif # 1297 "/usr/include/math.h" 3 4 #ifdef __USE_ISOC99 #if 0 /* disabled by -frewrite-includes */ # if __GNUC_PREREQ (3, 1) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1300 "/usr/include/math.h" 3 4 /* ISO C99 defines some macros to compare number while taking care for unordered numbers. Many FPUs provide special instructions to support these operations. Generic support in GCC for these as builtins went in 2.97, but not all cpus added their patterns until 3.1. Therefore we enable the builtins from 3.1 onwards and use a generic implementation otherwise. */ # define isgreater(x, y) __builtin_isgreater(x, y) # define isgreaterequal(x, y) __builtin_isgreaterequal(x, y) # define isless(x, y) __builtin_isless(x, y) # define islessequal(x, y) __builtin_islessequal(x, y) # define islessgreater(x, y) __builtin_islessgreater(x, y) # define isunordered(x, y) __builtin_isunordered(x, y) # else # 1313 "/usr/include/math.h" 3 4 # define isgreater(x, y) \ (__extension__ ({ __typeof__ (x) __x = (x); __typeof__ (y) __y = (y); \ !isunordered (__x, __y) && __x > __y; })) # define isgreaterequal(x, y) \ (__extension__ ({ __typeof__ (x) __x = (x); __typeof__ (y) __y = (y); \ !isunordered (__x, __y) && __x >= __y; })) # define isless(x, y) \ (__extension__ ({ __typeof__ (x) __x = (x); __typeof__ (y) __y = (y); \ !isunordered (__x, __y) && __x < __y; })) # define islessequal(x, y) \ (__extension__ ({ __typeof__ (x) __x = (x); __typeof__ (y) __y = (y); \ !isunordered (__x, __y) && __x <= __y; })) # define islessgreater(x, y) \ (__extension__ ({ __typeof__ (x) __x = (x); __typeof__ (y) __y = (y); \ !isunordered (__x, __y) && __x != __y; })) /* isunordered must always check both operands first for signaling NaNs. */ # define isunordered(x, y) \ (__extension__ ({ __typeof__ (x) __u = (x); __typeof__ (y) __v = (y); \ __u != __v && (__u != __u || __v != __v); })) # endif # 1333 "/usr/include/math.h" 3 4 #endif # 1334 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if __GLIBC_USE (IEC_60559_BFP_EXT_C23) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1336 "/usr/include/math.h" 3 4 /* An expression whose type has the widest of the evaluation formats of X and Y (which are of floating-point types). */ #if 0 /* disabled by -frewrite-includes */ # if __FLT_EVAL_METHOD__ == 2 || __FLT_EVAL_METHOD__ > 64 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1339 "/usr/include/math.h" 3 4 # define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0L) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __FLT_EVAL_METHOD__ == 1 || __FLT_EVAL_METHOD__ > 32 #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 1341 "/usr/include/math.h" 3 4 # define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32 #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 1343 "/usr/include/math.h" 3 4 # define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0f) # else # 1345 "/usr/include/math.h" 3 4 # define __MATH_EVAL_FMT2(x, y) ((x) + (y)) # endif # 1347 "/usr/include/math.h" 3 4 /* Return X == Y but raising "invalid" and setting errno if X or Y is a NaN. */ #if 0 /* disabled by -frewrite-includes */ # if !defined __cplusplus || (__cplusplus < 201103L && !defined __GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1351 "/usr/include/math.h" 3 4 # define iseqsig(x, y) \ __MATH_TG (__MATH_EVAL_FMT2 (x, y), __iseqsig, ((x), (y))) # else # 1354 "/usr/include/math.h" 3 4 /* In C++ mode, __MATH_TG cannot be used, because it relies on __builtin_types_compatible_p, which is a C-only builtin. Moreover, the comparison macros from ISO C take two floating-point arguments, which need not have the same type. Choosing what underlying function to call requires evaluating the formats of the arguments, then selecting which is wider. The macro __MATH_EVAL_FMT2 provides this information, however, only the type of the macro expansion is relevant (actually evaluating the expression would be incorrect). Thus, the type is used as a template parameter for __iseqsig_type, which calls the appropriate underlying function. */ extern "C++" { template struct __iseqsig_type; template<> struct __iseqsig_type { static int __call (float __x, float __y) throw () { return __iseqsigf (__x, __y); } }; template<> struct __iseqsig_type { static int __call (double __x, double __y) throw () { return __iseqsig (__x, __y); } }; template<> struct __iseqsig_type { static int __call (long double __x, long double __y) throw () { # ifndef __NO_LONG_DOUBLE_MATH return __iseqsigl (__x, __y); # else # 1390 "/usr/include/math.h" 3 4 return __iseqsig (__x, __y); # endif # 1392 "/usr/include/math.h" 3 4 } }; #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32 && __GNUC_PREREQ (13, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1396 "/usr/include/math.h" 3 4 template<> struct __iseqsig_type<_Float32> { static int __call (_Float32 __x, _Float32 __y) throw () { return __iseqsigf (__x, __y); } }; # endif # 1404 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64 && __GNUC_PREREQ (13, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1406 "/usr/include/math.h" 3 4 template<> struct __iseqsig_type<_Float64> { static int __call (_Float64 __x, _Float64 __y) throw () { return __iseqsig (__x, __y); } }; # endif # 1414 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128_UNLIKE_LDBL || (__HAVE_FLOAT128 && __GNUC_PREREQ (13, 0)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1416 "/usr/include/math.h" 3 4 /* When using an IEEE 128-bit long double, _Float128 is defined as long double in C++. */ template<> struct __iseqsig_type<_Float128> { static int __call (_Float128 __x, _Float128 __y) throw () { #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT128_UNLIKE_LDBL #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1423 "/usr/include/math.h" 3 4 return __iseqsigf128 (__x, __y); # else # 1425 "/usr/include/math.h" 3 4 return __iseqsigl (__x, __y); # endif # 1427 "/usr/include/math.h" 3 4 } }; # endif # 1430 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT32X && __GNUC_PREREQ (13, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1432 "/usr/include/math.h" 3 4 template<> struct __iseqsig_type<_Float32x> { static int __call (_Float32x __x, _Float32x __y) throw () { return __iseqsig (__x, __y); } }; # endif # 1440 "/usr/include/math.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X && __GNUC_PREREQ (13, 0) && !defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1442 "/usr/include/math.h" 3 4 template<> struct __iseqsig_type<_Float64x> { static int __call (_Float64x __x, _Float64x __y) throw () { #if 0 /* disabled by -frewrite-includes */ # if __HAVE_FLOAT64X_LONG_DOUBLE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1447 "/usr/include/math.h" 3 4 return __iseqsigl (__x, __y); # else # 1449 "/usr/include/math.h" 3 4 return __iseqsigf128 (__x, __y); # endif # 1451 "/usr/include/math.h" 3 4 } }; # endif # 1454 "/usr/include/math.h" 3 4 template inline int iseqsig (_T1 __x, _T2 __y) throw () { #if 0 /* disabled by -frewrite-includes */ # if __cplusplus >= 201103L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 1460 "/usr/include/math.h" 3 4 typedef decltype (__MATH_EVAL_FMT2 (__x, __y)) _T3; # else # 1462 "/usr/include/math.h" 3 4 typedef __typeof (__MATH_EVAL_FMT2 (__x, __y)) _T3; # endif # 1464 "/usr/include/math.h" 3 4 return __iseqsig_type<_T3>::__call (__x, __y); } } /* extern "C++" */ # endif /* __cplusplus */ # 1469 "/usr/include/math.h" 3 4 #endif # 1471 "/usr/include/math.h" 3 4 __END_DECLS #endif /* math.h */ # 1476 "/usr/include/math.h" 3 4 #endif /* math.h expanded by -frewrite-includes */ # 47 "../mesa/src/util/u_math.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* bitscan.h expanded by -frewrite-includes */ #include "bitscan.h" #else /* bitscan.h expanded by -frewrite-includes */ # 48 "../mesa/src/util/u_math.h" # 1 "../mesa/src/util/bitscan.h" 1 /************************************************************************** * * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef BITSCAN_H #define BITSCAN_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 32 "../mesa/src/util/bitscan.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 33 "../mesa/src/util/bitscan.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/util/bitscan.h" # 34 "../mesa/src/util/bitscan.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/util/bitscan.h" # 35 "../mesa/src/util/bitscan.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/util/bitscan.h" # 36 "../mesa/src/util/bitscan.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "../mesa/src/util/bitscan.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/util/bitscan.h" # 39 "../mesa/src/util/bitscan.h" #endif # 40 "../mesa/src/util/bitscan.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__POPCNT__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 42 "../mesa/src/util/bitscan.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* popcntintrin.h expanded by -frewrite-includes */ #include #else /* popcntintrin.h expanded by -frewrite-includes */ # 42 "../mesa/src/util/bitscan.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/popcntintrin.h" 1 3 /*===---- popcntintrin.h - POPCNT intrinsics -------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __POPCNTINTRIN_H #define __POPCNTINTRIN_H /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && (__cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 15 "/home/marcus/llvm20/lib/clang/20/include/popcntintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, \ __target__("popcnt"))) constexpr #else # 19 "/home/marcus/llvm20/lib/clang/20/include/popcntintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("popcnt"))) #endif # 22 "/home/marcus/llvm20/lib/clang/20/include/popcntintrin.h" 3 /// Counts the number of bits in the source operand having a value of 1. /// /// \headerfile /// /// This intrinsic corresponds to the POPCNT instruction. /// /// \param __A /// An unsigned 32-bit integer operand. /// \returns A 32-bit integer containing the number of bits with value 1 in the /// source operand. static __inline__ int __DEFAULT_FN_ATTRS _mm_popcnt_u32(unsigned int __A) { return __builtin_popcount(__A); } #ifdef __x86_64__ /// Counts the number of bits in the source operand having a value of 1. /// /// \headerfile /// /// This intrinsic corresponds to the POPCNT instruction. /// /// \param __A /// An unsigned 64-bit integer operand. /// \returns A 64-bit integer containing the number of bits with value 1 in the /// source operand. static __inline__ long long __DEFAULT_FN_ATTRS _mm_popcnt_u64(unsigned long long __A) { return __builtin_popcountll(__A); } #endif /* __x86_64__ */ # 56 "/home/marcus/llvm20/lib/clang/20/include/popcntintrin.h" 3 #undef __DEFAULT_FN_ATTRS #endif /* __POPCNTINTRIN_H */ # 60 "/home/marcus/llvm20/lib/clang/20/include/popcntintrin.h" 3 #endif /* popcntintrin.h expanded by -frewrite-includes */ # 43 "../mesa/src/util/bitscan.h" 2 #endif # 44 "../mesa/src/util/bitscan.h" #if 0 /* expanded by -frewrite-includes */ #include "macros.h" #endif /* expanded by -frewrite-includes */ # 45 "../mesa/src/util/bitscan.h" # 46 "../mesa/src/util/bitscan.h" #ifdef __cplusplus extern "C" { #endif # 50 "../mesa/src/util/bitscan.h" /** * Find first bit set in word. Least significant bit is 1. * Return 0 if no bits set. */ #ifdef HAVE___BUILTIN_FFS #define ffs __builtin_ffs #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) && (_M_IX86 || _M_ARM || _M_AMD64 || _M_IA64) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 59 "../mesa/src/util/bitscan.h" static inline int ffs(int i) { unsigned long index; if (_BitScanForward(&index, i)) return index + 1; else return 0; } #else # 69 "../mesa/src/util/bitscan.h" extern int ffs(int i); #endif # 72 "../mesa/src/util/bitscan.h" #ifdef HAVE___BUILTIN_FFSLL #define ffsll __builtin_ffsll #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) && (_M_AMD64 || _M_ARM64 || _M_IA64) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 76 "../mesa/src/util/bitscan.h" static inline int ffsll(long long int i) { unsigned long index; if (_BitScanForward64(&index, i)) return index + 1; else return 0; } #else # 86 "../mesa/src/util/bitscan.h" extern int ffsll(long long int val); #endif # 89 "../mesa/src/util/bitscan.h" /* Destructively loop over all of the bits in a mask as in: * * while (mymask) { * int i = u_bit_scan(&mymask); * ... process element i * } * */ static inline int u_bit_scan(unsigned *mask) { const int i = ffs(*mask) - 1; *mask ^= (1u << i); return i; } #define u_foreach_bit(b, dword) \ for (uint32_t __dword = (dword), b; \ ((b) = ffs(__dword) - 1, __dword); \ __dword &= ~(1 << (b))) static inline int u_bit_scan64(uint64_t *mask) { const int i = ffsll(*mask) - 1; *mask ^= (((uint64_t)1) << i); return i; } #define u_foreach_bit64(b, dword) \ for (uint64_t __dword = (dword), b; \ ((b) = ffsll(__dword) - 1, __dword); \ __dword &= ~(1ull << (b))) /* Determine if an uint32_t value is a power of two. * * \note * Zero is treated as a power of two. */ static inline bool util_is_power_of_two_or_zero(uint32_t v) { return IS_POT(v); } /* Determine if an uint64_t value is a power of two. * * \note * Zero is treated as a power of two. */ static inline bool util_is_power_of_two_or_zero64(uint64_t v) { return IS_POT(v); } /* Determine if an uint32_t value is a power of two. * * \note * Zero is \b not treated as a power of two. */ static inline bool util_is_power_of_two_nonzero(uint32_t v) { /* __POPCNT__ is different from HAVE___BUILTIN_POPCOUNT. The latter * indicates the existence of the __builtin_popcount function. The former * indicates that _mm_popcnt_u32 exists and is a native instruction. * * The other alternative is to use SSE 4.2 compile-time flags. This has * two drawbacks. First, there is currently no build infrastructure for * SSE 4.2 (only 4.1), so that would have to be added. Second, some AMD * CPUs support POPCNT but not SSE 4.2 (e.g., Barcelona). */ #ifdef __POPCNT__ return _mm_popcnt_u32(v) == 1; #else # 167 "../mesa/src/util/bitscan.h" return IS_POT_NONZERO(v); #endif # 169 "../mesa/src/util/bitscan.h" } /* Determine if an uint64_t value is a power of two. * * \note * Zero is \b not treated as a power of two. */ static inline bool util_is_power_of_two_nonzero64(uint64_t v) { return IS_POT_NONZERO(v); } /* Determine if an size_t/uintptr_t/intptr_t value is a power of two. * * \note * Zero is \b not treated as a power of two. */ static inline bool util_is_power_of_two_nonzero_uintptr(uintptr_t v) { return IS_POT_NONZERO(v); } /* For looping over a bitmask when you want to loop over consecutive bits * manually, for example: * * while (mask) { * int start, count, i; * * u_bit_scan_consecutive_range(&mask, &start, &count); * * for (i = 0; i < count; i++) * ... process element (start+i) * } */ static inline void u_bit_scan_consecutive_range(unsigned *mask, int *start, int *count) { if (*mask == 0xffffffff) { *start = 0; *count = 32; *mask = 0; return; } *start = ffs(*mask) - 1; *count = ffs(~(*mask >> *start)) - 1; *mask &= ~(((1u << *count) - 1) << *start); } static inline void u_bit_scan_consecutive_range64(uint64_t *mask, int *start, int *count) { if (*mask == ~0ull) { *start = 0; *count = 64; *mask = 0; return; } *start = ffsll(*mask) - 1; *count = ffsll(~(*mask >> *start)) - 1; *mask &= ~(((((uint64_t)1) << *count) - 1) << *start); } /** * Find last bit set in a word. The least significant bit is 1. * Return 0 if no bits are set. * Essentially ffs() in the reverse direction. */ static inline unsigned util_last_bit(unsigned u) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_CLZ) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 243 "../mesa/src/util/bitscan.h" return u == 0 ? 0 : 32 - __builtin_clz(u); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) && (_M_IX86 || _M_ARM || _M_AMD64 || _M_IA64) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 245 "../mesa/src/util/bitscan.h" unsigned long index; if (_BitScanReverse(&index, u)) return index + 1; else return 0; #else # 251 "../mesa/src/util/bitscan.h" unsigned r = 0; while (u) { r++; u >>= 1; } return r; #endif # 258 "../mesa/src/util/bitscan.h" } /** * Find last bit set in a word. The least significant bit is 1. * Return 0 if no bits are set. * Essentially ffsll() in the reverse direction. */ static inline unsigned util_last_bit64(uint64_t u) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_CLZLL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 269 "../mesa/src/util/bitscan.h" return u == 0 ? 0 : 64 - __builtin_clzll(u); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_MSC_VER) && (_M_AMD64 || _M_ARM64 || _M_IA64) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 271 "../mesa/src/util/bitscan.h" unsigned long index; if (_BitScanReverse64(&index, u)) return index + 1; else return 0; #else # 277 "../mesa/src/util/bitscan.h" unsigned r = 0; while (u) { r++; u >>= 1; } return r; #endif # 284 "../mesa/src/util/bitscan.h" } /** * Find last bit in a word that does not match the sign bit. The least * significant bit is 1. * Return 0 if no bits are set. */ static inline unsigned util_last_bit_signed(int i) { if (i >= 0) return util_last_bit(i); else return util_last_bit(~(unsigned)i); } /* Returns a bitfield in which the first count bits starting at start are * set. */ static inline unsigned u_bit_consecutive(unsigned start, unsigned count) { assert(start + count <= 32); if (count == 32) return ~0; return ((1u << count) - 1) << start; } static inline uint64_t u_bit_consecutive64(unsigned start, unsigned count) { assert(start + count <= 64); if (count == 64) return ~(uint64_t)0; return (((uint64_t)1 << count) - 1) << start; } /** * Return number of bits set in n. */ static inline unsigned util_bitcount(unsigned n) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_POPCOUNT) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 328 "../mesa/src/util/bitscan.h" return __builtin_popcount(n); #else # 330 "../mesa/src/util/bitscan.h" /* K&R classic bitcount. * * For each iteration, clear the LSB from the bitfield. * Requires only one iteration per set bit, instead of * one iteration per bit less than highest set bit. */ unsigned bits; for (bits = 0; n; bits++) { n &= n - 1; } return bits; #endif # 342 "../mesa/src/util/bitscan.h" } /** * Return the number of bits set in n using the native popcnt instruction. * The caller is responsible for ensuring that popcnt is supported by the CPU. * * gcc doesn't use it if -mpopcnt or -march= that has popcnt is missing. * */ static inline unsigned util_popcnt_inline_asm(unsigned n) { #if 0 /* disabled by -frewrite-includes */ #if defined(USE_X86_64_ASM) || defined(USE_X86_ASM) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 355 "../mesa/src/util/bitscan.h" uint32_t out; __asm volatile("popcnt %1, %0" : "=r"(out) : "r"(n)); return out; #else # 359 "../mesa/src/util/bitscan.h" /* We should never get here by accident, but I'm sure it'll happen. */ return util_bitcount(n); #endif # 362 "../mesa/src/util/bitscan.h" } static inline unsigned util_bitcount64(uint64_t n) { #ifdef HAVE___BUILTIN_POPCOUNTLL return __builtin_popcountll(n); #else # 370 "../mesa/src/util/bitscan.h" return util_bitcount((unsigned)n) + util_bitcount((unsigned)(n >> 32)); #endif # 372 "../mesa/src/util/bitscan.h" } /** * Widens the given bit mask by a multiplier, meaning that it will * replicate each bit by that amount. * * For example: * 0b101 widened by 2 will become: 0b110011 * * This is typically used in shader I/O to transform a 64-bit * writemask to a 32-bit writemask. */ static inline uint32_t util_widen_mask(uint32_t mask, unsigned multiplier) { uint32_t new_mask = 0; u_foreach_bit(i, mask) new_mask |= ((1u << multiplier) - 1u) << (i * multiplier); return new_mask; } #ifdef __cplusplus } /* util_bitcount has large measurable overhead (~2%), so it's recommended to * use the POPCNT instruction via inline assembly if the CPU supports it. */ enum util_popcnt { POPCNT_NO, POPCNT_YES, POPCNT_INVALID, }; /* Convenient function to select popcnt through a C++ template argument. * This should be used as part of larger functions that are optimized * as a whole. */ template inline unsigned util_bitcount_fast(unsigned n) { if (POPCNT == POPCNT_YES) return util_popcnt_inline_asm(n); else return util_bitcount(n); } #endif /* __cplusplus */ # 419 "../mesa/src/util/bitscan.h" #endif /* BITSCAN_H */ # 421 "../mesa/src/util/bitscan.h" #endif /* bitscan.h expanded by -frewrite-includes */ # 49 "../mesa/src/util/u_math.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "u_endian.h" /* for UTIL_ARCH_BIG_ENDIAN */ #endif /* expanded by -frewrite-includes */ # 49 "../mesa/src/util/u_math.h" # 50 "../mesa/src/util/u_math.h" #if 0 /* expanded by -frewrite-includes */ #include "util/detect_cc.h" #endif /* expanded by -frewrite-includes */ # 50 "../mesa/src/util/u_math.h" # 51 "../mesa/src/util/u_math.h" #if 0 /* expanded by -frewrite-includes */ #include "util/detect_arch.h" #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/util/u_math.h" # 52 "../mesa/src/util/u_math.h" #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 52 "../mesa/src/util/u_math.h" # 53 "../mesa/src/util/u_math.h" #ifdef __HAIKU__ #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 55 "../mesa/src/util/u_math.h" # 56 "../mesa/src/util/u_math.h" #undef ALIGN #endif # 58 "../mesa/src/util/u_math.h" #ifdef __cplusplus extern "C" { #endif # 62 "../mesa/src/util/u_math.h" #ifndef M_SQRT2 #define M_SQRT2 1.41421356237309504880 #endif # 67 "../mesa/src/util/u_math.h" /** * Initialize math module. This should be called before using any * other functions in this module. */ extern void util_init_math(void); union fi { float f; int32_t i; uint32_t ui; }; union di { double d; int64_t i; uint64_t ui; }; /** * Extract the IEEE float32 exponent. */ static inline signed util_get_float32_exponent(float x) { union fi f; f.f = x; return ((f.ui >> 23) & 0xff) - 127; } #define LOG2_TABLE_SIZE_LOG2 8 #define LOG2_TABLE_SCALE (1 << LOG2_TABLE_SIZE_LOG2) #define LOG2_TABLE_SIZE (LOG2_TABLE_SCALE + 1) extern float log2_table[LOG2_TABLE_SIZE]; /** * Fast approximation to log2(x). */ static inline float util_fast_log2(float x) { union fi num; float epart, mpart; num.f = x; epart = (float)(((num.i & 0x7f800000) >> 23) - 127); /* mpart = log2_table[mantissa*LOG2_TABLE_SCALE + 0.5] */ mpart = log2_table[((num.i & 0x007fffff) + (1 << (22 - LOG2_TABLE_SIZE_LOG2))) >> (23 - LOG2_TABLE_SIZE_LOG2)]; return epart + mpart; } /** * Floor(x), returned as int. */ static inline int util_ifloor(float f) { #if 0 /* disabled by -frewrite-includes */ #if defined(USE_X86_ASM) && defined(__GNUC__) && defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 134 "../mesa/src/util/u_math.h" /* * IEEE floor for computers that round to nearest or even. * 'f' must be between -4194304 and 4194303. * This floor operation is done by "(iround(f + .5) + iround(f - .5)) >> 1", * but uses some IEEE specific tricks for better speed. * Contributed by Josh Vanderhoof */ int ai, bi; double af, bf; af = (3 << 22) + 0.5 + (double)f; bf = (3 << 22) + 0.5 - (double)f; /* GCC generates an extra fstp/fld without this. */ __asm__ ("fstps %0" : "=m" (ai) : "t" (af) : "st"); __asm__ ("fstps %0" : "=m" (bi) : "t" (bf) : "st"); return (ai - bi) >> 1; #else # 150 "../mesa/src/util/u_math.h" int ai, bi; double af, bf; union fi u; af = (3 << 22) + 0.5 + (double) f; bf = (3 << 22) + 0.5 - (double) f; u.f = (float) af; ai = u.i; u.f = (float) bf; bi = u.i; return (ai - bi) >> 1; #endif # 159 "../mesa/src/util/u_math.h" } /** * Round float to nearest int. * the range of f should be [INT_MIN, INT_MAX] */ static inline int util_iround(float f) { return (int)lrintf(f); } /** * Approximate floating point comparison */ static inline bool util_is_approx(float a, float b, float tol) { return fabsf(b - a) <= tol; } /** * util_is_X_inf_or_nan = test if x is NaN or +/- Inf * util_is_X_nan = test if x is NaN * util_X_inf_sign = return +1 for +Inf, -1 for -Inf, or 0 for not Inf * * NaN can be checked with x != x, however this fails with the fast math flag **/ /** * Single-float */ static inline bool util_is_inf_or_nan(float x) { union fi tmp; tmp.f = x; return (tmp.ui & 0x7f800000) == 0x7f800000; } static inline bool util_is_nan(float x) { union fi tmp; tmp.f = x; return (tmp.ui & 0x7fffffff) > 0x7f800000; } static inline int util_inf_sign(float x) { union fi tmp; tmp.f = x; if ((tmp.ui & 0x7fffffff) != 0x7f800000) { return 0; } return (x < 0) ? -1 : 1; } /** * Double-float */ static inline bool util_is_double_inf_or_nan(double x) { union di tmp; tmp.d = x; return (tmp.ui & 0x7ff0000000000000ULL) == 0x7ff0000000000000ULL; } static inline bool util_is_double_nan(double x) { union di tmp; tmp.d = x; return (tmp.ui & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL; } static inline int util_double_inf_sign(double x) { union di tmp; tmp.d = x; if ((tmp.ui & 0x7fffffffffffffffULL) != 0x7ff0000000000000ULL) { return 0; } return (x < 0) ? -1 : 1; } /** * Half-float */ static inline bool util_is_half_inf_or_nan(int16_t x) { return (x & 0x7c00) == 0x7c00; } static inline bool util_is_half_nan(int16_t x) { return (x & 0x7fff) > 0x7c00; } static inline int util_half_inf_sign(int16_t x) { if ((x & 0x7fff) != 0x7c00) { return 0; } return (x < 0) ? -1 : 1; } /** * Return float bits. */ static inline unsigned fui( float f ) { union fi fi; fi.f = f; return fi.ui; } static inline uint64_t dui( double f ) { union di di; di.d = f; return di.ui; } static inline float uif(uint32_t ui) { union fi fi; fi.ui = ui; return fi.f; } static inline double uid(uint64_t ui) { union di di; di.ui = ui; return di.d; } /** * Convert uint8_t to float in [0, 1]. */ static inline float ubyte_to_float(uint8_t ub) { return (float) ub * (1.0f / 255.0f); } /** * Convert float in [0,1] to uint8_t in [0,255] with clamping. */ static inline uint8_t float_to_ubyte(float f) { /* return 0 for NaN too */ if (!(f > 0.0f)) { return (uint8_t) 0; } else if (f >= 1.0f) { return (uint8_t) 255; } else { union fi tmp; tmp.f = f; tmp.f = tmp.f * (255.0f/256.0f) + 32768.0f; return (uint8_t) tmp.i; } } /** * Convert uint16_t to float in [0, 1]. */ static inline float ushort_to_float(uint16_t us) { return (float) us * (1.0f / 65535.0f); } /** * Convert float in [0,1] to uint16_t in [0,65535] with clamping. */ static inline uint16_t float_to_ushort(float f) { /* return 0 for NaN too */ if (!(f > 0.0f)) { return (uint16_t) 0; } else if (f >= 1.0f) { return (uint16_t) 65535; } else { union fi tmp; tmp.f = f; tmp.f = tmp.f * (65535.0f/65536.0f) + 128.0f; return (uint16_t) tmp.i; } } static inline float byte_to_float_tex(int8_t b) { return (b == -128) ? -1.0F : b * 1.0F / 127.0F; } static inline int8_t float_to_byte_tex(float f) { return (int8_t) (127.0F * f); } /** * Calc log base 2 */ static inline unsigned util_logbase2(unsigned n) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_CLZ) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 404 "../mesa/src/util/u_math.h" return ((sizeof(unsigned) * 8 - 1) - __builtin_clz(n | 1)); #else # 406 "../mesa/src/util/u_math.h" unsigned pos = 0; if (n >= 1<<16) { n >>= 16; pos += 16; } if (n >= 1<< 8) { n >>= 8; pos += 8; } if (n >= 1<< 4) { n >>= 4; pos += 4; } if (n >= 1<< 2) { n >>= 2; pos += 2; } if (n >= 1<< 1) { pos += 1; } return pos; #endif # 414 "../mesa/src/util/u_math.h" } static inline uint64_t util_logbase2_64(uint64_t n) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_CLZLL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 420 "../mesa/src/util/u_math.h" return ((sizeof(uint64_t) * 8 - 1) - __builtin_clzll(n | 1)); #else # 422 "../mesa/src/util/u_math.h" uint64_t pos = 0ull; if (n >= 1ull<<32) { n >>= 32; pos += 32; } if (n >= 1ull<<16) { n >>= 16; pos += 16; } if (n >= 1ull<< 8) { n >>= 8; pos += 8; } if (n >= 1ull<< 4) { n >>= 4; pos += 4; } if (n >= 1ull<< 2) { n >>= 2; pos += 2; } if (n >= 1ull<< 1) { pos += 1; } return pos; #endif # 431 "../mesa/src/util/u_math.h" } /** * Returns the ceiling of log n base 2, and 0 when n == 0. Equivalently, * returns the smallest x such that n <= 2**x. */ static inline unsigned util_logbase2_ceil(unsigned n) { if (n <= 1) return 0; return 1 + util_logbase2(n - 1); } static inline uint64_t util_logbase2_ceil64(uint64_t n) { if (n <= 1) return 0; return 1ull + util_logbase2_64(n - 1); } /** * Returns the smallest power of two >= x */ static inline unsigned util_next_power_of_two(unsigned x) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_CLZ) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 462 "../mesa/src/util/u_math.h" if (x <= 1) return 1; return (1 << ((sizeof(unsigned) * 8) - __builtin_clz(x - 1))); #else # 467 "../mesa/src/util/u_math.h" unsigned val = x; if (x <= 1) return 1; if (util_is_power_of_two_or_zero(x)) return x; val--; val = (val >> 1) | val; val = (val >> 2) | val; val = (val >> 4) | val; val = (val >> 8) | val; val = (val >> 16) | val; val++; return val; #endif # 484 "../mesa/src/util/u_math.h" } static inline uint64_t util_next_power_of_two64(uint64_t x) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_CLZLL) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 490 "../mesa/src/util/u_math.h" if (x <= 1) return 1; return (1ull << ((sizeof(uint64_t) * 8) - __builtin_clzll(x - 1))); #else # 495 "../mesa/src/util/u_math.h" uint64_t val = x; if (x <= 1) return 1; if (util_is_power_of_two_or_zero64(x)) return x; val--; val = (val >> 1) | val; val = (val >> 2) | val; val = (val >> 4) | val; val = (val >> 8) | val; val = (val >> 16) | val; val = (val >> 32) | val; val++; return val; #endif # 513 "../mesa/src/util/u_math.h" } /** * Reverse bits in n * Algorithm taken from: * http://stackoverflow.com/questions/9144800/c-reverse-bits-in-unsigned-integer */ static inline unsigned util_bitreverse(unsigned n) { n = ((n >> 1) & 0x55555555u) | ((n & 0x55555555u) << 1); n = ((n >> 2) & 0x33333333u) | ((n & 0x33333333u) << 2); n = ((n >> 4) & 0x0f0f0f0fu) | ((n & 0x0f0f0f0fu) << 4); n = ((n >> 8) & 0x00ff00ffu) | ((n & 0x00ff00ffu) << 8); n = ((n >> 16) & 0xffffu) | ((n & 0xffffu) << 16); return n; } /** * Convert from little endian to CPU byte order. */ #if 0 /* disabled by -frewrite-includes */ #if UTIL_ARCH_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 536 "../mesa/src/util/u_math.h" #define util_le64_to_cpu(x) util_bswap64(x) #define util_le32_to_cpu(x) util_bswap32(x) #define util_le16_to_cpu(x) util_bswap16(x) #else # 540 "../mesa/src/util/u_math.h" #define util_le64_to_cpu(x) (x) #define util_le32_to_cpu(x) (x) #define util_le16_to_cpu(x) (x) #endif # 544 "../mesa/src/util/u_math.h" #define util_cpu_to_le64(x) util_le64_to_cpu(x) #define util_cpu_to_le32(x) util_le32_to_cpu(x) #define util_cpu_to_le16(x) util_le16_to_cpu(x) /** * Reverse byte order of a 32 bit word. */ static inline uint32_t util_bswap32(uint32_t n) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_BSWAP32) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 556 "../mesa/src/util/u_math.h" return __builtin_bswap32(n); #else # 558 "../mesa/src/util/u_math.h" return (n >> 24) | ((n >> 8) & 0x0000ff00) | ((n << 8) & 0x00ff0000) | (n << 24); #endif # 563 "../mesa/src/util/u_math.h" } /** * Reverse byte order of a 64bit word. */ static inline uint64_t util_bswap64(uint64_t n) { #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE___BUILTIN_BSWAP64) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 572 "../mesa/src/util/u_math.h" return __builtin_bswap64(n); #else # 574 "../mesa/src/util/u_math.h" return ((uint64_t)util_bswap32((uint32_t)n) << 32) | util_bswap32((n >> 32)); #endif # 577 "../mesa/src/util/u_math.h" } /** * Reverse byte order of a 16 bit word. */ static inline uint16_t util_bswap16(uint16_t n) { return (n >> 8) | (n << 8); } /** * Mask and sign-extend a number * * The bit at position `width - 1` is replicated to all the higher bits. * This makes no assumptions about the high bits of the value and will * overwrite them with the sign bit. */ static inline int64_t util_mask_sign_extend(uint64_t val, unsigned width) { assert(width > 0 && width <= 64); unsigned shift = 64 - width; return (int64_t)(val << shift) >> shift; } /** * Sign-extend a number * * The bit at position `width - 1` is replicated to all the higher bits. * This assumes and asserts that the value fits into `width` bits. */ static inline int64_t util_sign_extend(uint64_t val, unsigned width) { assert(width == 64 || val < (UINT64_C(1) << width)); return util_mask_sign_extend(val, width); } static inline void* util_memcpy_cpu_to_le32(void * restrict dest, const void * restrict src, size_t n) { #if 0 /* disabled by -frewrite-includes */ #if UTIL_ARCH_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 622 "../mesa/src/util/u_math.h" size_t i, e; assert(n % 4 == 0); for (i = 0, e = n / 4; i < e; i++) { uint32_t * restrict d = (uint32_t* restrict)dest; const uint32_t * restrict s = (const uint32_t* restrict)src; d[i] = util_bswap32(s[i]); } return dest; #else # 632 "../mesa/src/util/u_math.h" return memcpy(dest, src, n); #endif # 634 "../mesa/src/util/u_math.h" } /** * Align a value up to an alignment value * * If \c value is not already aligned to the requested alignment value, it * will be rounded up. * * \param value Value to be rounded * \param alignment Alignment value to be used. This must be a power of two. * * \sa ROUND_DOWN_TO() */ #if 0 /* disabled by -frewrite-includes */ #if defined(ALIGN) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 649 "../mesa/src/util/u_math.h" #undef ALIGN #endif # 651 "../mesa/src/util/u_math.h" static inline uint32_t ALIGN(uint32_t value, uint32_t alignment) { assert(util_is_power_of_two_nonzero(alignment)); return ALIGN_POT(value, alignment); } /** * Like ALIGN(), but works with a non-power-of-two alignment. */ static inline uintptr_t ALIGN_NPOT(uintptr_t value, int32_t alignment) { assert(alignment > 0); return (value + alignment - 1) / alignment * alignment; } /** * Align a value down to an alignment value * * If \c value is not already aligned to the requested alignment value, it * will be rounded down. * * \param value Value to be rounded * \param alignment Alignment value to be used. This must be a power of two. * * \sa ALIGN() */ static inline uint64_t ROUND_DOWN_TO(uint64_t value, uint32_t alignment) { assert(util_is_power_of_two_nonzero(alignment)); return ((value) & ~(uint64_t)(alignment - 1)); } /** * Align a value, only works pot alignemnts. */ static inline uint32_t align(uint32_t value, uint32_t alignment) { assert(util_is_power_of_two_nonzero(alignment)); return ALIGN_POT(value, alignment); } static inline uint64_t align64(uint64_t value, uint64_t alignment) { assert(util_is_power_of_two_nonzero64(alignment)); return ALIGN_POT(value, alignment); } /** * Align a value(uintptr_t, intptr_t, ptrdiff_t), only works pot alignemnts. */ static inline uintptr_t align_uintptr(uintptr_t value, uintptr_t alignment) { assert(util_is_power_of_two_nonzero_uintptr(alignment)); return ALIGN_POT(value, alignment); } /** * Works like align but on npot alignments. */ static inline size_t util_align_npot(size_t value, size_t alignment) { if (value % alignment) return value + (alignment - (value % alignment)); return value; } static inline unsigned u_minify(unsigned value, unsigned levels) { return MAX2(1, value >> levels); } #ifndef COPY_4V #define COPY_4V( DST, SRC ) \ do { \ (DST)[0] = (SRC)[0]; \ (DST)[1] = (SRC)[1]; \ (DST)[2] = (SRC)[2]; \ (DST)[3] = (SRC)[3]; \ } while (0) #endif # 739 "../mesa/src/util/u_math.h" #ifndef COPY_4FV #define COPY_4FV( DST, SRC ) COPY_4V(DST, SRC) #endif # 744 "../mesa/src/util/u_math.h" #ifndef ASSIGN_4V #define ASSIGN_4V( DST, V0, V1, V2, V3 ) \ do { \ (DST)[0] = (V0); \ (DST)[1] = (V1); \ (DST)[2] = (V2); \ (DST)[3] = (V3); \ } while (0) #endif # 755 "../mesa/src/util/u_math.h" static inline uint32_t util_unsigned_fixed(float value, unsigned frac_bits) { return value < 0 ? 0 : (uint32_t)(value * (1< 256) return upload_vertex_count > draw_vertex_count * 4; else if (upload_vertex_count > 64) return upload_vertex_count > draw_vertex_count * 8; else return upload_vertex_count > draw_vertex_count * 16; } bool util_invert_mat4x4(float *out, const float *m); /* Quantize the lod bias value to reduce the number of sampler state * variants in gallium because apps use it for smooth mipmap transitions, * thrashing cso_cache and degrading performance. * * This quantization matches the AMD hw specification, so having more * precision would have no effect anyway. */ static inline float util_quantize_lod_bias(float lod) { lod = CLAMP(lod, -32, 31); return roundf(lod * 256) / 256; } /** * Adds two unsigned integers and if the addition * overflows then clamp it to ~0U. */ static inline unsigned util_clamped_uadd(unsigned a, unsigned b) { unsigned res = a + b; if (res < a) { res = ~0U; } return res; } /** * Checks the value 'n' is aligned to 'a'. * The alignment must be a power of two. */ static inline bool util_is_aligned(uintmax_t n, uintmax_t a) { assert((a != 0) && ((a & (a - 1)) == 0)); return (n & (a - 1)) == 0; } static inline bool util_is_sint16(int x) { return x >= INT16_MIN && x <= INT16_MAX; } #ifdef __cplusplus } #endif # 846 "../mesa/src/util/u_math.h" #endif /* U_MATH_H */ # 848 "../mesa/src/util/u_math.h" #endif /* u_math.h expanded by -frewrite-includes */ # 33 "../mesa/src/util/sparse_array.h" 2 #ifdef __cplusplus extern "C" { #endif # 37 "../mesa/src/util/sparse_array.h" struct util_sparse_array_node; /** A thread-safe automatically growing sparse array data structure * * This data structure has the following very nice properties: * * 1. Accessing an element is basically constant time. Technically, it's * O(log_b n) where the base b is the node size and n is the maximum * index. However, node sizes are expected to be fairly large and the * index is a uint64_t so, if your node size is 256, it's O(8). * * 2. The data stored in the array is never moved in memory. Instead, the * data structure only ever grows and new nodes are added as-needed. This * means it's safe to store a pointer to something stored in the sparse * array without worrying about a realloc invalidating it. * * 3. The data structure is thread-safe. No guarantees are made about the * data stored in the sparse array but it is safe to call * util_sparse_array_get(arr, idx) from as many threads as you'd like and * we guarantee that two calls to util_sparse_array_get(arr, idx) with the * same array and index will always return the same pointer regardless * contention between threads. * * 4. The data structure is lock-free. All manipulations of the tree are * done by a careful use of atomics to maintain thread safety and no locks * are ever taken other than those taken implicitly by calloc(). If no * allocation is required, util_sparse_array_get(arr, idx) does a simple * walk over the tree should be efficient even in the case where many * threads are accessing the sparse array at once. */ struct util_sparse_array { size_t elem_size; unsigned node_size_log2; uintptr_t root; }; void util_sparse_array_init(struct util_sparse_array *arr, size_t elem_size, size_t node_size); void util_sparse_array_finish(struct util_sparse_array *arr); void *util_sparse_array_get(struct util_sparse_array *arr, uint64_t idx); void util_sparse_array_validate(struct util_sparse_array *arr); /** A thread-safe free list for use with struct util_sparse_array * * This data structure provides an easy way to manage a singly linked list of * "free" elements backed by a util_sparse_array. The list supports only two * operations: push and pop both of which are thread-safe and lock-free. T */ struct util_sparse_array_free_list { /** Head of the list * * The bottom 64 bits of this value are the index to the next free element * or the sentinel value if the list is empty. * * We want this element to be 8-byte aligned. Otherwise, the performance * of atomic operations on it will be aweful on 32-bit platforms. */ alignas(8) uint64_t head; /** The array backing this free list */ struct util_sparse_array *arr; /** Sentinel value to indicate the end of the list * * This value must never be passed into util_sparse_array_free_list_push. */ uint32_t sentinel; /** Offset into the array element at which to find the "next" value * * The assumption is that there is some uint32_t "next" value embedded in * the array element for use in the free list. This is its offset. */ uint32_t next_offset; }; void util_sparse_array_free_list_init(struct util_sparse_array_free_list *fl, struct util_sparse_array *arr, uint32_t sentinel, uint32_t next_offset); void util_sparse_array_free_list_push(struct util_sparse_array_free_list *fl, uint32_t *items, unsigned num_items); uint32_t util_sparse_array_free_list_pop_idx(struct util_sparse_array_free_list *fl); void *util_sparse_array_free_list_pop_elem(struct util_sparse_array_free_list *fl); #ifdef __cplusplus } /* extern C */ #endif # 133 "../mesa/src/util/sparse_array.h" #endif /* _UTIL_SPARSE_ARRAY_H */ # 135 "../mesa/src/util/sparse_array.h" #endif /* sparse_array.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/hash.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_idalloc.h expanded by -frewrite-includes */ #include "util/u_idalloc.h" #else /* u_idalloc.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/hash.h" # 1 "../mesa/src/util/u_idalloc.h" 1 /************************************************************************** * * Copyright 2017 Valve Corporation * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* Allocator of IDs (e.g. OpenGL object IDs), or simply an allocator of * numbers. * * The allocator uses a bit array to track allocated IDs. */ #ifndef U_IDALLOC_H #define U_IDALLOC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/util/u_idalloc.h" # 38 "../mesa/src/util/u_idalloc.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/util/u_idalloc.h" # 39 "../mesa/src/util/u_idalloc.h" #if 0 /* expanded by -frewrite-includes */ #include "simple_mtx.h" #endif /* expanded by -frewrite-includes */ # 39 "../mesa/src/util/u_idalloc.h" # 40 "../mesa/src/util/u_idalloc.h" #if 0 /* expanded by -frewrite-includes */ #include "bitscan.h" #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/util/u_idalloc.h" # 41 "../mesa/src/util/u_idalloc.h" #ifdef __cplusplus extern "C" { #endif # 45 "../mesa/src/util/u_idalloc.h" struct util_idalloc { uint32_t *data; unsigned num_elements; /* number of allocated elements of "data" */ unsigned num_set_elements; /* the last non-zero element of "data" + 1 */ unsigned lowest_free_idx; }; void util_idalloc_init(struct util_idalloc *buf, unsigned initial_num_ids); void util_idalloc_fini(struct util_idalloc *buf); unsigned util_idalloc_alloc(struct util_idalloc *buf); unsigned util_idalloc_alloc_range(struct util_idalloc *buf, unsigned num); void util_idalloc_free(struct util_idalloc *buf, unsigned id); void util_idalloc_reserve(struct util_idalloc *buf, unsigned id); #define util_idalloc_foreach(buf, id) \ for (uint32_t _i = 0, id, _count = (buf)->num_set_elements, \ _mask = _count ? (buf)->data[0] : 0; \ _i < _count; _mask = ++_i < _count ? (buf)->data[_i] : 0) \ while (_mask) \ if ((id = _i * 32 + u_bit_scan(&_mask)), true) /* This allows freeing IDs while iterating, excluding ID=0. */ #define util_idalloc_foreach_no_zero_safe(buf, id) \ for (uint32_t _i = 0, _bit, id, _count = (buf)->num_set_elements, \ _mask = _count ? (buf)->data[0] & ~0x1 : 0; \ _i < _count; _mask = ++_i < _count ? (buf)->data[_i] : 0) \ while (_mask) \ if ((_bit = u_bit_scan(&_mask), id = _i * 32 + _bit), \ (buf)->data[_i] & BITFIELD_BIT(_bit)) /* Thread-safe variant. */ struct util_idalloc_mt { struct util_idalloc buf; simple_mtx_t mutex; bool skip_zero; }; void util_idalloc_mt_init(struct util_idalloc_mt *buf, unsigned initial_num_ids, bool skip_zero); void util_idalloc_mt_init_tc(struct util_idalloc_mt *buf); void util_idalloc_mt_fini(struct util_idalloc_mt *buf); unsigned util_idalloc_mt_alloc(struct util_idalloc_mt *buf); void util_idalloc_mt_free(struct util_idalloc_mt *buf, unsigned id); /* util_idalloc_sparse: The 32-bit ID range is divided into separately managed * segments. This reduces virtual memory usage when IDs are sparse. * It's done by layering util_idalloc_sparse on top of util_idalloc. * * If the last ID is allocated: * - "util_idalloc" occupies 512 MB of virtual memory * - "util_idalloc_sparse" occupies only 512 KB of virtual memory */ struct util_idalloc_sparse { struct util_idalloc segment[1024]; }; #define UTIL_IDALLOC_MAX_IDS_PER_SEGMENT(buf) \ ((uint32_t)(BITFIELD64_BIT(32) / ARRAY_SIZE((buf)->segment))) #define UTIL_IDALLOC_MAX_ELEMS_PER_SEGMENT(buf) \ (UTIL_IDALLOC_MAX_IDS_PER_SEGMENT(buf) / 32) void util_idalloc_sparse_init(struct util_idalloc_sparse *buf); void util_idalloc_sparse_fini(struct util_idalloc_sparse *buf); unsigned util_idalloc_sparse_alloc(struct util_idalloc_sparse *buf); unsigned util_idalloc_sparse_alloc_range(struct util_idalloc_sparse *buf, unsigned num); void util_idalloc_sparse_free(struct util_idalloc_sparse *buf, unsigned id); void util_idalloc_sparse_reserve(struct util_idalloc_sparse *buf, unsigned id); /* This allows freeing IDs while iterating, excluding ID=0. */ #define util_idalloc_sparse_foreach_no_zero_safe(buf, id) \ for (uint32_t _s = 0; _s < ARRAY_SIZE((buf)->segment); _s++) \ for (uint32_t _i = 0, _bit, id, _count = (buf)->segment[_s].num_set_elements, \ _mask = _count ? (buf)->segment[_s].data[0] & ~0x1 : 0; \ _i < _count; _mask = ++_i < _count ? (buf)->segment[_s].data[_i] : 0) \ while (_mask) \ if ((_bit = u_bit_scan(&_mask), id = _s * UTIL_IDALLOC_MAX_IDS_PER_SEGMENT(buf) + _i * 32 + _bit), \ (buf)->segment[_s].data[_i] & BITFIELD_BIT(_bit)) #ifdef __cplusplus } #endif # 160 "../mesa/src/util/u_idalloc.h" #endif /* U_IDALLOC_H */ # 162 "../mesa/src/util/u_idalloc.h" #endif /* u_idalloc.h expanded by -frewrite-includes */ # 41 "../mesa/src/mesa/main/hash.h" 2 /** * The not-really-hash-table data structure. It pretends to be a hash table, * but it uses util_idalloc to keep track of GL object IDs and * util_sparse_array for storing entries. Lookups only access the array. */ struct _mesa_HashTable { struct util_sparse_array array; simple_mtx_t Mutex; GLuint MaxKey; /**< highest key inserted so far */ bool alloc_via_idalloc; /* Used when name reuse is enabled */ struct util_idalloc_sparse id_alloc; }; void _mesa_InitHashTable(struct _mesa_HashTable *table, bool enable_reuse); void _mesa_DeinitHashTable(struct _mesa_HashTable *table, void (*free_callback)(void *data, void *userData), void *userData); void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data); void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key); void _mesa_HashInsertLocked(struct _mesa_HashTable *table, GLuint key, void *data); void _mesa_HashRemoveLocked(struct _mesa_HashTable *table, GLuint key); void _mesa_HashWalk(struct _mesa_HashTable *table, void (*callback)(void *data, void *userData), void *userData); void _mesa_HashWalkLocked(struct _mesa_HashTable *table, void (*callback)(void *data, void *userData), void *userData); GLuint _mesa_HashFindFreeKeyBlock(struct _mesa_HashTable *table, GLuint numKeys); bool _mesa_HashFindFreeKeys(struct _mesa_HashTable *table, GLuint* keys, GLuint numKeys); /* Inline functions. */ /** * Lock the hash table mutex. * * This function should be used when multiple objects need * to be looked up in the hash table, to avoid having to lock * and unlock the mutex each time. * * \param table the hash table. */ static inline void _mesa_HashLockMutex(struct _mesa_HashTable *table) { simple_mtx_lock(&table->Mutex); } /** * Unlock the hash table mutex. * * \param table the hash table. */ static inline void _mesa_HashUnlockMutex(struct _mesa_HashTable *table) { simple_mtx_unlock(&table->Mutex); } static inline void _mesa_HashLockMaybeLocked(struct _mesa_HashTable *table, bool locked) { if (!locked) _mesa_HashLockMutex(table); } static inline void _mesa_HashUnlockMaybeLocked(struct _mesa_HashTable *table, bool locked) { if (!locked) _mesa_HashUnlockMutex(table); } /** * Lookup an entry in the hash table without locking the mutex. * * The hash table mutex must be locked manually by calling * _mesa_HashLockMutex() before calling this function. * * \return pointer to user's data or NULL if key not in table */ static inline void * _mesa_HashLookupLocked(struct _mesa_HashTable *table, GLuint key) { assert(key); return *(void**)util_sparse_array_get(&table->array, key); } /** * Lookup an entry in the hash table. * * \return pointer to user's data or NULL if key not in table */ static inline void * _mesa_HashLookup(struct _mesa_HashTable *table, GLuint key) { _mesa_HashLockMutex(table); void *res = _mesa_HashLookupLocked(table, key); _mesa_HashUnlockMutex(table); return res; } static inline void * _mesa_HashLookupMaybeLocked(struct _mesa_HashTable *table, GLuint key, bool locked) { if (locked) return _mesa_HashLookupLocked(table, key); else return _mesa_HashLookup(table, key); } #endif # 175 "../mesa/src/mesa/main/hash.h" #endif /* hash.h expanded by -frewrite-includes */ # 60 "../mesa/src/mesa/main/glthread.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 60 "../mesa/src/mesa/main/glthread.h" # 61 "../mesa/src/mesa/main/glthread.h" #ifdef __cplusplus extern "C" { #endif # 65 "../mesa/src/mesa/main/glthread.h" struct gl_context; struct gl_buffer_object; struct _glapi_table; /** * Client pixel packing/unpacking attributes */ struct gl_pixelstore_attrib { GLint Alignment; GLint RowLength; GLint SkipPixels; GLint SkipRows; GLint ImageHeight; GLint SkipImages; GLboolean SwapBytes; GLboolean LsbFirst; GLboolean Invert; /**< GL_MESA_pack_invert */ GLint CompressedBlockWidth; /**< GL_ARB_compressed_texture_pixel_storage */ GLint CompressedBlockHeight; GLint CompressedBlockDepth; GLint CompressedBlockSize; struct gl_buffer_object *BufferObj; /**< GL_ARB_pixel_buffer_object */ }; /* Used by both glthread and gl_context. */ union gl_vertex_format_user { struct { GLenum16 Type; /**< datatype: GL_FLOAT, GL_INT, etc */ bool Bgra; /**< true if GL_BGRA, else GL_RGBA */ uint8_t Size:5; /**< components per element (1,2,3,4) */ bool Normalized:1; /**< GL_ARB_vertex_program */ bool Integer:1; /**< Integer-valued? */ bool Doubles:1; /**< double values are not converted to floats */ }; uint32_t All; }; #define MESA_PACK_VFORMAT(type, size, normalized, integer, doubles) \ (union gl_vertex_format_user){{ \ .Type = MIN2(type, 0xffff), /* 0xffff means invalid value */ \ .Bgra = size == GL_BGRA, \ .Size = size == GL_BGRA ? 4 : MIN2(size, 5), /* 5 means invalid value */ \ .Normalized = normalized, \ .Integer = integer, \ .Doubles = doubles \ }} struct glthread_attrib { /* Per attrib: */ uint8_t ElementSize; /**< max 32 */ uint8_t BufferIndex; /**< Referring to Attrib[BufferIndex]. */ uint16_t RelativeOffset; /**< max 0xffff in Mesa */ union gl_vertex_format_user Format; /* Per buffer binding: */ GLuint Divisor; int16_t Stride; /**< max 2048 */ int8_t EnabledAttribCount; /**< Number of enabled attribs using this buffer. */ const void *Pointer; }; struct glthread_vao { GLuint Name; GLuint CurrentElementBufferName; GLbitfield UserEnabled; /**< Vertex attribs enabled by the user. */ GLbitfield Enabled; /**< UserEnabled with POS vs GENERIC0 aliasing resolved. */ GLbitfield BufferEnabled; /**< "Enabled" converted to buffer bindings. */ GLbitfield BufferInterleaved; /**< Bitmask of buffers used by multiple attribs. */ GLbitfield UserPointerMask; /**< Bitmask of buffer bindings. */ GLbitfield NonNullPointerMask; /**< Bitmask of buffer bindings with non-NULL user pointers. */ GLbitfield NonZeroDivisorMask; /**< Bitmask of buffer bindings. */ struct glthread_attrib Attrib[VERT_ATTRIB_MAX]; }; /** A single batch of commands queued up for execution. */ struct glthread_batch { /** Batch fence for waiting for the execution to finish. */ struct util_queue_fence fence; /** The worker thread will access the context with this. */ struct gl_context *ctx; /** * Number of uint64_t elements filled already. * This is 0 when it's being filled because glthread::used holds the real * value temporarily, and glthread::used is copied to this variable when * the batch is submitted. */ unsigned used; /** Data contained in the command buffer. */ uint64_t buffer[MARSHAL_MAX_CMD_BUFFER_SIZE / 8]; }; struct glthread_client_attrib { struct glthread_vao VAO; GLuint CurrentArrayBufferName; int ClientActiveTexture; GLuint RestartIndex; bool PrimitiveRestart; bool PrimitiveRestartFixedIndex; /** Whether this element of the client attrib stack contains saved state. */ bool Valid; }; /* For glPushAttrib / glPopAttrib. */ struct glthread_attrib_node { GLbitfield Mask; int ActiveTexture; GLenum16 MatrixMode; bool Blend; bool CullFace; bool DepthTest; bool Lighting; bool PolygonStipple; }; typedef enum { M_MODELVIEW, M_PROJECTION, M_PROGRAM0, M_PROGRAM_LAST = M_PROGRAM0 + MAX_PROGRAM_MATRICES - 1, M_TEXTURE0, M_TEXTURE_LAST = M_TEXTURE0 + MAX_TEXTURE_UNITS - 1, M_DUMMY, /* used instead of reporting errors */ M_NUM_MATRIX_STACKS, } gl_matrix_index; struct glthread_state { /** Multithreaded queue. */ struct util_queue queue; /** This is sent to the driver for framebuffer overlay / HUD. */ struct util_queue_monitoring stats; /** Whether GLThread is enabled. */ bool enabled; bool inside_begin_end; bool thread_sched_enabled; /** Display lists. */ GLenum16 ListMode; /**< Zero if not inside display list, else list mode. */ unsigned ListBase; unsigned ListCallDepth; /** For L3 cache pinning. */ unsigned pin_thread_counter; unsigned thread_sched_state; /** The ring of batches in memory. */ struct glthread_batch batches[MARSHAL_MAX_BATCHES]; /** Pointer to the batch currently being filled. */ struct glthread_batch *next_batch; /** Index of the last submitted batch. */ unsigned last; /** Index of the batch being filled and about to be submitted. */ unsigned next; /** Number of uint64_t elements filled already. */ unsigned used; /** Upload buffer. */ struct gl_buffer_object *upload_buffer; uint8_t *upload_ptr; unsigned upload_offset; int upload_buffer_private_refcount; /** Primitive restart state. */ bool PrimitiveRestart; bool PrimitiveRestartFixedIndex; bool _PrimitiveRestart; GLuint RestartIndex; GLuint _RestartIndex[4]; /**< Restart index for index_size = 1,2,4. */ /** Vertex Array objects tracked by glthread independently of Mesa. */ struct _mesa_HashTable VAOs; struct glthread_vao *CurrentVAO; struct glthread_vao *LastLookedUpVAO; struct glthread_vao DefaultVAO; struct glthread_client_attrib ClientAttribStack[MAX_CLIENT_ATTRIB_STACK_DEPTH]; int ClientAttribStackTop; int ClientActiveTexture; /** Currently-bound buffer object IDs. */ GLuint CurrentArrayBufferName; GLuint CurrentDrawIndirectBufferName; GLuint CurrentPixelPackBufferName; GLuint CurrentPixelUnpackBufferName; GLuint CurrentQueryBufferName; /** * The batch index of the last occurence of glLinkProgram or * glDeleteProgram or -1 if there is no such enqueued call. */ int LastProgramChangeBatch; /** * The batch index of the last occurence of glEndList or * glDeleteLists or -1 if there is no such enqueued call. */ int LastDListChangeBatchIndex; /** Basic matrix state tracking. */ int ActiveTexture; GLenum16 MatrixMode; gl_matrix_index MatrixIndex; struct glthread_attrib_node AttribStack[MAX_ATTRIB_STACK_DEPTH]; int AttribStackDepth; int MatrixStackDepth[M_NUM_MATRIX_STACKS]; /** Enable states. */ bool Blend; bool DepthTest; bool CullFace; bool DebugOutputSynchronous; bool Lighting; bool PolygonStipple; GLuint CurrentDrawFramebuffer; GLuint CurrentReadFramebuffer; GLuint CurrentProgram; /** The last added call of the given function. */ struct marshal_cmd_CallList *LastCallList; struct marshal_cmd_BindBuffer *LastBindBuffer1; struct marshal_cmd_BindBuffer *LastBindBuffer2; /** Global mutex update info. */ unsigned GlobalLockUpdateBatchCounter; bool LockGlobalMutexes; struct gl_pixelstore_attrib Unpack; }; void _mesa_glthread_init(struct gl_context *ctx); void _mesa_glthread_destroy(struct gl_context *ctx); void _mesa_glthread_init_dispatch0(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch1(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch2(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch3(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch4(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch5(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch6(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_init_dispatch7(struct gl_context *ctx, struct _glapi_table *table); void _mesa_glthread_enable(struct gl_context *ctx); void _mesa_glthread_disable(struct gl_context *ctx); void _mesa_glthread_flush_batch(struct gl_context *ctx); void _mesa_glthread_finish(struct gl_context *ctx); void _mesa_glthread_finish_before(struct gl_context *ctx, const char *func); bool _mesa_glthread_invalidate_zsbuf(struct gl_context *ctx); void _mesa_glthread_release_upload_buffer(struct gl_context *ctx); void _mesa_glthread_upload(struct gl_context *ctx, const void *data, GLsizeiptr size, unsigned *out_offset, struct gl_buffer_object **out_buffer, uint8_t **out_ptr, unsigned start_offset); void _mesa_glthread_reset_vao(struct glthread_vao *vao); void _mesa_error_glthread_safe(struct gl_context *ctx, GLenum error, bool glthread, const char *format, ...); void _mesa_glthread_execute_list(struct gl_context *ctx, GLuint list); void _mesa_glthread_DeleteBuffers(struct gl_context *ctx, GLsizei n, const GLuint *buffers); void _mesa_glthread_BindVertexArray(struct gl_context *ctx, GLuint id); void _mesa_glthread_DeleteVertexArrays(struct gl_context *ctx, GLsizei n, const GLuint *ids); void _mesa_glthread_GenVertexArrays(struct gl_context *ctx, GLsizei n, GLuint *arrays); void _mesa_glthread_set_prim_restart(struct gl_context *ctx, GLenum cap, bool value); void _mesa_glthread_PrimitiveRestartIndex(struct gl_context *ctx, GLuint index); void _mesa_glthread_ClientState(struct gl_context *ctx, GLuint *vaobj, gl_vert_attrib attrib, bool enable); void _mesa_glthread_AttribDivisor(struct gl_context *ctx, const GLuint *vaobj, gl_vert_attrib attrib, GLuint divisor); void _mesa_glthread_AttribPointer(struct gl_context *ctx, gl_vert_attrib attrib, union gl_vertex_format_user format, GLsizei stride, const void *pointer); void _mesa_glthread_DSAAttribPointer(struct gl_context *ctx, GLuint vao, GLuint buffer, gl_vert_attrib attrib, union gl_vertex_format_user format, GLsizei stride, GLintptr offset); void _mesa_glthread_AttribFormat(struct gl_context *ctx, GLuint attribindex, union gl_vertex_format_user format, GLuint relativeoffset); void _mesa_glthread_DSAAttribFormat(struct gl_context *ctx, GLuint vaobj, GLuint attribindex, union gl_vertex_format_user format, GLuint relativeoffset); void _mesa_glthread_VertexBuffer(struct gl_context *ctx, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void _mesa_glthread_DSAVertexBuffer(struct gl_context *ctx, GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void _mesa_glthread_DSAVertexBuffers(struct gl_context *ctx, GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); void _mesa_glthread_BindingDivisor(struct gl_context *ctx, GLuint bindingindex, GLuint divisor); void _mesa_glthread_DSABindingDivisor(struct gl_context *ctx, GLuint vaobj, GLuint bindingindex, GLuint divisor); void _mesa_glthread_AttribBinding(struct gl_context *ctx, GLuint attribindex, GLuint bindingindex); void _mesa_glthread_DSAAttribBinding(struct gl_context *ctx, GLuint vaobj, GLuint attribindex, GLuint bindingindex); void _mesa_glthread_DSAElementBuffer(struct gl_context *ctx, GLuint vaobj, GLuint buffer); void _mesa_glthread_PushClientAttrib(struct gl_context *ctx, GLbitfield mask, bool set_default); void _mesa_glthread_PopClientAttrib(struct gl_context *ctx); void _mesa_glthread_ClientAttribDefault(struct gl_context *ctx, GLbitfield mask); void _mesa_glthread_InterleavedArrays(struct gl_context *ctx, GLenum format, GLsizei stride, const GLvoid *pointer); void _mesa_glthread_ProgramChanged(struct gl_context *ctx); void _mesa_glthread_UnrollDrawElements(struct gl_context *ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); void _mesa_glthread_unbind_uploaded_vbos(struct gl_context *ctx); void _mesa_glthread_PixelStorei(struct gl_context *ctx, GLenum pname, GLint param); #ifdef __cplusplus } #endif # 411 "../mesa/src/mesa/main/glthread.h" #endif /* _GLTHREAD_H*/ # 413 "../mesa/src/mesa/main/glthread.h" #endif /* glthread.h expanded by -frewrite-includes */ # 43 "../mesa/src/mesa/main/mtypes.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* consts_exts.h expanded by -frewrite-includes */ #include "main/consts_exts.h" #else /* consts_exts.h expanded by -frewrite-includes */ # 43 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/main/consts_exts.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file consts_exts.h * Mesa Constants and GL Extensions data structures. */ #ifndef __CONSTS_EXTS_H__ #define __CONSTS_EXTS_H__ #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/consts_exts.h" # 35 "../mesa/src/mesa/main/consts_exts.h" #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_enums.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/consts_exts.h" # 36 "../mesa/src/mesa/main/consts_exts.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* shader_info.h expanded by -frewrite-includes */ #include "compiler/shader_info.h" #else /* shader_info.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/consts_exts.h" # 1 "../mesa/src/compiler/shader_info.h" 1 /* * Copyright © 2016 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * */ #ifndef SHADER_INFO_H #define SHADER_INFO_H #if defined(__CLANG_REWRITTEN_INCLUDES) /* bitset.h expanded by -frewrite-includes */ #include "util/bitset.h" #else /* bitset.h expanded by -frewrite-includes */ # 28 "../mesa/src/compiler/shader_info.h" # 1 "../mesa/src/util/bitset.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file bitset.h * \brief Bitset of arbitrary size definitions. * \author Michal Krol */ #ifndef BITSET_H #define BITSET_H #if 0 /* expanded by -frewrite-includes */ #include "util/bitscan.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/util/bitset.h" # 35 "../mesa/src/util/bitset.h" #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/util/bitset.h" # 36 "../mesa/src/util/bitset.h" /**************************************************************************** * generic bitset implementation */ #define BITSET_WORD unsigned int #define BITSET_WORDBITS (sizeof (BITSET_WORD) * 8) /* bitset declarations */ #define BITSET_WORDS(bits) (((bits) + BITSET_WORDBITS - 1) / BITSET_WORDBITS) #define BITSET_DECLARE(name, bits) BITSET_WORD name[BITSET_WORDS(bits)] /* bitset operations */ #define BITSET_COPY(x, y) memcpy( (x), (y), sizeof (x) ) #define BITSET_EQUAL(x, y) (memcmp( (x), (y), sizeof (x) ) == 0) #define BITSET_ZERO(x) memset( (x), 0, sizeof (x) ) #define BITSET_ONES(x) memset( (x), 0xff, sizeof (x) ) #define BITSET_SIZE(x) (8 * sizeof(x)) // bitset size in bits #define BITSET_BITWORD(b) ((b) / BITSET_WORDBITS) #define BITSET_BIT(b) (1u << ((b) % BITSET_WORDBITS)) /* single bit operations */ #define BITSET_TEST(x, b) (((x)[BITSET_BITWORD(b)] & BITSET_BIT(b)) != 0) #define BITSET_SET(x, b) ((x)[BITSET_BITWORD(b)] |= BITSET_BIT(b)) #define BITSET_CLEAR(x, b) ((x)[BITSET_BITWORD(b)] &= ~BITSET_BIT(b)) #define BITSET_MASK(b) (((b) % BITSET_WORDBITS == 0) ? ~0 : BITSET_BIT(b) - 1) #define BITSET_RANGE(b, e) ((BITSET_MASK((e) + 1)) & ~(BITSET_BIT(b) - 1)) /* logic bit operations */ static inline void __bitset_and(BITSET_WORD *r, const BITSET_WORD *x, const BITSET_WORD *y, unsigned n) { for (unsigned i = 0; i < n; i++) r[i] = x[i] & y[i]; } static inline void __bitset_or(BITSET_WORD *r, const BITSET_WORD *x, const BITSET_WORD *y, unsigned n) { for (unsigned i = 0; i < n; i++) r[i] = x[i] | y[i]; } static inline void __bitset_not(BITSET_WORD *x, unsigned n) { for (unsigned i = 0; i < n; i++) x[i] = ~x[i]; } static inline void __bitset_andnot(BITSET_WORD *r, const BITSET_WORD *x, const BITSET_WORD *y, unsigned n) { for (unsigned i = 0; i < n; i++) r[i] = x[i] & ~y[i]; } #define BITSET_AND(r, x, y) \ do { \ STATIC_ASSERT(ARRAY_SIZE(r) == ARRAY_SIZE(x)); \ STATIC_ASSERT(ARRAY_SIZE(r) == ARRAY_SIZE(y)); \ __bitset_and(r, x, y, ARRAY_SIZE(r)); \ } while (0) #define BITSET_OR(r, x, y) \ do { \ STATIC_ASSERT(ARRAY_SIZE(r) == ARRAY_SIZE(x)); \ STATIC_ASSERT(ARRAY_SIZE(r) == ARRAY_SIZE(y)); \ __bitset_or(r, x, y, ARRAY_SIZE(r)); \ } while (0) #define BITSET_NOT(x) \ __bitset_not(x, ARRAY_SIZE(x)) #define BITSET_ANDNOT(r, x, y) \ do { \ assert(ARRAY_SIZE(r) == ARRAY_SIZE(x)); \ assert(ARRAY_SIZE(r) == ARRAY_SIZE(y)); \ __bitset_andnot(r, x, y, ARRAY_SIZE(r)); \ } while (0) static inline void __bitset_rotate_right(BITSET_WORD *x, unsigned amount, unsigned n) { assert(amount < BITSET_WORDBITS); if (amount == 0) return; for (unsigned i = 0; i < n - 1; i++) { x[i] = (x[i] >> amount) | (x[i + 1] << (BITSET_WORDBITS - amount)); } x[n - 1] = x[n - 1] >> amount; } static inline void __bitset_rotate_left(BITSET_WORD *x, unsigned amount, unsigned n) { assert(amount < BITSET_WORDBITS); if (amount == 0) return; for (int i = n - 1; i > 0; i--) { x[i] = (x[i] << amount) | (x[i - 1] >> (BITSET_WORDBITS - amount)); } x[0] = x[0] << amount; } static inline void __bitset_shr(BITSET_WORD *x, unsigned amount, unsigned n) { const unsigned int words = amount / BITSET_WORDBITS; if (amount == 0) return; if (words) { unsigned i; for (i = 0; i < n - words; i++) x[i] = x[i + words]; while (i < n) x[i++] = 0; amount %= BITSET_WORDBITS; } __bitset_rotate_right(x, amount, n); } static inline void __bitset_shl(BITSET_WORD *x, unsigned amount, unsigned n) { const int words = amount / BITSET_WORDBITS; if (amount == 0) return; if (words) { int i; for (i = n - 1; i >= words; i--) { x[i] = x[i - words]; } while (i >= 0) { x[i--] = 0; } amount %= BITSET_WORDBITS; } __bitset_rotate_left(x, amount, n); } #define BITSET_SHR(x, n) \ __bitset_shr(x, n, ARRAY_SIZE(x)); #define BITSET_SHL(x, n) \ __bitset_shl(x, n, ARRAY_SIZE(x)); /* bit range operations (e=end is inclusive) */ #define BITSET_GET_RANGE_INSIDE_WORD(x, b, e) \ (BITSET_BITWORD(b) == BITSET_BITWORD(e) ? \ (((x)[BITSET_BITWORD(b)] >> (b % BITSET_WORDBITS)) & \ BITSET_MASK((e) - (b) + 1)) : \ (assert (!"BITSET_TEST_RANGE: bit range crosses word boundary"), 0)) #define BITSET_TEST_RANGE_INSIDE_WORD(x, b, e, mask) \ (BITSET_GET_RANGE_INSIDE_WORD(x, b, e) == (mask)) #define BITSET_SET_RANGE_INSIDE_WORD(x, b, e) \ (BITSET_BITWORD(b) == BITSET_BITWORD(e) ? \ ((x)[BITSET_BITWORD(b)] |= BITSET_RANGE(b, e)) : \ (assert (!"BITSET_SET_RANGE_INSIDE_WORD: bit range crosses word boundary"), 0)) #define BITSET_CLEAR_RANGE_INSIDE_WORD(x, b, e) \ (BITSET_BITWORD(b) == BITSET_BITWORD(e) ? \ ((x)[BITSET_BITWORD(b)] &= ~BITSET_RANGE(b, e)) : \ (assert (!"BITSET_CLEAR_RANGE: bit range crosses word boundary"), 0)) static inline bool __bitset_test_range(const BITSET_WORD *r, unsigned start, unsigned end) { const unsigned size = end - start + 1; const unsigned start_mod = start % BITSET_WORDBITS; if (start_mod + size <= BITSET_WORDBITS) { return !BITSET_TEST_RANGE_INSIDE_WORD(r, start, end, 0); } else { const unsigned first_size = BITSET_WORDBITS - start_mod; return __bitset_test_range(r, start, start + first_size - 1) || __bitset_test_range(r, start + first_size, end); } } #define BITSET_TEST_RANGE(x, b, e) \ __bitset_test_range(x, b, e) static inline void __bitset_set_range(BITSET_WORD *r, unsigned start, unsigned end) { const unsigned size = end - start + 1; const unsigned start_mod = start % BITSET_WORDBITS; if (start_mod + size <= BITSET_WORDBITS) { BITSET_SET_RANGE_INSIDE_WORD(r, start, end); } else { const unsigned first_size = BITSET_WORDBITS - start_mod; __bitset_set_range(r, start, start + first_size - 1); __bitset_set_range(r, start + first_size, end); } } #define BITSET_SET_RANGE(x, b, e) \ __bitset_set_range(x, b, e) static inline void __bitclear_clear_range(BITSET_WORD *r, unsigned start, unsigned end) { const unsigned size = end - start + 1; const unsigned start_mod = start % BITSET_WORDBITS; if (start_mod + size <= BITSET_WORDBITS) { BITSET_CLEAR_RANGE_INSIDE_WORD(r, start, end); } else { const unsigned first_size = BITSET_WORDBITS - start_mod; __bitclear_clear_range(r, start, start + first_size - 1); __bitclear_clear_range(r, start + first_size, end); } } #define BITSET_CLEAR_RANGE(x, b, e) \ __bitclear_clear_range(x, b, e) static inline unsigned __bitset_prefix_sum(const BITSET_WORD *x, unsigned b, unsigned n) { unsigned prefix = 0; for (unsigned i = 0; i < n; i++) { if ((i + 1) * BITSET_WORDBITS <= b) { prefix += util_bitcount(x[i]); } else { prefix += util_bitcount(x[i] & BITFIELD_MASK(b - i * BITSET_WORDBITS)); break; } } return prefix; } /* Count set bits in the bitset (compute the size/cardinality of the bitset). * This is a special case of prefix sum, but this convenience method is more * natural when applicable. */ static inline unsigned __bitset_count(const BITSET_WORD *x, unsigned n) { return __bitset_prefix_sum(x, ~0, n); } #define BITSET_PREFIX_SUM(x, b) \ __bitset_prefix_sum(x, b, ARRAY_SIZE(x)) #define BITSET_COUNT(x) \ __bitset_count(x, ARRAY_SIZE(x)) /* Return true if the bitset has no bits set. */ static inline bool __bitset_is_empty(const BITSET_WORD *x, int n) { for (int i = 0; i < n; i++) { if (x[i]) return false; } return true; } /* Get first bit set in a bitset. */ static inline int __bitset_ffs(const BITSET_WORD *x, int n) { for (int i = 0; i < n; i++) { if (x[i]) return ffs(x[i]) + BITSET_WORDBITS * i; } return 0; } /* Get the last bit set in a bitset. */ static inline int __bitset_last_bit(const BITSET_WORD *x, int n) { for (int i = n - 1; i >= 0; i--) { if (x[i]) return util_last_bit(x[i]) + BITSET_WORDBITS * i; } return 0; } /* Get the last bit set in a bitset before last_bit. */ static inline int __bitset_last_bit_before(const BITSET_WORD *x, int last_bit) { int n = last_bit / BITSET_WORDBITS; int reminder = last_bit % BITSET_WORDBITS; if (reminder) { BITSET_WORD last = x[n] & BITFIELD_MASK(reminder); if (last) return util_last_bit(last) + n * BITSET_WORDBITS; } return __bitset_last_bit(x, n); } #define BITSET_FFS(x) __bitset_ffs(x, ARRAY_SIZE(x)) #define BITSET_LAST_BIT(x) __bitset_last_bit(x, ARRAY_SIZE(x)) #define BITSET_LAST_BIT_SIZED(x, size) __bitset_last_bit(x, size) #define BITSET_LAST_BIT_BEFORE(x, last_bit) __bitset_last_bit_before(x, last_bit) #define BITSET_IS_EMPTY(x) __bitset_is_empty(x, ARRAY_SIZE(x)) static inline unsigned __bitset_next_set(unsigned i, BITSET_WORD *tmp, const BITSET_WORD *set, unsigned size) { unsigned bit, word; /* NOTE: The initial conditions for this function are very specific. At * the start of the loop, the tmp variable must be set to *set and the * initial i value set to 0. This way, if there is a bit set in the first * word, we ignore the i-value and just grab that bit (so 0 is ok, even * though 0 may be returned). If the first word is 0, then the value of * `word` will be 0 and we will go on to look at the second word. */ word = BITSET_BITWORD(i); while (*tmp == 0) { word++; if (word >= BITSET_WORDS(size)) return size; *tmp = set[word]; } /* Find the next set bit in the non-zero word */ bit = ffs(*tmp) - 1; /* Unset the bit */ *tmp &= ~(1ull << bit); return word * BITSET_WORDBITS + bit; } /** * Iterates over each set bit in a set * * @param __i iteration variable, bit number * @param __set the bitset to iterate (will not be modified) * @param __size number of bits in the set to consider */ #define BITSET_FOREACH_SET(__i, __set, __size) \ for (BITSET_WORD __tmp = (__size) == 0 ? 0 : *(__set), *__foo = &__tmp; __foo != NULL; __foo = NULL) \ for (__i = 0; \ (__i = __bitset_next_set(__i, &__tmp, __set, __size)) < __size;) static inline void __bitset_next_range(unsigned *start, unsigned *end, const BITSET_WORD *set, unsigned size) { /* To find the next start, start searching from end. In the first iteration * it will be at 0, in every subsequent iteration it will be at the first * 0-bit after the range. */ unsigned word = BITSET_BITWORD(*end); if (word >= BITSET_WORDS(size)) { *start = *end = size; return; } BITSET_WORD tmp = set[word] & ~(BITSET_BIT(*end) - 1); while (!tmp) { word++; if (word >= BITSET_WORDS(size)) { *start = *end = size; return; } tmp = set[word]; } *start = word * BITSET_WORDBITS + ffs(tmp) - 1; /* Now do the opposite to find end. Here we can start at start + 1, because * we know that the bit at start is 1 and we're searching for the first * 0-bit. */ word = BITSET_BITWORD(*start + 1); if (word >= BITSET_WORDS(size)) { *end = size; return; } tmp = set[word] | (BITSET_BIT(*start + 1) - 1); while (~tmp == 0) { word++; if (word >= BITSET_WORDS(size)) { *end = size; return; } tmp = set[word]; } /* Cap "end" at "size" in case there are extra bits past "size" set in the * word. This is only necessary for "end" because we terminate the loop if * "start" goes past "size". */ *end = MIN2(word * BITSET_WORDBITS + ffs(~tmp) - 1, size); } /** * Iterates over each contiguous range of set bits in a set * * @param __start the first 1 bit of the current range * @param __end the bit after the last 1 bit of the current range * @param __set the bitset to iterate (will not be modified) * @param __size number of bits in the set to consider */ #define BITSET_FOREACH_RANGE(__start, __end, __set, __size) \ for (__start = 0, __end = 0, \ __bitset_next_range(&__start, &__end, __set, __size); \ __start < __size; \ __bitset_next_range(&__start, &__end, __set, __size)) #ifdef __cplusplus /** * Simple C++ wrapper of a bitset type of static size, with value semantics * and basic bitwise arithmetic operators. The operators defined below are * expected to have the same semantics as the same operator applied to other * fundamental integer types. T is the name of the struct to instantiate * it as, and N is the number of bits in the bitset. */ #define DECLARE_BITSET_T(T, N) struct T { \ explicit \ operator bool() const \ { \ for (unsigned i = 0; i < BITSET_WORDS(N); i++) \ if (words[i]) \ return true; \ return false; \ } \ \ T & \ operator=(int x) \ { \ const T c = {{ (BITSET_WORD)x }}; \ return *this = c; \ } \ \ friend bool \ operator==(const T &b, const T &c) \ { \ return BITSET_EQUAL(b.words, c.words); \ } \ \ friend bool \ operator!=(const T &b, const T &c) \ { \ return !(b == c); \ } \ \ friend bool \ operator==(const T &b, int x) \ { \ const T c = {{ (BITSET_WORD)x }}; \ return b == c; \ } \ \ friend bool \ operator!=(const T &b, int x) \ { \ return !(b == x); \ } \ \ friend T \ operator~(const T &b) \ { \ T c; \ for (unsigned i = 0; i < BITSET_WORDS(N); i++) \ c.words[i] = ~b.words[i]; \ return c; \ } \ \ T & \ operator|=(const T &b) \ { \ for (unsigned i = 0; i < BITSET_WORDS(N); i++) \ words[i] |= b.words[i]; \ return *this; \ } \ \ friend T \ operator|(const T &b, const T &c) \ { \ T d = b; \ d |= c; \ return d; \ } \ \ T & \ operator&=(const T &b) \ { \ for (unsigned i = 0; i < BITSET_WORDS(N); i++) \ words[i] &= b.words[i]; \ return *this; \ } \ \ friend T \ operator&(const T &b, const T &c) \ { \ T d = b; \ d &= c; \ return d; \ } \ \ bool \ test(unsigned i) const \ { \ return BITSET_TEST(words, i); \ } \ \ T & \ set(unsigned i) \ { \ BITSET_SET(words, i); \ return *this; \ } \ \ T & \ clear(unsigned i) \ { \ BITSET_CLEAR(words, i); \ return *this; \ } \ \ BITSET_WORD words[BITSET_WORDS(N)]; \ } #endif # 602 "../mesa/src/util/bitset.h" #endif # 604 "../mesa/src/util/bitset.h" #endif /* bitset.h expanded by -frewrite-includes */ # 29 "../mesa/src/compiler/shader_info.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* mesa-blake3.h expanded by -frewrite-includes */ #include "util/mesa-blake3.h" #else /* mesa-blake3.h expanded by -frewrite-includes */ # 29 "../mesa/src/compiler/shader_info.h" # 1 "../mesa/src/util/mesa-blake3.h" 1 /* Copyright © 2023 Valve Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #ifndef MESA_BLAKE3_H #define MESA_BLAKE3_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "../mesa/src/util/mesa-blake3.h" # 27 "../mesa/src/util/mesa-blake3.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "../mesa/src/util/mesa-blake3.h" # 28 "../mesa/src/util/mesa-blake3.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 28 "../mesa/src/util/mesa-blake3.h" # 29 "../mesa/src/util/mesa-blake3.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* blake3.h expanded by -frewrite-includes */ #include "blake3/blake3.h" #else /* blake3.h expanded by -frewrite-includes */ # 29 "../mesa/src/util/mesa-blake3.h" # 1 "../mesa/src/util/blake3/blake3.h" 1 #ifndef BLAKE3_H #define BLAKE3_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 4 "../mesa/src/util/blake3/blake3.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 5 "../mesa/src/util/blake3/blake3.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 5 "../mesa/src/util/blake3/blake3.h" # 6 "../mesa/src/util/blake3/blake3.h" #ifdef __cplusplus extern "C" { #endif # 10 "../mesa/src/util/blake3/blake3.h" #define BLAKE3_VERSION_STRING "1.5.1" #define BLAKE3_KEY_LEN 32 #define BLAKE3_OUT_LEN 32 #define BLAKE3_BLOCK_LEN 64 #define BLAKE3_CHUNK_LEN 1024 #define BLAKE3_MAX_DEPTH 54 // This struct is a private implementation detail. It has to be here because // it's part of blake3_hasher below. typedef struct { uint32_t cv[8]; uint64_t chunk_counter; uint8_t buf[BLAKE3_BLOCK_LEN]; uint8_t buf_len; uint8_t blocks_compressed; uint8_t flags; } blake3_chunk_state; typedef struct blake3_hasher { uint32_t key[8]; blake3_chunk_state chunk; uint8_t cv_stack_len; // The stack size is MAX_DEPTH + 1 because we do lazy merging. For example, // with 7 chunks, we have 3 entries in the stack. Adding an 8th chunk // requires a 4th entry, rather than merging everything down to 1, because we // don't know whether more input is coming. This is different from how the // reference implementation does things. uint8_t cv_stack[(BLAKE3_MAX_DEPTH + 1) * BLAKE3_OUT_LEN]; } blake3_hasher; const char *blake3_version(void); void blake3_hasher_init(blake3_hasher *self); void blake3_hasher_init_keyed(blake3_hasher *self, const uint8_t key[BLAKE3_KEY_LEN]); void blake3_hasher_init_derive_key(blake3_hasher *self, const char *context); void blake3_hasher_init_derive_key_raw(blake3_hasher *self, const void *context, size_t context_len); void blake3_hasher_update(blake3_hasher *self, const void *input, size_t input_len); void blake3_hasher_finalize(const blake3_hasher *self, uint8_t *out, size_t out_len); void blake3_hasher_finalize_seek(const blake3_hasher *self, uint64_t seek, uint8_t *out, size_t out_len); void blake3_hasher_reset(blake3_hasher *self); #ifdef __cplusplus } #endif # 59 "../mesa/src/util/blake3/blake3.h" #endif /* BLAKE3_H */ # 61 "../mesa/src/util/blake3/blake3.h" #endif /* blake3.h expanded by -frewrite-includes */ # 30 "../mesa/src/util/mesa-blake3.h" 2 #ifdef __cplusplus extern "C" { #endif # 34 "../mesa/src/util/mesa-blake3.h" #define mesa_blake3 blake3_hasher #define BLAKE3_OUT_LEN32 (BLAKE3_OUT_LEN / 4) #define BLAKE3_HEX_LEN (2 * BLAKE3_OUT_LEN + 1) typedef uint8_t blake3_hash[BLAKE3_OUT_LEN]; static inline void _mesa_blake3_init(struct mesa_blake3 *ctx) { blake3_hasher_init(ctx); } static inline void _mesa_blake3_update(struct mesa_blake3 *ctx, const void *data, size_t size) { blake3_hasher_update(ctx, data, size); } static inline void _mesa_blake3_final(struct mesa_blake3 *ctx, blake3_hash result) { blake3_hasher_finalize(ctx, result, BLAKE3_OUT_LEN); } void _mesa_blake3_format(char *buf, const unsigned char *blake3); void _mesa_blake3_hex_to_blake3(unsigned char *buf, const char *hex); void _mesa_blake3_compute(const void *data, size_t size, blake3_hash result); void _mesa_blake3_print(FILE *f, const blake3_hash blake3); bool _mesa_blake3_from_printed_string(blake3_hash blake3, const char *printed); bool _mesa_printed_blake3_equal(const blake3_hash blake3, const uint32_t printed_blake3[BLAKE3_OUT_LEN32]); #ifdef __cplusplus } /* extern C */ #endif # 81 "../mesa/src/util/mesa-blake3.h" #endif # 83 "../mesa/src/util/mesa-blake3.h" #endif /* mesa-blake3.h expanded by -frewrite-includes */ # 30 "../mesa/src/compiler/shader_info.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "shader_enums.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/compiler/shader_info.h" # 31 "../mesa/src/compiler/shader_info.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/compiler/shader_info.h" # 32 "../mesa/src/compiler/shader_info.h" #ifdef __cplusplus extern "C" { #endif # 36 "../mesa/src/compiler/shader_info.h" #define MAX_XFB_BUFFERS 4 #define MAX_INLINABLE_UNIFORMS 4 typedef struct shader_info { const char *name; /* Descriptive name provided by the client; may be NULL */ const char *label; /* Shader is internal, and should be ignored by things like NIR_DEBUG=print */ bool internal; /* BLAKE3 of the original source, used by shader detection in drivers. */ blake3_hash source_blake3; /** The shader stage, such as MESA_SHADER_VERTEX. */ gl_shader_stage stage:8; /** The shader stage in a non SSO linked program that follows this stage, * such as MESA_SHADER_FRAGMENT. */ gl_shader_stage next_stage:8; /* Number of textures used by this shader */ uint8_t num_textures; /* Number of uniform buffers used by this shader */ uint8_t num_ubos; /* Number of atomic buffers used by this shader */ uint8_t num_abos; /* Number of shader storage buffers (max .driver_location + 1) used by this * shader. In the case of nir_lower_atomics_to_ssbo being used, this will * be the number of actual SSBOs in gl_program->info, and the lowered SSBOs * and atomic counters in nir_shader->info. */ uint8_t num_ssbos; /* Number of images used by this shader */ uint8_t num_images; /* Which inputs are actually read */ uint64_t inputs_read; /* Which inputs occupy 2 slots. */ uint64_t dual_slot_inputs; /* Which outputs are actually written */ uint64_t outputs_written; /* Which outputs are actually read */ uint64_t outputs_read; /* Which system values are actually read */ BITSET_DECLARE(system_values_read, SYSTEM_VALUE_MAX); /* Which I/O is per-primitive, for read/written information combine with * the fields above. */ uint64_t per_primitive_inputs; uint64_t per_primitive_outputs; /* Which I/O is per-view */ uint64_t per_view_outputs; /* Enabled view mask, for per-view outputs */ uint32_t view_mask; /* Which 16-bit inputs and outputs are used corresponding to * VARYING_SLOT_VARn_16BIT. */ uint16_t inputs_read_16bit; uint16_t outputs_written_16bit; uint16_t outputs_read_16bit; uint16_t inputs_read_indirectly_16bit; uint16_t outputs_accessed_indirectly_16bit; /* Which patch inputs are actually read */ uint32_t patch_inputs_read; /* Which patch outputs are actually written */ uint32_t patch_outputs_written; /* Which patch outputs are read */ uint32_t patch_outputs_read; /* Which inputs are read indirectly (subset of inputs_read) */ uint64_t inputs_read_indirectly; /* Which outputs are read or written indirectly */ uint64_t outputs_accessed_indirectly; /* Which patch inputs are read indirectly (subset of patch_inputs_read) */ uint64_t patch_inputs_read_indirectly; /* Which patch outputs are read or written indirectly */ uint64_t patch_outputs_accessed_indirectly; /** Bitfield of which textures are used */ BITSET_DECLARE(textures_used, 128); /** Bitfield of which textures are used by texelFetch() */ BITSET_DECLARE(textures_used_by_txf, 128); /** Bitfield of which samplers are used */ BITSET_DECLARE(samplers_used, 32); /** Bitfield of which images are used */ BITSET_DECLARE(images_used, 64); /** Bitfield of which images are buffers. */ BITSET_DECLARE(image_buffers, 64); /** Bitfield of which images are MSAA. */ BITSET_DECLARE(msaa_images, 64); /* SPV_KHR_float_controls: execution mode for floating point ops */ uint32_t float_controls_execution_mode; /** * Size of shared variables accessed by compute/task/mesh shaders. */ unsigned shared_size; /** * Size of task payload variables accessed by task/mesh shaders. */ unsigned task_payload_size; /** * Number of ray tracing queries in the shader (counts all elements of all * variables). */ unsigned ray_queries; /** * Local workgroup size used by compute/task/mesh shaders. */ uint16_t workgroup_size[3]; enum gl_subgroup_size subgroup_size; uint8_t num_subgroups; /** * Uses subgroup intrinsics which can communicate across a quad. */ bool uses_wide_subgroup_intrinsics; /* Transform feedback buffer strides in dwords, max. 1K - 4. */ uint8_t xfb_stride[MAX_XFB_BUFFERS]; uint16_t inlinable_uniform_dw_offsets[MAX_INLINABLE_UNIFORMS]; uint8_t num_inlinable_uniforms:4; /* The size of the gl_ClipDistance[] array, if declared. */ uint8_t clip_distance_array_size:4; /* The size of the gl_CullDistance[] array, if declared. */ uint8_t cull_distance_array_size:4; /* Whether or not this shader ever uses textureGather() */ bool uses_texture_gather:1; /* Whether texture size, levels, or samples is queried. */ bool uses_resource_info_query:1; /** Has divergence analysis ever been run? */ bool divergence_analysis_run:1; /* Bitmask of bit-sizes used with ALU instructions. */ uint8_t bit_sizes_float; uint8_t bit_sizes_int; /* Whether the first UBO is the default uniform buffer, i.e. uniforms. */ bool first_ubo_is_default_ubo:1; /* Whether or not separate shader objects were used */ bool separate_shader:1; /** Was this shader linked with any transform feedback varyings? */ bool has_transform_feedback_varyings:1; /* Whether flrp has been lowered. */ bool flrp_lowered:1; /* Whether nir_lower_io has been called to lower derefs. * nir_variables for inputs and outputs might not be present in the IR. */ bool io_lowered:1; /** Has nir_lower_var_copies called. To avoid calling any * lowering/optimization that would introduce any copy_deref later. */ bool var_copies_lowered:1; /* Whether the shader writes memory, including transform feedback. */ bool writes_memory:1; /* Whether gl_Layer is viewport-relative */ bool layer_viewport_relative:1; /* Whether explicit barriers are used */ bool uses_control_barrier : 1; bool uses_memory_barrier : 1; /* Whether ARB_bindless_texture ops or variables are used */ bool uses_bindless : 1; /** * Shared memory types have explicit layout set. Used for * SPV_KHR_workgroup_storage_explicit_layout. */ bool shared_memory_explicit_layout:1; /** * Used for VK_KHR_zero_initialize_workgroup_memory. */ bool zero_initialize_shared_memory:1; /** * Used for ARB_compute_variable_group_size. */ bool workgroup_size_variable:1; /** * Whether the shader uses printf instructions. */ bool uses_printf:1; /** * VK_KHR_shader_maximal_reconvergence */ bool maximally_reconverges:1; /* Use ACO instead of LLVM on AMD. */ bool use_aco_amd:1; /** * Set if this shader uses legacy (DX9 or ARB assembly) math rules. * * From the ARB_fragment_program specification: * * "The following rules apply to multiplication: * * 1. * == * , for all and . * 2. +/-0.0 * = +/-0.0, at least for all that correspond to * *representable numbers (IEEE "not a number" and "infinity" * *encodings may be exceptions). * 3. +1.0 * = , for all ."" * * However, in effect this was due to DX9 semantics implying that 0*x=0 even * for inf/nan if the hardware generated them instead of float_min/max. So, * you should not have an exception for inf/nan to rule 2 above. * * One implementation of this behavior would be to flush all generated NaNs * to zero, at which point 0*Inf=Nan=0. Most DX9/ARB-asm hardware did not * generate NaNs, and the only way the GPU saw one was to possibly feed it * in as a uniform. */ bool use_legacy_math_rules; /* * Arrangement of invocations used to calculate derivatives in * compute/task/mesh shaders. From KHR_compute_shader_derivatives. */ enum gl_derivative_group derivative_group:2; union { struct { /* Which inputs are doubles */ uint64_t double_inputs; /* For AMD-specific driver-internal shaders. It replaces vertex * buffer loads with code generating VS inputs from scalar registers. * * Valid values: SI_VS_BLIT_SGPRS_POS_* */ uint8_t blit_sgprs_amd:4; /* Software TES executing as HW VS */ bool tes_agx:1; /* True if the shader writes position in window space coordinates pre-transform */ bool window_space_position:1; /** Is an edge flag input needed? */ bool needs_edge_flag:1; } vs; struct { /** The output primitive type */ enum mesa_prim output_primitive; /** The input primitive type */ enum mesa_prim input_primitive; /** The maximum number of vertices the geometry shader might write. */ uint16_t vertices_out; /** 1 .. MAX_GEOMETRY_SHADER_INVOCATIONS */ uint8_t invocations; /** The number of vertices received per input primitive (max. 6) */ uint8_t vertices_in:3; /** Whether or not this shader uses EndPrimitive */ bool uses_end_primitive:1; /** The streams used in this shaders (max. 4) */ uint8_t active_stream_mask:4; } gs; struct { bool uses_discard:1; bool uses_fbfetch_output:1; bool fbfetch_coherent:1; bool color_is_dual_source:1; /** * True if this fragment shader requires full quad invocations. */ bool require_full_quads:1; /** * Whether the derivative group must be equivalent to the quad group. */ bool quad_derivatives:1; /** * True if this fragment shader requires helper invocations. This * can be caused by the use of ALU derivative ops, texture * instructions which do implicit derivatives, the use of quad * subgroup operations or if the shader requires full quads. */ bool needs_quad_helper_invocations:1; /** * Whether any inputs are declared with the "sample" qualifier. */ bool uses_sample_qualifier:1; /** * Whether sample shading is used. */ bool uses_sample_shading:1; /** * Whether early fragment tests are enabled as defined by * ARB_shader_image_load_store. */ bool early_fragment_tests:1; /** * Defined by INTEL_conservative_rasterization. */ bool inner_coverage:1; bool post_depth_coverage:1; /** * \name ARB_fragment_coord_conventions * @{ */ bool pixel_center_integer:1; bool origin_upper_left:1; /*@}*/ bool pixel_interlock_ordered:1; bool pixel_interlock_unordered:1; bool sample_interlock_ordered:1; bool sample_interlock_unordered:1; /** * Flags whether NIR's base types on the FS color outputs should be * ignored. * * GLSL requires that fragment shader output base types match the * render target's base types for the behavior to be defined. From * the GL 4.6 spec: * * "If the values written by the fragment shader do not match the * format(s) of the corresponding color buffer(s), the result is * undefined." * * However, for NIR shaders translated from TGSI, we don't have the * output types any more, so the driver will need to do whatever * fixups are necessary to handle effectively untyped data being * output from the FS. */ bool untyped_color_outputs:1; /** gl_FragDepth layout for ARB_conservative_depth. */ enum gl_frag_depth_layout depth_layout:3; /** * Interpolation qualifiers for drivers that lowers color inputs * to system values. */ unsigned color0_interp:3; /* glsl_interp_mode */ bool color0_sample:1; bool color0_centroid:1; unsigned color1_interp:3; /* glsl_interp_mode */ bool color1_sample:1; bool color1_centroid:1; /* Bitmask of gl_advanced_blend_mode values that may be used with this * shader. */ unsigned advanced_blend_modes; /** * Defined by AMD_shader_early_and_late_fragment_tests. */ bool early_and_late_fragment_tests:1; enum gl_frag_stencil_layout stencil_front_layout:3; enum gl_frag_stencil_layout stencil_back_layout:3; } fs; struct { uint16_t workgroup_size_hint[3]; uint8_t user_data_components_amd:4; /* * If the shader might run with shared mem on top of `shared_size`. */ bool has_variable_shared_mem:1; /** * If the shader has any use of a cooperative matrix. From * SPV_KHR_cooperative_matrix. */ bool has_cooperative_matrix:1; /** * Number of bytes of shared imageblock memory per thread. Currently, * this requires that the workgroup size is 32x32x1 and that * shared_size = 0. These requirements could be lifted in the future. * However, there is no current OpenGL/Vulkan API support for * imageblocks. This is only used internally to accelerate blit/copy. */ uint8_t image_block_size_per_thread_agx; /** * pointer size is: * AddressingModelLogical: 0 (default) * AddressingModelPhysical32: 32 * AddressingModelPhysical64: 64 */ unsigned ptr_size; /** Index provided by VkPipelineShaderStageNodeCreateInfoAMDX or ShaderIndexAMDX */ uint32_t shader_index; /** Maximum size required by any output node payload array */ uint32_t node_payloads_size; /** Static workgroup count for overwriting the enqueued workgroup count. (0 if dynamic) */ uint32_t workgroup_count[3]; } cs; /* Applies to both TCS and TES. */ struct { enum tess_primitive_mode _primitive_mode; /** The number of vertices in the TCS output patch. */ uint8_t tcs_vertices_out; unsigned spacing:2; /*gl_tess_spacing*/ /** Is the vertex order counterclockwise? */ bool ccw:1; bool point_mode:1; /* Bit mask of TCS per-vertex inputs (VS outputs) that are used * with a vertex index that is equal to the invocation id. * * Not mutually exclusive with tcs_cross_invocation_inputs_read, i.e. * both input[0] and input[invocation_id] can be present. */ uint64_t tcs_same_invocation_inputs_read; /* Bit mask of TCS per-vertex inputs (VS outputs) that are used * with a vertex index that is NOT the invocation id */ uint64_t tcs_cross_invocation_inputs_read; /* Bit mask of TCS per-vertex outputs that are used * with a vertex index that is NOT the invocation id */ uint64_t tcs_cross_invocation_outputs_read; } tess; /* Applies to MESH and TASK. */ struct { /* Bit mask of MS outputs that are used * with an index that is NOT the local invocation index. */ uint64_t ms_cross_invocation_output_access; /* Dimensions of task->mesh dispatch (EmitMeshTasksEXT) * when they are known compile-time constants. * 0 means they are not known. */ uint32_t ts_mesh_dispatch_dimensions[3]; uint16_t max_vertices_out; uint16_t max_primitives_out; enum mesa_prim primitive_type; /* POINTS, LINES or TRIANGLES. */ /* TODO: remove this when we stop supporting NV_mesh_shader. */ bool nv; } mesh; }; } shader_info; #ifdef __cplusplus } #endif # 540 "../mesa/src/compiler/shader_info.h" #endif /* SHADER_INFO_H */ # 542 "../mesa/src/compiler/shader_info.h" #endif /* shader_info.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/consts_exts.h" 2 struct nir_shader_compiler_options; /** * Enable flag for each OpenGL extension. Different device drivers will * enable different extensions at runtime. */ struct gl_extensions { GLboolean dummy; /* don't remove this! */ GLboolean dummy_true; /* Set true by _mesa_init_extensions(). */ GLboolean ANGLE_texture_compression_dxt; GLboolean ARB_ES2_compatibility; GLboolean ARB_ES3_compatibility; GLboolean ARB_ES3_1_compatibility; GLboolean ARB_ES3_2_compatibility; GLboolean ARB_arrays_of_arrays; GLboolean ARB_base_instance; GLboolean ARB_bindless_texture; GLboolean ARB_blend_func_extended; GLboolean ARB_buffer_storage; GLboolean ARB_clip_control; GLboolean ARB_color_buffer_float; GLboolean ARB_compatibility; GLboolean ARB_compute_shader; GLboolean ARB_compute_variable_group_size; GLboolean ARB_conditional_render_inverted; GLboolean ARB_conservative_depth; GLboolean ARB_copy_image; GLboolean ARB_cull_distance; GLboolean ARB_depth_buffer_float; GLboolean ARB_depth_clamp; GLboolean ARB_derivative_control; GLboolean ARB_draw_buffers_blend; GLboolean ARB_draw_elements_base_vertex; GLboolean ARB_draw_indirect; GLboolean ARB_draw_instanced; GLboolean ARB_fragment_coord_conventions; GLboolean ARB_fragment_layer_viewport; GLboolean ARB_fragment_program; GLboolean ARB_fragment_program_shadow; GLboolean ARB_fragment_shader; GLboolean ARB_framebuffer_no_attachments; GLboolean ARB_framebuffer_object; GLboolean ARB_fragment_shader_interlock; GLboolean ARB_enhanced_layouts; GLboolean ARB_explicit_attrib_location; GLboolean ARB_explicit_uniform_location; GLboolean ARB_gl_spirv; GLboolean ARB_gpu_shader5; GLboolean ARB_gpu_shader_fp64; GLboolean ARB_gpu_shader_int64; GLboolean ARB_half_float_vertex; GLboolean ARB_indirect_parameters; GLboolean ARB_instanced_arrays; GLboolean ARB_internalformat_query; GLboolean ARB_internalformat_query2; GLboolean ARB_map_buffer_range; GLboolean ARB_occlusion_query; GLboolean ARB_occlusion_query2; GLboolean ARB_pipeline_statistics_query; GLboolean ARB_polygon_offset_clamp; GLboolean ARB_post_depth_coverage; GLboolean ARB_query_buffer_object; GLboolean ARB_robust_buffer_access_behavior; GLboolean ARB_sample_locations; GLboolean ARB_sample_shading; GLboolean ARB_seamless_cube_map; GLboolean ARB_shader_atomic_counter_ops; GLboolean ARB_shader_atomic_counters; GLboolean ARB_shader_ballot; GLboolean ARB_shader_bit_encoding; GLboolean ARB_shader_clock; GLboolean ARB_shader_draw_parameters; GLboolean ARB_shader_group_vote; GLboolean ARB_shader_image_load_store; GLboolean ARB_shader_image_size; GLboolean ARB_shader_precision; GLboolean ARB_shader_stencil_export; GLboolean ARB_shader_storage_buffer_object; GLboolean ARB_shader_texture_image_samples; GLboolean ARB_shader_texture_lod; GLboolean ARB_shader_viewport_layer_array; GLboolean ARB_shading_language_packing; GLboolean ARB_shading_language_420pack; GLboolean ARB_shadow; GLboolean ARB_sparse_buffer; GLboolean ARB_sparse_texture; GLboolean ARB_sparse_texture2; GLboolean ARB_sparse_texture_clamp; GLboolean ARB_stencil_texturing; GLboolean ARB_spirv_extensions; GLboolean ARB_sync; GLboolean ARB_tessellation_shader; GLboolean ARB_texture_buffer_object; GLboolean ARB_texture_buffer_object_rgb32; GLboolean ARB_texture_buffer_range; GLboolean ARB_texture_compression_bptc; GLboolean ARB_texture_compression_rgtc; GLboolean ARB_texture_cube_map_array; GLboolean ARB_texture_filter_anisotropic; GLboolean ARB_texture_filter_minmax; GLboolean ARB_texture_float; GLboolean ARB_texture_gather; GLboolean ARB_texture_mirror_clamp_to_edge; GLboolean ARB_texture_multisample; GLboolean ARB_texture_non_power_of_two; GLboolean ARB_texture_stencil8; GLboolean ARB_texture_query_levels; GLboolean ARB_texture_query_lod; GLboolean ARB_texture_rg; GLboolean ARB_texture_rgb10_a2ui; GLboolean ARB_texture_view; GLboolean ARB_timer_query; GLboolean ARB_transform_feedback2; GLboolean ARB_transform_feedback3; GLboolean ARB_transform_feedback_instanced; GLboolean ARB_transform_feedback_overflow_query; GLboolean ARB_uniform_buffer_object; GLboolean ARB_vertex_attrib_64bit; GLboolean ARB_vertex_program; GLboolean ARB_vertex_shader; GLboolean ARB_vertex_type_10f_11f_11f_rev; GLboolean ARB_vertex_type_2_10_10_10_rev; GLboolean ARB_viewport_array; GLboolean EXT_blend_equation_separate; GLboolean EXT_color_buffer_float; GLboolean EXT_color_buffer_half_float; GLboolean EXT_demote_to_helper_invocation; GLboolean EXT_depth_bounds_test; GLboolean EXT_disjoint_timer_query; GLboolean EXT_draw_buffers2; GLboolean EXT_EGL_image_storage; GLboolean EXT_float_blend; GLboolean EXT_framebuffer_multisample; GLboolean EXT_framebuffer_multisample_blit_scaled; GLboolean EXT_framebuffer_sRGB; GLboolean EXT_gpu_program_parameters; GLboolean EXT_gpu_shader4; GLboolean EXT_memory_object; GLboolean EXT_memory_object_fd; GLboolean EXT_memory_object_win32; GLboolean EXT_multisampled_render_to_texture; GLboolean EXT_packed_float; GLboolean EXT_provoking_vertex; GLboolean EXT_render_snorm; GLboolean EXT_semaphore; GLboolean EXT_semaphore_fd; GLboolean EXT_semaphore_win32; GLboolean EXT_shader_image_load_formatted; GLboolean EXT_shader_image_load_store; GLboolean EXT_shader_integer_mix; GLboolean EXT_shader_samples_identical; GLboolean EXT_sRGB; GLboolean EXT_stencil_two_side; GLboolean EXT_shadow_samplers; GLboolean EXT_texture_array; GLboolean EXT_texture_buffer_object; GLboolean EXT_texture_compression_astc_decode_mode; GLboolean EXT_texture_compression_latc; GLboolean EXT_texture_compression_s3tc; GLboolean EXT_texture_compression_s3tc_srgb; GLboolean EXT_texture_env_dot3; GLboolean EXT_texture_filter_anisotropic; GLboolean EXT_texture_filter_minmax; GLboolean EXT_texture_integer; GLboolean EXT_texture_mirror_clamp; GLboolean EXT_texture_norm16; GLboolean EXT_texture_shadow_lod; GLboolean EXT_texture_shared_exponent; GLboolean EXT_texture_snorm; GLboolean EXT_texture_sRGB; GLboolean EXT_texture_sRGB_R8; GLboolean EXT_texture_sRGB_RG8; GLboolean EXT_texture_sRGB_decode; GLboolean EXT_texture_swizzle; GLboolean EXT_texture_type_2_10_10_10_REV; GLboolean EXT_transform_feedback; GLboolean EXT_timer_query; GLboolean EXT_vertex_array_bgra; GLboolean EXT_window_rectangles; GLboolean OES_copy_image; GLboolean OES_primitive_bounding_box; GLboolean OES_sample_variables; GLboolean OES_standard_derivatives; GLboolean OES_texture_buffer; GLboolean OES_texture_cube_map_array; GLboolean OES_texture_view; GLboolean OES_viewport_array; GLboolean OVR_multiview; GLboolean OVR_multiview2; GLboolean OVR_multiview_multisampled_render_to_texture; /* vendor extensions */ GLboolean AMD_compressed_ATC_texture; GLboolean AMD_framebuffer_multisample_advanced; GLboolean AMD_depth_clamp_separate; GLboolean AMD_gpu_shader_half_float; GLboolean AMD_performance_monitor; GLboolean AMD_pinned_memory; GLboolean AMD_seamless_cubemap_per_texture; GLboolean AMD_vertex_shader_layer; GLboolean AMD_vertex_shader_viewport_index; GLboolean ANDROID_extension_pack_es31a; GLboolean ARM_shader_framebuffer_fetch_depth_stencil; GLboolean ATI_meminfo; GLboolean ATI_texture_compression_3dc; GLboolean ATI_texture_mirror_once; GLboolean ATI_texture_env_combine3; GLboolean ATI_fragment_shader; GLboolean GREMEDY_string_marker; GLboolean INTEL_blackhole_render; GLboolean INTEL_conservative_rasterization; GLboolean INTEL_performance_query; GLboolean INTEL_shader_atomic_float_minmax; GLboolean INTEL_shader_integer_functions2; GLboolean KHR_blend_equation_advanced; GLboolean KHR_blend_equation_advanced_coherent; GLboolean KHR_robustness; GLboolean KHR_shader_subgroup; GLboolean KHR_texture_compression_astc_hdr; GLboolean KHR_texture_compression_astc_ldr; GLboolean KHR_texture_compression_astc_sliced_3d; GLboolean MESA_framebuffer_flip_y; GLboolean MESA_texture_const_bandwidth; GLboolean MESA_pack_invert; GLboolean MESA_tile_raster_order; GLboolean EXT_shader_framebuffer_fetch; GLboolean EXT_shader_framebuffer_fetch_non_coherent; GLboolean MESA_shader_integer_functions; GLboolean MESA_window_pos; GLboolean MESA_ycbcr_texture; GLboolean NV_alpha_to_coverage_dither_control; GLboolean NV_compute_shader_derivatives; GLboolean NV_conditional_render; GLboolean NV_copy_depth_to_color; GLboolean NV_copy_image; GLboolean NV_fill_rectangle; GLboolean NV_fog_distance; GLboolean NV_primitive_restart; GLboolean NV_shader_atomic_float; GLboolean NV_shader_atomic_int64; GLboolean NV_texture_barrier; GLboolean NV_texture_env_combine4; GLboolean NV_texture_rectangle; GLboolean NV_vdpau_interop; GLboolean NV_conservative_raster; GLboolean NV_conservative_raster_dilate; GLboolean NV_conservative_raster_pre_snap_triangles; GLboolean NV_conservative_raster_pre_snap; GLboolean NV_viewport_array2; GLboolean NV_viewport_swizzle; GLboolean NVX_gpu_memory_info; GLboolean TDFX_texture_compression_FXT1; GLboolean OES_EGL_image; GLboolean OES_draw_texture; GLboolean OES_depth_texture_cube_map; GLboolean OES_EGL_image_external; GLboolean OES_texture_3D; GLboolean OES_texture_float; GLboolean OES_texture_float_linear; GLboolean OES_texture_half_float; GLboolean OES_texture_half_float_linear; GLboolean OES_compressed_ETC1_RGB8_texture; GLboolean OES_geometry_shader; GLboolean OES_texture_compression_astc; GLboolean extension_sentinel; /** The extension string */ const GLubyte *String; /** Number of supported extensions */ GLuint Count; /** * The context version which extension helper functions compare against. * By default, the value is equal to ctx->Version. This changes to ~0 * while meta is in progress. */ GLubyte Version; }; /** * Compiler options for a single GLSL shaders type */ struct gl_shader_compiler_options { /** Driver-selectable options: */ GLboolean EmitNoCont; /**< Emit CONT opcode? */ GLboolean EmitNoMainReturn; /**< Emit CONT/RET opcodes? */ GLbitfield LowerBuiltinVariablesXfb; /**< Which builtin variables should * be lowered for transform feedback **/ /** * If we can lower the precision of variables based on precision * qualifiers */ GLboolean LowerPrecisionFloat16; GLboolean LowerPrecisionInt16; GLboolean LowerPrecisionDerivatives; GLboolean LowerPrecisionFloat16Uniforms; /** * This enables lowering of 16b constants. Some drivers may not * to lower constants to 16b (ie. if the hw can do automatic * narrowing on constant load) */ GLboolean LowerPrecisionConstants; /** * \name Forms of indirect addressing the driver cannot do. */ /*@{*/ GLboolean EmitNoIndirectTemp; /**< No indirect addressing of temps */ GLboolean EmitNoIndirectUniform; /**< No indirect addressing of constants */ /*@}*/ GLuint MaxIfDepth; /**< Maximum nested IF blocks */ /** * Optimize code for array of structures backends. * * This is a proxy for: * - preferring DP4 instructions (rather than MUL/MAD) for * matrix * vector operations, such as position transformation. */ GLboolean OptimizeForAOS; /** Clamp UBO and SSBO block indices so they don't go out-of-bounds. */ GLboolean ClampBlockIndicesToArrayBounds; /** (driconf) Force gl_Position to be considered invariant */ GLboolean PositionAlwaysInvariant; /** (driconf) Force gl_Position to be considered precise */ GLboolean PositionAlwaysPrecise; const struct nir_shader_compiler_options *NirOptions; }; /** * Precision info for shader datatypes. See glGetShaderPrecisionFormat(). */ struct gl_precision { GLushort RangeMin; /**< min value exponent */ GLushort RangeMax; /**< max value exponent */ GLushort Precision; /**< number of mantissa bits */ }; /** * Limits for vertex, geometry and fragment programs/shaders. */ struct gl_program_constants { /* logical limits */ GLuint MaxInstructions; GLuint MaxAluInstructions; GLuint MaxTexInstructions; GLuint MaxTexIndirections; GLuint MaxAttribs; GLuint MaxTemps; GLuint MaxAddressRegs; GLuint MaxAddressOffset; /**< [-MaxAddressOffset, MaxAddressOffset-1] */ GLuint MaxParameters; GLuint MaxLocalParams; GLuint MaxEnvParams; /* For shaders */ GLuint MaxUniformComponents; /**< Usually == MaxParameters * 4 */ /** * \name Per-stage input / output limits * * Previous to OpenGL 3.2, the intrastage data limits were advertised with * a single value: GL_MAX_VARYING_COMPONENTS (GL_MAX_VARYING_VECTORS in * ES). This is stored as \c gl_constants::MaxVarying. * * Starting with OpenGL 3.2, the limits are advertised with per-stage * variables. Each stage as a certain number of outputs that it can feed * to the next stage and a certain number inputs that it can consume from * the previous stage. * * Vertex shader inputs do not participate this in this accounting. * These are tracked exclusively by \c gl_program_constants::MaxAttribs. * * Fragment shader outputs do not participate this in this accounting. * These are tracked exclusively by \c gl_constants::MaxDrawBuffers. */ /*@{*/ GLuint MaxInputComponents; GLuint MaxOutputComponents; /*@}*/ /* ES 2.0 and GL_ARB_ES2_compatibility */ struct gl_precision LowFloat, MediumFloat, HighFloat; struct gl_precision LowInt, MediumInt, HighInt; /* GL_ARB_uniform_buffer_object */ GLuint MaxUniformBlocks; uint64_t MaxCombinedUniformComponents; GLuint MaxTextureImageUnits; /* GL_ARB_shader_atomic_counters */ GLuint MaxAtomicBuffers; GLuint MaxAtomicCounters; /* GL_ARB_shader_image_load_store */ GLuint MaxImageUniforms; /* GL_ARB_shader_storage_buffer_object */ GLuint MaxShaderStorageBlocks; }; /** * Constants which may be overridden by device driver during context creation * but are never changed after that. */ struct gl_constants { /** * Bitmask of valid primitive types supported by the driver, */ GLbitfield DriverSupportedPrimMask; GLuint MaxTextureMbytes; /**< Max memory per image, in MB */ GLuint MaxTextureSize; /**< Max 1D/2D texture size, in pixels*/ GLuint Max3DTextureLevels; /**< Max mipmap levels for 3D textures */ GLuint MaxCubeTextureLevels; /**< Max mipmap levels for cube textures */ GLuint MaxArrayTextureLayers; /**< Max layers in array textures */ GLuint MaxTextureRectSize; /**< Max rectangle texture size, in pixes */ GLuint MaxTextureCoordUnits; GLuint MaxCombinedTextureImageUnits; GLuint MaxTextureUnits; /**< = MIN(CoordUnits, FragmentProgram.ImageUnits) */ GLfloat MaxTextureMaxAnisotropy; /**< GL_EXT_texture_filter_anisotropic */ GLfloat MaxTextureLodBias; /**< GL_EXT_texture_lod_bias */ GLuint MaxTextureBufferSize; /**< GL_ARB_texture_buffer_object */ GLuint TextureBufferOffsetAlignment; /**< GL_ARB_texture_buffer_range */ GLuint MaxArrayLockSize; GLint SubPixelBits; GLfloat MinPointSize, MaxPointSize; /**< aliased */ GLfloat MinPointSizeAA, MaxPointSizeAA; /**< antialiased */ GLfloat PointSizeGranularity; GLfloat MinLineWidth, MaxLineWidth; /**< aliased */ GLfloat MinLineWidthAA, MaxLineWidthAA; /**< antialiased */ GLfloat LineWidthGranularity; GLuint MaxClipPlanes; GLuint MaxLights; GLfloat MaxShininess; /**< GL_NV_light_max_exponent */ GLfloat MaxSpotExponent; /**< GL_NV_light_max_exponent */ GLuint MaxViewportWidth, MaxViewportHeight; GLuint MaxViewports; /**< GL_ARB_viewport_array */ GLuint ViewportSubpixelBits; /**< GL_ARB_viewport_array */ struct { GLfloat Min; GLfloat Max; } ViewportBounds; /**< GL_ARB_viewport_array */ GLuint MaxWindowRectangles; /**< GL_EXT_window_rectangles */ struct gl_program_constants Program[MESA_SHADER_STAGES]; GLuint MaxProgramMatrices; GLuint MaxProgramMatrixStackDepth; struct { GLuint SamplesPassed; GLuint TimeElapsed; GLuint Timestamp; GLuint PrimitivesGenerated; GLuint PrimitivesWritten; GLuint VerticesSubmitted; GLuint PrimitivesSubmitted; GLuint VsInvocations; GLuint TessPatches; GLuint TessInvocations; GLuint GsInvocations; GLuint GsPrimitives; GLuint FsInvocations; GLuint ComputeInvocations; GLuint ClInPrimitives; GLuint ClOutPrimitives; } QueryCounterBits; GLuint MaxDrawBuffers; /**< GL_ARB_draw_buffers */ GLuint MaxColorAttachments; /**< GL_EXT_framebuffer_object */ GLuint MaxRenderbufferSize; /**< GL_EXT_framebuffer_object */ GLuint MaxSamples; /**< GL_ARB_framebuffer_object */ /** * GL_ARB_framebuffer_no_attachments */ GLuint MaxFramebufferWidth; GLuint MaxFramebufferHeight; GLuint MaxFramebufferLayers; GLuint MaxFramebufferSamples; /** Number of varying vectors between any two shader stages. */ GLuint MaxVarying; /** @{ * GL_ARB_uniform_buffer_object */ GLuint MaxCombinedUniformBlocks; GLuint MaxUniformBufferBindings; GLuint MaxUniformBlockSize; GLuint UniformBufferOffsetAlignment; /** @} */ /** @{ * GL_ARB_shader_storage_buffer_object */ GLuint MaxCombinedShaderStorageBlocks; GLuint MaxShaderStorageBufferBindings; GLuint MaxShaderStorageBlockSize; GLuint ShaderStorageBufferOffsetAlignment; /** @} */ /** * GL_ARB_explicit_uniform_location */ GLuint MaxUserAssignableUniformLocations; /** geometry shader */ GLuint MaxGeometryOutputVertices; GLuint MaxGeometryTotalOutputComponents; GLuint MaxGeometryShaderInvocations; GLuint GLSLVersion; /**< Desktop GLSL version supported (ex: 120 = 1.20) */ GLuint GLSLVersionCompat; /**< Desktop compat GLSL version supported */ /** * Changes default GLSL extension behavior from "error" to "warn". It's out * of spec, but it can make some apps work that otherwise wouldn't. */ GLboolean ForceGLSLExtensionsWarn; /** * Force all shaders to behave as if they were declared with the * compatibility token. */ GLboolean ForceCompatShaders; /** * If non-zero, forces GLSL shaders to behave as if they began * with "#version ForceGLSLVersion". */ GLuint ForceGLSLVersion; /** * Allow GLSL #extension directives in the middle of shaders. */ GLboolean AllowGLSLExtensionDirectiveMidShader; /** * Allow a subset of GLSL 1.20 in GLSL 1.10 as needed by SPECviewperf13. */ GLboolean AllowGLSL120SubsetIn110; /** * Allow builtins as part of constant expressions. This was not allowed * until GLSL 1.20 this allows it everywhere. */ GLboolean AllowGLSLBuiltinConstantExpression; /** * Allow some relaxation of GLSL ES shader restrictions. This encompasses * a number of relaxations to the ES shader rules. */ GLboolean AllowGLSLRelaxedES; /** * Allow GLSL built-in variables to be redeclared verbatim */ GLboolean AllowGLSLBuiltinVariableRedeclaration; /** * Allow GLSL interpolation qualifier mismatch across shader stages. */ GLboolean AllowGLSLCrossStageInterpolationMismatch; /** * Allow creating a higher compat profile (version 3.1+) for apps that * request it. Be careful when adding that driconf option because some * features are unimplemented and might not work correctly. */ GLboolean AllowHigherCompatVersion; /** * Allow GLSL shaders with the compatibility version directive * in non-compatibility profiles. (for shader-db) */ GLboolean AllowGLSLCompatShaders; /** * Allow extra tokens at end of preprocessor directives. The CTS now tests * to make sure these are not allowed. However, previously drivers would * allow them to exist and just issue a warning so some old applications * depend on this. */ GLboolean AllowExtraPPTokens; /** * The spec forbids a shader to "statically write both gl_ClipVertex * and gl_ClipDistance". * This option adds a tolerance for shader that statically writes to * both but at least one of the write can be removed by a dead code * elimination pass. */ GLboolean DoDCEBeforeClipCullAnalysis; /** * Force computing the absolute value for sqrt() and inversesqrt() to follow * D3D9 when apps rely on this behaviour. */ GLboolean ForceGLSLAbsSqrt; /** * Forces the GLSL compiler to ignore writes to readonly vars rather than * throwing an error. */ GLboolean GLSLIgnoreWriteToReadonlyVar; /** * Types of variable to default initialized to zero. Supported values are: * - 0: no zero initialization * - 1: all shader variables and gl_FragColor are initialiazed to 0 * - 2: same as 1, but shader out variables are *not* initialized, while * function out variables are now initialized. */ GLchar GLSLZeroInit; /** * Treat integer textures using GL_LINEAR filters as GL_NEAREST. */ GLboolean ForceIntegerTexNearest; /** * Treat 32-bit floating-point textures using GL_LINEAR filters as * GL_NEAREST. */ GLboolean ForceFloat32TexNearest; /** * Does the driver support real 32-bit integers? (Otherwise, integers are * simulated via floats.) */ GLboolean NativeIntegers; /** * If the driver supports real 32-bit integers, what integer value should be * used for boolean true in uniform uploads? (Usually 1 or ~0.) */ GLuint UniformBooleanTrue; /** * Maximum amount of time, measured in nanseconds, that the server can wait. */ GLuint64 MaxServerWaitTimeout; /** GL_EXT_provoking_vertex */ GLboolean QuadsFollowProvokingVertexConvention; /** GL_ARB_viewport_array */ GLenum16 LayerAndVPIndexProvokingVertex; /** OpenGL version 3.0 */ GLbitfield ContextFlags; /**< Ex: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT */ /** OpenGL version 3.2 */ GLbitfield ProfileMask; /**< Mask of CONTEXT_x_PROFILE_BIT */ /** OpenGL version 4.4 */ GLuint MaxVertexAttribStride; /** GL_EXT_transform_feedback */ GLuint MaxTransformFeedbackBuffers; GLuint MaxTransformFeedbackSeparateComponents; GLuint MaxTransformFeedbackInterleavedComponents; GLuint MaxVertexStreams; /** GL_EXT_gpu_shader4 */ GLint MinProgramTexelOffset, MaxProgramTexelOffset; /** GL_ARB_texture_gather */ GLuint MinProgramTextureGatherOffset; GLuint MaxProgramTextureGatherOffset; GLuint MaxProgramTextureGatherComponents; /* GL_ARB_robustness */ GLenum16 ResetStrategy; /* GL_KHR_robustness */ GLboolean RobustAccess; /* GL_ARB_blend_func_extended */ GLuint MaxDualSourceDrawBuffers; /** * For drivers which can do a better job at eliminating unused uniforms * than the GLSL compiler. * * XXX Remove these as soon as a better solution is available. */ GLboolean GLSLSkipStrictMaxUniformLimitCheck; GLboolean GLSLHasHalfFloatPacking; /** * Whether gl_FragCoord, gl_PointCoord and gl_FrontFacing * are system values. **/ bool GLSLFragCoordIsSysVal; bool GLSLPointCoordIsSysVal; bool GLSLFrontFacingIsSysVal; /** * Whether to call lower_const_arrays_to_uniforms() during linking. */ bool GLSLLowerConstArrays; /** * True if gl_TessLevelInner/Outer[] in the TES should be inputs * (otherwise, they're system values). */ bool GLSLTessLevelsAsInputs; /** GL_ARB_map_buffer_alignment */ GLuint MinMapBufferAlignment; /** * Disable varying packing. This is out of spec, but potentially useful * for older platforms that supports a limited number of texture * indirections--on these platforms, unpacking the varyings in the fragment * shader increases the number of texture indirections by 1, which might * make some shaders not executable at all. * * Drivers that support transform feedback must set this value to GL_FALSE. */ GLboolean DisableVaryingPacking; /** * Disable varying packing if used for transform feedback. This is needed * for some drivers (e.g. Panfrost) where transform feedback requires * unpacked varyings. * * This variable is mutually exlusive with DisableVaryingPacking. */ GLboolean DisableTransformFeedbackPacking; /** * Disable the glsl optimisation that resizes uniform arrays. */ bool DisableUniformArrayResize; /** * Alias extension e.g. GL_ATI_shader_texture_lod to GL_ARB_shader_texture_lod. */ char *AliasShaderExtension; /** * Allow fs-only bias argument in vertex shaders. */ GLboolean AllowVertexTextureBias; /** * Align varyings to POT in a slot * * Drivers that prefer varyings to be aligned to POT must set this value to GL_TRUE */ GLboolean PreferPOTAlignedVaryings; /** * UBOs and SSBOs can be packed tightly by the OpenGL implementation when * layout is set as shared (the default) or packed. However most Mesa drivers * just use STD140 for these layouts. This flag allows drivers to use STD430 * for packed and shared layouts which allows arrays to be packed more * tightly. */ bool UseSTD430AsDefaultPacking; /** * Should meaningful names be generated for compiler temporary variables? * * Generally, it is not useful to have the compiler generate "meaningful" * names for temporary variables that it creates. This can, however, be a * useful debugging aid. In Mesa debug builds or release builds when * MESA_GLSL is set at run-time, meaningful names will be generated. * Drivers can also force names to be generated by setting this field. * For example, the i965 driver may set it when INTEL_DEBUG=vs (to dump * vertex shader assembly) is set at run-time. */ bool GenerateTemporaryNames; /* * Maximum value supported for an index in DrawElements and friends. * * This must be at least (1ull<<24)-1. The default value is * (1ull<<32)-1. * * \since ES 3.0 or GL_ARB_ES3_compatibility * \sa _mesa_init_constants */ GLuint64 MaxElementIndex; /** * Disable interpretation of line continuations (lines ending with a * backslash character ('\') in GLSL source. */ GLboolean DisableGLSLLineContinuations; /** GL_ARB_texture_multisample */ GLint MaxColorTextureSamples; GLint MaxDepthTextureSamples; GLint MaxIntegerSamples; /** GL_AMD_framebuffer_multisample_advanced */ GLint MaxColorFramebufferSamples; GLint MaxColorFramebufferStorageSamples; GLint MaxDepthStencilFramebufferSamples; /* An array of supported MSAA modes allowing different sample * counts per attachment type. */ struct { GLint NumColorSamples; GLint NumColorStorageSamples; GLint NumDepthStencilSamples; } SupportedMultisampleModes[40]; GLint NumSupportedMultisampleModes; /** GL_ARB_shader_atomic_counters */ GLuint MaxAtomicBufferBindings; GLuint MaxAtomicBufferSize; GLuint MaxCombinedAtomicBuffers; GLuint MaxCombinedAtomicCounters; /** GL_ARB_vertex_attrib_binding */ GLint MaxVertexAttribRelativeOffset; GLint MaxVertexAttribBindings; /* GL_ARB_shader_image_load_store */ GLuint MaxImageUnits; GLuint MaxCombinedShaderOutputResources; GLuint MaxImageSamples; GLuint MaxCombinedImageUniforms; /** GL_ARB_compute_shader */ GLuint MaxComputeWorkGroupCount[3]; /* Array of x, y, z dimensions */ GLuint MaxComputeWorkGroupSize[3]; /* Array of x, y, z dimensions */ GLuint MaxComputeWorkGroupInvocations; GLuint MaxComputeSharedMemorySize; /** GL_ARB_compute_variable_group_size */ GLuint MaxComputeVariableGroupSize[3]; /* Array of x, y, z dimensions */ GLuint MaxComputeVariableGroupInvocations; /** GL_ARB_gpu_shader5 */ GLfloat MinFragmentInterpolationOffset; GLfloat MaxFragmentInterpolationOffset; GLboolean FakeSWMSAA; /** GL_KHR_context_flush_control */ GLenum16 ContextReleaseBehavior; struct gl_shader_compiler_options ShaderCompilerOptions[MESA_SHADER_STAGES]; /** GL_ARB_tessellation_shader */ GLuint MaxPatchVertices; GLuint MaxTessGenLevel; GLuint MaxTessPatchComponents; GLuint MaxTessControlTotalOutputComponents; bool PrimitiveRestartForPatches; /** GL_OES_primitive_bounding_box */ bool NoPrimitiveBoundingBoxOutput; /** GL_ARB_sparse_buffer */ GLuint SparseBufferPageSize; /** Used as an input for sha1 generation in the on-disk shader cache */ unsigned char *dri_config_options_sha1; /** When drivers are OK with mapped buffers during draw and other calls. */ bool AllowMappedBuffersDuringExecution; /** Override GL_MAP_UNSYNCHRONIZED_BIT */ bool ForceMapBufferSynchronized; /** GL_ARB_get_program_binary */ GLuint NumProgramBinaryFormats; /** GL_ARB_gl_spirv */ GLuint NumShaderBinaryFormats; /** GL_NV_conservative_raster */ GLuint MaxSubpixelPrecisionBiasBits; /** GL_NV_conservative_raster_dilate */ GLfloat ConservativeRasterDilateRange[2]; GLfloat ConservativeRasterDilateGranularity; /** Is the drivers uniform storage packed or padded to 16 bytes. */ bool PackedDriverUniformStorage; bool HasFBFetch; bool PointSizeFixed; /** Wether or not glBitmap uses red textures rather than alpha */ bool BitmapUsesRed; /** Whether the vertex buffer offset is a signed 32-bit integer. */ bool VertexBufferOffsetIsInt32; /** Whether out-of-order draw (Begin/End) optimizations are allowed. */ bool AllowDrawOutOfOrder; /** Whether to force the fast path for binding VAOs. It has much lower * overhead due to not spending CPU cycles on trying to find interleaved * vertex attribs and binding them. */ bool UseVAOFastPath; /** Whether the driver can support primitive restart with a fixed index. * This is essentially a subset of NV_primitive_restart with enough support * to be able to enable GLES 3.1. Some hardware can support this but not the * full NV extension with arbitrary restart indices. */ bool PrimitiveRestartFixedIndex; /** GL_ARB_spirv_extensions */ struct spirv_supported_extensions *SpirVExtensions; char *VendorOverride; char *RendererOverride; /** Buffer size used to upload vertices from glBegin/glEnd. */ unsigned glBeginEndBufferSize; /** Whether the driver doesn't want x/y/width/height clipped based on src size * when doing a copy texture operation (eg: may want out-of-bounds reads that * produce 0 instead of leaving the texture content undefined). */ bool NoClippingOnCopyTex; /** * Force glthread to always return GL_FRAMEBUFFER_COMPLETE to prevent * synchronization. Used for apps that call it every frame or multiple times * a frame, but always getting framebuffer completeness. */ bool GLThreadNopCheckFramebufferStatus; /** GL_ARB_sparse_texture */ GLuint MaxSparseTextureSize; GLuint MaxSparse3DTextureSize; GLuint MaxSparseArrayTextureLayers; bool SparseTextureFullArrayCubeMipmaps; /** Use hardware accelerated GL_SELECT */ bool HardwareAcceleratedSelect; /** Allow GLThread to convert glBuffer */ bool AllowGLThreadBufferSubDataOpt; /** Whether pipe_context::draw_vertex_state is supported. */ bool HasDrawVertexState; /** GL_KHR_shader_subgroup */ GLuint ShaderSubgroupSize; GLuint ShaderSubgroupSupportedStages; GLuint ShaderSubgroupSupportedFeatures; bool ShaderSubgroupQuadAllStages; }; #endif # 1015 "../mesa/src/mesa/main/consts_exts.h" #endif /* consts_exts.h expanded by -frewrite-includes */ # 44 "../mesa/src/mesa/main/mtypes.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* shader_types.h expanded by -frewrite-includes */ #include "main/shader_types.h" #else /* shader_types.h expanded by -frewrite-includes */ # 44 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/main/shader_types.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file shader_types.h * All the GL shader/program types. */ #ifndef SHADER_TYPES_H #define SHADER_TYPES_H #if 0 /* expanded by -frewrite-includes */ #include "main/config.h" /* for MAX_FEEDBACK_BUFFERS */ #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/shader_types.h" # 35 "../mesa/src/mesa/main/shader_types.h" #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/shader_types.h" # 36 "../mesa/src/mesa/main/shader_types.h" #if 0 /* expanded by -frewrite-includes */ #include "main/menums.h" #endif /* expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/shader_types.h" # 37 "../mesa/src/mesa/main/shader_types.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* prog_parameter.h expanded by -frewrite-includes */ #include "program/prog_parameter.h" #else /* prog_parameter.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/shader_types.h" # 1 "../mesa/src/mesa/program/prog_parameter.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file prog_parameter.c * Program parameter lists and functions. * \author Brian Paul */ #ifndef PROG_PARAMETER_H #define PROG_PARAMETER_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/program/prog_parameter.h" # 35 "../mesa/src/mesa/program/prog_parameter.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/program/prog_parameter.h" # 36 "../mesa/src/mesa/program/prog_parameter.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* prog_statevars.h expanded by -frewrite-includes */ #include "prog_statevars.h" #else /* prog_statevars.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/program/prog_parameter.h" # 1 "../mesa/src/mesa/program/prog_statevars.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef PROG_STATEVARS_H #define PROG_STATEVARS_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/mesa/program/prog_statevars.h" # 30 "../mesa/src/mesa/program/prog_statevars.h" #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_enums.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/mesa/program/prog_statevars.h" # 31 "../mesa/src/mesa/program/prog_statevars.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/mesa/program/prog_statevars.h" # 32 "../mesa/src/mesa/program/prog_statevars.h" #ifdef __cplusplus extern "C" { #endif # 37 "../mesa/src/mesa/program/prog_statevars.h" struct gl_context; struct gl_constants; struct gl_program_parameter_list; /** * Used for describing GL state referenced from inside ARB vertex and * fragment programs. * A string such as "state.light[0].ambient" gets translated into a * sequence of tokens such as [ STATE_LIGHT, 0, STATE_AMBIENT ]. * * For state that's an array, like STATE_CLIPPLANE, the 2nd token [1] should * always be the array index. */ typedef enum gl_state_index_ { STATE_NOT_STATE_VAR = 0, STATE_MATERIAL, STATE_LIGHT, /* One gl_light attribute. */ STATE_LIGHT_ARRAY, /* Multiple gl_light attributes loaded at once. */ STATE_LIGHT_ATTENUATION_ARRAY, STATE_LIGHTMODEL_AMBIENT, STATE_LIGHTMODEL_SCENECOLOR, STATE_LIGHTPROD, STATE_LIGHTPROD_ARRAY_FRONT, /* multiple lights, only front faces */ STATE_LIGHTPROD_ARRAY_BACK, /* multiple lights, only back faces */ STATE_LIGHTPROD_ARRAY_TWOSIDE, /* multiple lights, both sides */ STATE_TEXGEN, STATE_TEXENV_COLOR, STATE_FOG_COLOR, STATE_FOG_PARAMS, STATE_CLIPPLANE, STATE_POINT_SIZE, STATE_POINT_ATTENUATION, STATE_MODELVIEW_MATRIX, STATE_MODELVIEW_MATRIX_INVERSE, STATE_MODELVIEW_MATRIX_TRANSPOSE, STATE_MODELVIEW_MATRIX_INVTRANS, STATE_PROJECTION_MATRIX, STATE_PROJECTION_MATRIX_INVERSE, STATE_PROJECTION_MATRIX_TRANSPOSE, STATE_PROJECTION_MATRIX_INVTRANS, STATE_MVP_MATRIX, STATE_MVP_MATRIX_INVERSE, STATE_MVP_MATRIX_TRANSPOSE, STATE_MVP_MATRIX_INVTRANS, STATE_TEXTURE_MATRIX, STATE_TEXTURE_MATRIX_INVERSE, STATE_TEXTURE_MATRIX_TRANSPOSE, STATE_TEXTURE_MATRIX_INVTRANS, STATE_PROGRAM_MATRIX, STATE_PROGRAM_MATRIX_INVERSE, STATE_PROGRAM_MATRIX_TRANSPOSE, STATE_PROGRAM_MATRIX_INVTRANS, STATE_NUM_SAMPLES, /* An integer, not a float like the other state vars */ STATE_DEPTH_RANGE, STATE_FRAGMENT_PROGRAM_ENV, STATE_FRAGMENT_PROGRAM_ENV_ARRAY, STATE_FRAGMENT_PROGRAM_LOCAL, STATE_FRAGMENT_PROGRAM_LOCAL_ARRAY, STATE_VERTEX_PROGRAM_ENV, STATE_VERTEX_PROGRAM_ENV_ARRAY, STATE_VERTEX_PROGRAM_LOCAL, STATE_VERTEX_PROGRAM_LOCAL_ARRAY, STATE_NORMAL_SCALE_EYESPACE, STATE_CURRENT_ATTRIB, /* ctx->Current vertex attrib value */ STATE_CURRENT_ATTRIB_MAYBE_VP_CLAMPED, /* ctx->Current vertex attrib value after passthrough vertex processing */ STATE_NORMAL_SCALE, STATE_FOG_PARAMS_OPTIMIZED, /* for faster fog calc */ STATE_POINT_SIZE_CLAMPED, /* includes implementation dependent size clamp */ STATE_LIGHT_SPOT_DIR_NORMALIZED, /* pre-normalized spot dir */ STATE_LIGHT_POSITION, /* object vs eye space */ STATE_LIGHT_POSITION_ARRAY, STATE_LIGHT_POSITION_NORMALIZED, /* object vs eye space */ STATE_LIGHT_POSITION_NORMALIZED_ARRAY, STATE_LIGHT_HALF_VECTOR, /* object vs eye space */ STATE_PT_SCALE, /**< Pixel transfer RGBA scale */ STATE_PT_BIAS, /**< Pixel transfer RGBA bias */ STATE_FB_SIZE, /**< (width-1, height-1, 0, 0) */ STATE_FB_WPOS_Y_TRANSFORM, /**< (1, 0, -1, height) if a FBO is bound, (-1, height, 1, 0) otherwise */ STATE_FB_PNTC_Y_TRANSFORM, /**< (1, 0, 0, 0) if point origin is upper left, (-1, 1, 0, 0) otherwise */ STATE_TCS_PATCH_VERTICES_IN, /**< gl_PatchVerticesIn for TCS (integer) */ STATE_TES_PATCH_VERTICES_IN, /**< gl_PatchVerticesIn for TES (integer) */ /** * A single enum gl_blend_support_qualifier value representing the * currently active advanced blending equation, or zero if disabled. */ STATE_ADVANCED_BLENDING_MODE, STATE_ALPHA_REF, /* alpha-test reference value */ STATE_CLIP_INTERNAL, /* similar to STATE_CLIPPLANE, but in clip-space */ STATE_ATOMIC_COUNTER_OFFSET, /* the byte offset to add to atomic counter bindings */ STATE_INTERNAL_DRIVER, /* first available state index for drivers (must be last) */ /** All enums below don't occur in state[0]. **/ /* These 8 enums must be in the same order as the gl_light union members, * which should also match the order of gl_LightSource members. */ STATE_AMBIENT, STATE_DIFFUSE, STATE_SPECULAR, STATE_POSITION, /**< xyzw = position */ STATE_HALF_VECTOR, STATE_SPOT_DIRECTION, /**< xyz = direction, w = cos(cutoff) */ STATE_ATTENUATION, /**< xyz = attenuation, w = spot exponent */ STATE_SPOT_CUTOFF, /**< x = cutoff, yzw = undefined */ STATE_EMISSION, STATE_SHININESS, /* These 8 enums must be in the same order as the memory layout of * gl_fixedfunc_texture_unit::EyePlane/ObjectPlane. */ STATE_TEXGEN_EYE_S, STATE_TEXGEN_EYE_T, STATE_TEXGEN_EYE_R, STATE_TEXGEN_EYE_Q, STATE_TEXGEN_OBJECT_S, STATE_TEXGEN_OBJECT_T, STATE_TEXGEN_OBJECT_R, STATE_TEXGEN_OBJECT_Q, } gl_state_index; extern void _mesa_load_state_parameters(struct gl_context *ctx, struct gl_program_parameter_list *paramList); extern void _mesa_upload_state_parameters(struct gl_context *ctx, struct gl_program_parameter_list *paramList, uint32_t *dst); extern void _mesa_optimize_state_parameters(struct gl_constants *consts, struct gl_program_parameter_list *list); extern unsigned _mesa_program_state_value_size(const gl_state_index16 state[STATE_LENGTH]); extern GLbitfield _mesa_program_state_flags(const gl_state_index16 state[STATE_LENGTH]); extern char * _mesa_program_state_string(const gl_state_index16 state[STATE_LENGTH]); #ifdef __cplusplus } #endif # 207 "../mesa/src/mesa/program/prog_statevars.h" #endif /* PROG_STATEVARS_H */ # 209 "../mesa/src/mesa/program/prog_statevars.h" #endif /* prog_statevars.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/program/prog_parameter.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/program/prog_parameter.h" # 39 "../mesa/src/mesa/program/prog_parameter.h" #ifdef __cplusplus extern "C" { #endif # 43 "../mesa/src/mesa/program/prog_parameter.h" /** * Names of the various vertex/fragment program register files, etc. * * NOTE: first four tokens must fit into 2 bits (see t_vb_arbprogram.c) * All values should fit in a 4-bit field. * * NOTE: PROGRAM_STATE_VAR, PROGRAM_CONSTANT, and PROGRAM_UNIFORM can all be * considered to be "uniform" variables since they can only be set outside * glBegin/End. They're also all stored in the same Parameters array. */ typedef enum { PROGRAM_TEMPORARY, /**< machine->Temporary[] */ PROGRAM_INPUT, /**< machine->Inputs[] */ PROGRAM_OUTPUT, /**< machine->Outputs[] */ PROGRAM_STATE_VAR, /**< gl_program->Parameters[] */ PROGRAM_CONSTANT, /**< gl_program->Parameters[] */ PROGRAM_UNIFORM, /**< gl_program->Parameters[] */ PROGRAM_ADDRESS, /**< machine->AddressReg */ PROGRAM_UNDEFINED, /**< Invalid/TBD value */ PROGRAM_FILE_MAX } gl_register_file; /** * Actual data for constant values of parameters. */ typedef union gl_constant_value { GLfloat f; GLint b; GLint i; GLuint u; } gl_constant_value; /** * Program parameter. * Used by shaders/programs for uniforms, constants, varying vars, etc. */ struct gl_program_parameter { const char *Name; /**< Null-terminated string */ gl_register_file Type:5; /**< PROGRAM_CONSTANT or STATE_VAR */ /** * We need to keep track of whether the param is padded for use in the * shader cache. */ bool Padded:1; GLenum16 DataType; /**< GL_FLOAT, GL_FLOAT_VEC2, etc */ /** * Number of components (1..4), or more. * If the number of components is greater than 4, * this parameter is part of a larger uniform like a GLSL matrix or array. */ GLushort Size; /** * A sequence of STATE_* tokens and integers to identify GL state. */ gl_state_index16 StateIndexes[STATE_LENGTH]; /** * Offset within ParameterValues where this parameter is stored. */ unsigned ValueOffset; /** * Index of this parameter's uniform storage. */ uint32_t UniformStorageIndex; /** * Index of the first uniform storage that is associated with the same * variable as this parameter. */ uint32_t MainUniformStorageIndex; }; /** * List of gl_program_parameter instances. */ struct gl_program_parameter_list { unsigned Size; /**< allocated size of Parameters */ unsigned SizeValues; /**< alllocate size of ParameterValues */ GLuint NumParameters; /**< number of used parameters in array */ unsigned NumParameterValues; /**< number of used parameter values array */ struct gl_program_parameter *Parameters; /**< Array [Size] */ gl_constant_value *ParameterValues; /**< Array [Size] of gl_constant_value */ GLbitfield StateFlags; /**< _NEW_* flags indicating which state changes might invalidate ParameterValues[] */ bool DisallowRealloc; /* Parameters are optionally sorted as follows. Uniforms and constants * are first, then state vars. This should be true in all cases except * ir_to_mesa, which adds constants at the end, and ARB_vp with ARL, * which can't sort parameters. */ int UniformBytes; int FirstStateVarIndex; int LastStateVarIndex; }; extern struct gl_program_parameter_list * _mesa_new_parameter_list(void); extern struct gl_program_parameter_list * _mesa_new_parameter_list_sized(unsigned size); extern void _mesa_free_parameter_list(struct gl_program_parameter_list *paramList); extern void _mesa_reserve_parameter_storage(struct gl_program_parameter_list *paramList, unsigned reserve_params, unsigned reserve_values); extern void _mesa_disallow_parameter_storage_realloc(struct gl_program_parameter_list *paramList); extern GLint _mesa_add_parameter(struct gl_program_parameter_list *paramList, gl_register_file type, const char *name, GLuint size, GLenum datatype, const gl_constant_value *values, const gl_state_index16 state[STATE_LENGTH], bool pad_and_align); extern GLint _mesa_add_typed_unnamed_constant(struct gl_program_parameter_list *paramList, const gl_constant_value *values, GLuint size, GLenum datatype, GLuint *swizzleOut); static inline GLint _mesa_add_unnamed_constant(struct gl_program_parameter_list *paramList, const gl_constant_value *values, GLuint size, GLuint *swizzleOut) { return _mesa_add_typed_unnamed_constant(paramList, values, size, GL_NONE, swizzleOut); } extern GLint _mesa_add_sized_state_reference(struct gl_program_parameter_list *paramList, const gl_state_index16 stateTokens[STATE_LENGTH], const unsigned size, bool pad_and_align); extern GLint _mesa_add_state_reference(struct gl_program_parameter_list *paramList, const gl_state_index16 stateTokens[STATE_LENGTH]); static inline GLint _mesa_lookup_parameter_index(const struct gl_program_parameter_list *paramList, const char *name) { if (!paramList) return -1; /* name must be null-terminated */ for (GLint i = 0; i < (GLint) paramList->NumParameters; i++) { if (paramList->Parameters[i].Name && strcmp(paramList->Parameters[i].Name, name) == 0) return i; } return -1; } static inline bool _mesa_gl_datatype_is_64bit(GLenum datatype) { switch (datatype) { case GL_DOUBLE: case GL_DOUBLE_VEC2: case GL_DOUBLE_VEC3: case GL_DOUBLE_VEC4: case GL_DOUBLE_MAT2: case GL_DOUBLE_MAT2x3: case GL_DOUBLE_MAT2x4: case GL_DOUBLE_MAT3: case GL_DOUBLE_MAT3x2: case GL_DOUBLE_MAT3x4: case GL_DOUBLE_MAT4: case GL_DOUBLE_MAT4x2: case GL_DOUBLE_MAT4x3: case GL_INT64_ARB: case GL_INT64_VEC2_ARB: case GL_INT64_VEC3_ARB: case GL_INT64_VEC4_ARB: case GL_UNSIGNED_INT64_ARB: case GL_UNSIGNED_INT64_VEC2_ARB: case GL_UNSIGNED_INT64_VEC3_ARB: case GL_UNSIGNED_INT64_VEC4_ARB: return true; default: return false; } } void _mesa_recompute_parameter_bounds(struct gl_program_parameter_list *list); #ifdef __cplusplus } #endif # 255 "../mesa/src/mesa/program/prog_parameter.h" #endif /* PROG_PARAMETER_H */ # 257 "../mesa/src/mesa/program/prog_parameter.h" #endif /* prog_parameter.h expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/main/shader_types.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* mesa-sha1.h expanded by -frewrite-includes */ #include "util/mesa-sha1.h" #else /* mesa-sha1.h expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/main/shader_types.h" # 1 "../mesa/src/util/mesa-sha1.h" 1 /* Copyright © 2014 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #ifndef MESA_SHA1_H #define MESA_SHA1_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 26 "../mesa/src/util/mesa-sha1.h" # 27 "../mesa/src/util/mesa-sha1.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "../mesa/src/util/mesa-sha1.h" # 28 "../mesa/src/util/mesa-sha1.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 28 "../mesa/src/util/mesa-sha1.h" # 29 "../mesa/src/util/mesa-sha1.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* sha1.h expanded by -frewrite-includes */ #include "sha1/sha1.h" #else /* sha1.h expanded by -frewrite-includes */ # 29 "../mesa/src/util/mesa-sha1.h" # 1 "../mesa/src/util/sha1/sha1.h" 1 /* $OpenBSD: sha1.h,v 1.24 2012/12/05 23:19:57 deraadt Exp $ */ /* * SHA-1 in C * By Steve Reid * 100% Public Domain */ #ifndef _SHA1_H #define _SHA1_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 12 "../mesa/src/util/sha1/sha1.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 13 "../mesa/src/util/sha1/sha1.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 13 "../mesa/src/util/sha1/sha1.h" # 14 "../mesa/src/util/sha1/sha1.h" #define SHA1_BLOCK_LENGTH 64 #define SHA1_DIGEST_LENGTH 20 #define SHA1_DIGEST_STRING_LENGTH (SHA1_DIGEST_LENGTH * 2 + 1) #ifdef __cplusplus extern "C" { #endif # 22 "../mesa/src/util/sha1/sha1.h" typedef struct _SHA1_CTX { uint32_t state[5]; uint64_t count; uint8_t buffer[SHA1_BLOCK_LENGTH]; } SHA1_CTX; void SHA1Init(SHA1_CTX *); void SHA1Update(SHA1_CTX *, const uint8_t *, size_t); void SHA1Final(uint8_t [SHA1_DIGEST_LENGTH], SHA1_CTX *); #define HTONDIGEST(x) do { \ x[0] = htonl(x[0]); \ x[1] = htonl(x[1]); \ x[2] = htonl(x[2]); \ x[3] = htonl(x[3]); \ x[4] = htonl(x[4]); } while (0) #define NTOHDIGEST(x) do { \ x[0] = ntohl(x[0]); \ x[1] = ntohl(x[1]); \ x[2] = ntohl(x[2]); \ x[3] = ntohl(x[3]); \ x[4] = ntohl(x[4]); } while (0) #ifdef __cplusplus } #endif # 50 "../mesa/src/util/sha1/sha1.h" #endif /* _SHA1_H */ # 52 "../mesa/src/util/sha1/sha1.h" #endif /* sha1.h expanded by -frewrite-includes */ # 30 "../mesa/src/util/mesa-sha1.h" 2 #ifdef __cplusplus extern "C" { #endif # 34 "../mesa/src/util/mesa-sha1.h" #define mesa_sha1 _SHA1_CTX #define SHA1_DIGEST_LENGTH32 (SHA1_DIGEST_LENGTH / 4) static inline void _mesa_sha1_init(struct mesa_sha1 *ctx) { SHA1Init(ctx); } static inline void _mesa_sha1_update(struct mesa_sha1 *ctx, const void *data, size_t size) { if (size) SHA1Update(ctx, (const unsigned char *)data, size); } static inline void _mesa_sha1_final(struct mesa_sha1 *ctx, unsigned char result[20]) { SHA1Final(result, ctx); } void _mesa_sha1_format(char *buf, const unsigned char *sha1); void _mesa_sha1_hex_to_sha1(unsigned char *buf, const char *hex); void _mesa_sha1_compute(const void *data, size_t size, unsigned char result[20]); void _mesa_sha1_print(FILE *f, const uint8_t sha1[SHA1_DIGEST_LENGTH]); bool _mesa_printed_sha1_equal(const uint8_t sha1[SHA1_DIGEST_LENGTH], const uint32_t printed_sha1[SHA1_DIGEST_LENGTH32]); #ifdef __cplusplus } /* extern C */ #endif # 76 "../mesa/src/util/mesa-sha1.h" #endif # 78 "../mesa/src/util/mesa-sha1.h" #endif /* mesa-sha1.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/shader_types.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/mesa-blake3.h" #endif /* expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/shader_types.h" # 40 "../mesa/src/mesa/main/shader_types.h" #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_info.h" #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/shader_types.h" # 41 "../mesa/src/mesa/main/shader_types.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* list.h expanded by -frewrite-includes */ #include "compiler/glsl/list.h" #else /* list.h expanded by -frewrite-includes */ # 41 "../mesa/src/mesa/main/shader_types.h" # 1 "../mesa/src/compiler/glsl/list.h" 1 /* * Copyright © 2008, 2010 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ /** * \file list.h * \brief Doubly-linked list abstract container type. * * Each doubly-linked list has a sentinel head and tail node. These nodes * contain no data. The head sentinel can be identified by its \c prev * pointer being \c NULL. The tail sentinel can be identified by its * \c next pointer being \c NULL. * * A list is empty if either the head sentinel's \c next pointer points to the * tail sentinel or the tail sentinel's \c prev poiner points to the head * sentinel. The head sentinel and tail sentinel nodes are allocated within the * list structure. * * Do note that this means that the list nodes will contain pointers into the * list structure itself and as a result you may not \c realloc() an \c * exec_list or any structure in which an \c exec_list is embedded. */ #ifndef LIST_CONTAINER_H #define LIST_CONTAINER_H #ifndef __cplusplus #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 47 "../mesa/src/compiler/glsl/list.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 48 "../mesa/src/compiler/glsl/list.h" 2 #endif # 49 "../mesa/src/compiler/glsl/list.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 49 "../mesa/src/compiler/glsl/list.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 50 "../mesa/src/compiler/glsl/list.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* ralloc.h expanded by -frewrite-includes */ #include "util/ralloc.h" #else /* ralloc.h expanded by -frewrite-includes */ # 51 "../mesa/src/compiler/glsl/list.h" # 1 "../mesa/src/util/ralloc.h" 1 /* * Copyright © 2010 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ /** * \file ralloc.h * * ralloc: a recursive memory allocator * * The ralloc memory allocator creates a hierarchy of allocated * objects. Every allocation is in reference to some parent, and * every allocated object can in turn be used as the parent of a * subsequent allocation. This allows for extremely convenient * discarding of an entire tree/sub-tree of allocations by calling * ralloc_free on any particular object to free it and all of its * children. * * The conceptual working of ralloc was directly inspired by Andrew * Tridgell's talloc, but ralloc is an independent implementation * released under the MIT license and tuned for Mesa. * * talloc is more sophisticated than ralloc in that it includes reference * counting and useful debugging features. However, it is released under * a non-permissive open source license. */ #ifndef RALLOC_H #define RALLOC_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 49 "../mesa/src/util/ralloc.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 50 "../mesa/src/util/ralloc.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 50 "../mesa/src/util/ralloc.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 1 3 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 30 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #else # 32 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need_va_copy #endif # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 48 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif # 49 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #endif /* expanded by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 52 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #endif /* expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 57 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_arg #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #endif /* expanded by -frewrite-includes */ # 61 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 62 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #endif /* expanded by -frewrite-includes */ # 66 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 67 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #endif /* expanded by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 72 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* __MVS__ */ # 76 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* stdarg.h expanded by -frewrite-includes */ # 51 "../mesa/src/util/ralloc.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/util/ralloc.h" # 52 "../mesa/src/util/ralloc.h" #if 0 /* expanded by -frewrite-includes */ #include "macros.h" #endif /* expanded by -frewrite-includes */ # 53 "../mesa/src/util/ralloc.h" # 54 "../mesa/src/util/ralloc.h" #ifdef __cplusplus extern "C" { #endif # 58 "../mesa/src/util/ralloc.h" /** * \def ralloc(ctx, type) * Allocate a new object chained off of the given context. * * This is equivalent to: * \code * ((type *) ralloc_size(ctx, sizeof(type)) * \endcode */ #define ralloc(ctx, type) ((type *) ralloc_size(ctx, sizeof(type))) /** * \def rzalloc(ctx, type) * Allocate a new object out of the given context and initialize it to zero. * * This is equivalent to: * \code * ((type *) rzalloc_size(ctx, sizeof(type)) * \endcode */ #define rzalloc(ctx, type) ((type *) rzalloc_size(ctx, sizeof(type))) /** * Allocate a new ralloc context. * * While any ralloc'd pointer can be used as a context, sometimes it is useful * to simply allocate a context with no associated memory. * * It is equivalent to: * \code * ((type *) ralloc_size(ctx, 0) * \endcode */ void *ralloc_context(const void *ctx); /** * Allocate memory chained off of the given context. * * This is the core allocation routine which is used by all others. It * simply allocates storage for \p size bytes and returns the pointer, * similar to \c malloc. */ void *ralloc_size(const void *ctx, size_t size) MALLOCLIKE; /** * Allocate zero-initialized memory chained off of the given context. * * This is similar to \c calloc with a size of 1. */ void *rzalloc_size(const void *ctx, size_t size) MALLOCLIKE; /** * Resize a piece of ralloc-managed memory, preserving data. * * Similar to \c realloc. Unlike C89, passing 0 for \p size does not free the * memory. Instead, it resizes it to a 0-byte ralloc context, just like * calling ralloc_size(ctx, 0). This is different from talloc. * * \param ctx The context to use for new allocation. If \p ptr != NULL, * it must be the same as ralloc_parent(\p ptr). * \param ptr Pointer to the memory to be resized. May be NULL. * \param size The amount of memory to allocate, in bytes. */ void *reralloc_size(const void *ctx, void *ptr, size_t size); /** * Resize a ralloc-managed array, preserving data and initializing any newly * allocated data to zero. * * Similar to \c realloc. Unlike C89, passing 0 for \p size does not free the * memory. Instead, it resizes it to a 0-byte ralloc context, just like * calling ralloc_size(ctx, 0). This is different from talloc. * * \param ctx The context to use for new allocation. If \p ptr != NULL, * it must be the same as ralloc_parent(\p ptr). * \param ptr Pointer to the memory to be resized. May be NULL. * \param old_size The amount of memory in the previous allocation, in bytes. * \param new_size The amount of memory to allocate, in bytes. */ void *rerzalloc_size(const void *ctx, void *ptr, size_t old_size, size_t new_size); /// \defgroup array Array Allocators @{ /** * \def ralloc_array(ctx, type, count) * Allocate an array of objects chained off the given context. * * Similar to \c calloc, but does not initialize the memory to zero. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * This is equivalent to: * \code * ((type *) ralloc_array_size(ctx, sizeof(type), count) * \endcode */ #define ralloc_array(ctx, type, count) \ ((type *) ralloc_array_size(ctx, sizeof(type), count)) /** * \def rzalloc_array(ctx, type, count) * Allocate a zero-initialized array chained off the given context. * * Similar to \c calloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * This is equivalent to: * \code * ((type *) rzalloc_array_size(ctx, sizeof(type), count) * \endcode */ #define rzalloc_array(ctx, type, count) \ ((type *) rzalloc_array_size(ctx, sizeof(type), count)) /** * \def reralloc(ctx, ptr, type, count) * Resize a ralloc-managed array, preserving data. * * Similar to \c realloc. Unlike C89, passing 0 for \p size does not free the * memory. Instead, it resizes it to a 0-byte ralloc context, just like * calling ralloc_size(ctx, 0). This is different from talloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * \param ctx The context to use for new allocation. If \p ptr != NULL, * it must be the same as ralloc_parent(\p ptr). * \param ptr Pointer to the array to be resized. May be NULL. * \param type The element type. * \param count The number of elements to allocate. */ #define reralloc(ctx, ptr, type, count) \ ((type *) reralloc_array_size(ctx, ptr, sizeof(type), count)) /** * \def rerzalloc(ctx, ptr, type, count) * Resize a ralloc-managed array, preserving data and initializing any newly * allocated data to zero. * * Similar to \c realloc. Unlike C89, passing 0 for \p size does not free the * memory. Instead, it resizes it to a 0-byte ralloc context, just like * calling ralloc_size(ctx, 0). This is different from talloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * \param ctx The context to use for new allocation. If \p ptr != NULL, * it must be the same as ralloc_parent(\p ptr). * \param ptr Pointer to the array to be resized. May be NULL. * \param type The element type. * \param old_count The number of elements in the previous allocation. * \param new_count The number of elements to allocate. */ #define rerzalloc(ctx, ptr, type, old_count, new_count) \ ((type *) rerzalloc_array_size(ctx, ptr, sizeof(type), old_count, new_count)) /** * Allocate memory for an array chained off the given context. * * Similar to \c calloc, but does not initialize the memory to zero. * * More than a convenience function, this also checks for integer overflow when * multiplying \p size and \p count. This is necessary for security. */ void *ralloc_array_size(const void *ctx, size_t size, unsigned count) MALLOCLIKE; /** * Allocate a zero-initialized array chained off the given context. * * Similar to \c calloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \p size and \p count. This is necessary for security. */ void *rzalloc_array_size(const void *ctx, size_t size, unsigned count) MALLOCLIKE; /** * Resize a ralloc-managed array, preserving data. * * Similar to \c realloc. Unlike C89, passing 0 for \p size does not free the * memory. Instead, it resizes it to a 0-byte ralloc context, just like * calling ralloc_size(ctx, 0). This is different from talloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * \param ctx The context to use for new allocation. If \p ptr != NULL, * it must be the same as ralloc_parent(\p ptr). * \param ptr Pointer to the array to be resized. May be NULL. * \param size The size of an individual element. * \param count The number of elements to allocate. * * \return True unless allocation failed. */ void *reralloc_array_size(const void *ctx, void *ptr, size_t size, unsigned count); /** * Resize a ralloc-managed array, preserving data and initializing any newly * allocated data to zero. * * Similar to \c realloc. Unlike C89, passing 0 for \p size does not free the * memory. Instead, it resizes it to a 0-byte ralloc context, just like * calling ralloc_size(ctx, 0). This is different from talloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * \param ctx The context to use for new allocation. If \p ptr != NULL, * it must be the same as ralloc_parent(\p ptr). * \param ptr Pointer to the array to be resized. May be NULL. * \param size The size of an individual element. * \param old_count The number of elements in the previous allocation. * \param new_count The number of elements to allocate. * * \return True unless allocation failed. */ void *rerzalloc_array_size(const void *ctx, void *ptr, size_t size, unsigned old_count, unsigned new_count); /// @} /** * Free a piece of ralloc-managed memory. * * This will also free the memory of any children allocated this context. */ void ralloc_free(void *ptr); /** * "Steal" memory from one context, changing it to another. * * This changes \p ptr's context to \p new_ctx. This is quite useful if * memory is allocated out of a temporary context. */ void ralloc_steal(const void *new_ctx, void *ptr); /** * Reparent all children from one context to another. * * This effectively calls ralloc_steal(new_ctx, child) for all children of \p old_ctx. */ void ralloc_adopt(const void *new_ctx, void *old_ctx); /** * Return the given pointer's ralloc context. */ void *ralloc_parent(const void *ptr); /** * Set a callback to occur just before an object is freed. */ void ralloc_set_destructor(const void *ptr, void(*destructor)(void *)); /** * Duplicate memory, allocating the memory from the given context. */ void *ralloc_memdup(const void *ctx, const void *mem, size_t n) MALLOCLIKE; /// \defgroup array String Functions @{ /** * Duplicate a string, allocating the memory from the given context. */ char *ralloc_strdup(const void *ctx, const char *str) MALLOCLIKE; /** * Duplicate a string, allocating the memory from the given context. * * Like \c strndup, at most \p n characters are copied. If \p str is longer * than \p n characters, \p n are copied, and a termining \c '\0' byte is added. */ char *ralloc_strndup(const void *ctx, const char *str, size_t n) MALLOCLIKE; /** * Concatenate two strings, allocating the necessary space. * * This appends \p str to \p *dest, similar to \c strcat, using ralloc_resize * to expand \p *dest to the appropriate size. \p dest will be updated to the * new pointer unless allocation fails. * * The result will always be null-terminated. * * \return True unless allocation failed. */ bool ralloc_strcat(char **dest, const char *str); /** * Concatenate two strings, allocating the necessary space. * * This appends at most \p n bytes of \p str to \p *dest, using ralloc_resize * to expand \p *dest to the appropriate size. \p dest will be updated to the * new pointer unless allocation fails. * * The result will always be null-terminated; \p str does not need to be null * terminated if it is longer than \p n. * * \return True unless allocation failed. */ bool ralloc_strncat(char **dest, const char *str, size_t n); /** * Concatenate two strings, allocating the necessary space. * * This appends \p n bytes of \p str to \p *dest, using ralloc_resize * to expand \p *dest to the appropriate size. \p dest will be updated to the * new pointer unless allocation fails. * * The result will always be null-terminated. * * This function differs from ralloc_strcat() and ralloc_strncat() in that it * does not do any strlen() calls which can become costly on large strings. * * \return True unless allocation failed. */ bool ralloc_str_append(char **dest, const char *str, size_t existing_length, size_t str_size); /** * Print to a string. * * This is analogous to \c sprintf, but allocates enough space (using \p ctx * as the context) for the resulting string. * * \return The newly allocated string. */ char *ralloc_asprintf (const void *ctx, const char *fmt, ...) PRINTFLIKE(2, 3) MALLOCLIKE; /** * Print to a string, given a va_list. * * This is analogous to \c vsprintf, but allocates enough space (using \p ctx * as the context) for the resulting string. * * \return The newly allocated string. */ char *ralloc_vasprintf(const void *ctx, const char *fmt, va_list args) MALLOCLIKE; /** * Rewrite the tail of an existing string, starting at a given index. * * Overwrites the contents of *str starting at \p start with newly formatted * text, including a new null-terminator. Allocates more memory as necessary. * * This can be used to append formatted text when the length of the existing * string is already known, saving a strlen() call. * * \sa ralloc_asprintf_append * * \param str The string to be updated. * \param start The index to start appending new data at. * \param fmt A printf-style formatting string * * \p str will be updated to the new pointer unless allocation fails. * \p start will be increased by the length of the newly formatted text. * * \return True unless allocation failed. */ bool ralloc_asprintf_rewrite_tail(char **str, size_t *start, const char *fmt, ...) PRINTFLIKE(3, 4); /** * Rewrite the tail of an existing string, starting at a given index. * * Overwrites the contents of *str starting at \p start with newly formatted * text, including a new null-terminator. Allocates more memory as necessary. * * This can be used to append formatted text when the length of the existing * string is already known, saving a strlen() call. * * \sa ralloc_vasprintf_append * * \param str The string to be updated. * \param start The index to start appending new data at. * \param fmt A printf-style formatting string * \param args A va_list containing the data to be formatted * * \p str will be updated to the new pointer unless allocation fails. * \p start will be increased by the length of the newly formatted text. * * \return True unless allocation failed. */ bool ralloc_vasprintf_rewrite_tail(char **str, size_t *start, const char *fmt, va_list args); /** * Append formatted text to the supplied string. * * This is equivalent to * \code * ralloc_asprintf_rewrite_tail(str, strlen(*str), fmt, ...) * \endcode * * \sa ralloc_asprintf * \sa ralloc_asprintf_rewrite_tail * \sa ralloc_strcat * * \p str will be updated to the new pointer unless allocation fails. * * \return True unless allocation failed. */ bool ralloc_asprintf_append (char **str, const char *fmt, ...) PRINTFLIKE(2, 3); /** * Append formatted text to the supplied string, given a va_list. * * This is equivalent to * \code * ralloc_vasprintf_rewrite_tail(str, strlen(*str), fmt, args) * \endcode * * \sa ralloc_vasprintf * \sa ralloc_vasprintf_rewrite_tail * \sa ralloc_strcat * * \p str will be updated to the new pointer unless allocation fails. * * \return True unless allocation failed. */ bool ralloc_vasprintf_append(char **str, const char *fmt, va_list args); /// @} /** * Estimate the memory usage in bytes of a ralloc context, recursively including * all of its child counts. This is only available in debug builds as release * builds do not track size information. It is providing as a aid for debugging * memory bloat. */ #ifndef NDEBUG size_t ralloc_total_size(const void *ptr); #endif # 495 "../mesa/src/util/ralloc.h" typedef struct gc_ctx gc_ctx; /** * Allocate a new garbage collection context. The children of the * context are not necessarily ralloc'd pointers and cannot be stolen to a ralloc context. Instead, * The user should use the mark-and-sweep interface below to free any unused children. Under the * hood, this restriction lets us manage allocations ourselves, using a freelist. This means that * GC contexts should be used for scenarios where there are many allocations and frees, most of * which use only a few different sizes. */ gc_ctx *gc_context(const void *parent); #define gc_alloc(ctx, type, count) gc_alloc_size(ctx, sizeof(type) * (count), alignof(type)) #define gc_zalloc(ctx, type, count) gc_zalloc_size(ctx, sizeof(type) * (count), alignof(type)) #define gc_alloc_zla(ctx, type, type2, count) \ gc_alloc_size(ctx, sizeof(type) + sizeof(type2) * (count), MAX2(alignof(type), alignof(type2))) #define gc_zalloc_zla(ctx, type, type2, count) \ gc_zalloc_size(ctx, sizeof(type) + sizeof(type2) * (count), MAX2(alignof(type), alignof(type2))) void *gc_alloc_size(gc_ctx *ctx, size_t size, size_t alignment) MALLOCLIKE; void *gc_zalloc_size(gc_ctx *ctx, size_t size, size_t alignment) MALLOCLIKE; void gc_free(void *ptr); gc_ctx *gc_get_context(void *ptr); void gc_sweep_start(gc_ctx *ctx); void gc_mark_live(gc_ctx *ctx, const void *mem); void gc_sweep_end(gc_ctx *ctx); /** * Declare C++ new and delete operators which use ralloc. * * Placing this macro in the body of a class makes it possible to do: * * TYPE *var = new(mem_ctx) TYPE(...); * delete var; * * which is more idiomatic in C++ than calling ralloc. */ #define DECLARE_RALLOC_CXX_OPERATORS_TEMPLATE(TYPE, ALLOC_FUNC) \ private: \ static void _ralloc_destructor(void *p) \ { \ reinterpret_cast(p)->TYPE::~TYPE(); \ } \ public: \ static void* operator new(size_t size, void *mem_ctx) \ { \ void *p = ALLOC_FUNC(mem_ctx, size); \ assert(p != NULL); \ if (!HAS_TRIVIAL_DESTRUCTOR(TYPE)) \ ralloc_set_destructor(p, _ralloc_destructor); \ return p; \ } \ \ static void operator delete(void *p) \ { \ /* The object's destructor is guaranteed to have already been \ * called by the delete operator at this point -- Make sure it's \ * not called again. \ */ \ if (!HAS_TRIVIAL_DESTRUCTOR(TYPE)) \ ralloc_set_destructor(p, NULL); \ ralloc_free(p); \ } #define DECLARE_RALLOC_CXX_OPERATORS(type) \ DECLARE_RALLOC_CXX_OPERATORS_TEMPLATE(type, ralloc_size) #define DECLARE_RZALLOC_CXX_OPERATORS(type) \ DECLARE_RALLOC_CXX_OPERATORS_TEMPLATE(type, rzalloc_size) #define DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(TYPE, ALLOC_FUNC) \ public: \ static void* operator new(size_t size, linear_ctx *ctx) \ { \ void *p = ALLOC_FUNC(ctx, size); \ assert(p != NULL); \ static_assert(HAS_TRIVIAL_DESTRUCTOR(TYPE)); \ return p; \ } \ static void* operator new[](size_t size, linear_ctx *ctx) \ { \ void *p = ALLOC_FUNC(ctx, size); \ assert(p != NULL); \ static_assert(HAS_TRIVIAL_DESTRUCTOR(TYPE)); \ return p; \ } #define DECLARE_LINEAR_ALLOC_CXX_OPERATORS(type) \ DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_alloc_child) #define DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(type) \ DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_zalloc_child) typedef struct linear_ctx linear_ctx; /** * Do a fast allocation from the linear context, also known as the child node * from the allocator's point of view. It can't be freed directly. You have * to free the linear context or the ralloc parent. * * \param ctx linear context of the allocator * \param size size to allocate (max 32 bits) */ void *linear_alloc_child(linear_ctx *ctx, unsigned size); typedef struct { unsigned min_buffer_size; } linear_opts; /** * Allocate a linear context that will internally hold linear buffers. * Use it for all child node allocations. * * \param ralloc_ctx ralloc context, must not be NULL */ linear_ctx *linear_context(void *ralloc_ctx); linear_ctx *linear_context_with_opts(void *ralloc_ctx, const linear_opts *opts); /** * Same as linear_alloc_child, but also clears memory. */ void *linear_zalloc_child(linear_ctx *ctx, unsigned size) MALLOCLIKE; /** * Free a linear context. This will free all child nodes too. * Alternatively, freeing the ralloc parent will also free * the linear context. */ void linear_free_context(linear_ctx *ctx); /** * Same as ralloc_steal, but steals the entire linear context. */ void ralloc_steal_linear_context(void *new_ralloc_ctx, linear_ctx *ctx); /** * Return the ralloc parent of the linear context. */ void *ralloc_parent_of_linear_context(linear_ctx *ctx); /** * Do a fast allocation of an array from the linear context and initialize it to zero. * * Similar to \c calloc, but does not initialize the memory to zero. * * More than a convenience function, this also checks for integer overflow when * multiplying \p size and \p count. This is necessary for security. */ void *linear_alloc_child_array(linear_ctx *ctx, size_t size, unsigned count) MALLOCLIKE; /** * Do a fast allocation of an array from the linear context. * * Similar to \c calloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \p size and \p count. This is necessary for security. */ void *linear_zalloc_child_array(linear_ctx *ctx, size_t size, unsigned count) MALLOCLIKE; /* The functions below have the same semantics as their ralloc counterparts, * except that they always allocate a linear child node. */ char *linear_strdup(linear_ctx *ctx, const char *str) MALLOCLIKE; char *linear_asprintf(linear_ctx *ctx, const char *fmt, ...) PRINTFLIKE(2, 3) MALLOCLIKE; char *linear_vasprintf(linear_ctx *ctx, const char *fmt, va_list args) MALLOCLIKE; bool linear_asprintf_append(linear_ctx *ctx, char **str, const char *fmt, ...) PRINTFLIKE(3, 4); bool linear_vasprintf_append(linear_ctx *ctx, char **str, const char *fmt, va_list args); bool linear_asprintf_rewrite_tail(linear_ctx *ctx, char **str, size_t *start, const char *fmt, ...) PRINTFLIKE(4, 5); bool linear_vasprintf_rewrite_tail(linear_ctx *ctx, char **str, size_t *start, const char *fmt, va_list args); bool linear_strcat(linear_ctx *ctx, char **dest, const char *str); /** * \def linear_alloc(ctx, type) * Do a fast allocation from the linear context. * * This is equivalent to: * \code * ((type *) linear_alloc_child(ctx, sizeof(type)) * \endcode */ #define linear_alloc(ctx, type) ((type *) linear_alloc_child(ctx, sizeof(type))) /** * \def linear_zalloc(ctx, type) * Do a fast allocation from the linear context and initialize it to zero. * * This is equivalent to: * \code * ((type *) linear_zalloc_child(ctx, sizeof(type)) * \endcode */ #define linear_zalloc(ctx, type) ((type *) linear_zalloc_child(ctx, sizeof(type))) /** * \def linear_alloc_array(ctx, type, count) * Do a fast allocation of an array from the linear context. * * Similar to \c calloc, but does not initialize the memory to zero. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * This is equivalent to: * \code * ((type *) linear_alloc_child_array(ctx, sizeof(type), count) * \endcode */ #define linear_alloc_array(ctx, type, count) \ ((type *) linear_alloc_child_array(ctx, sizeof(type), count)) /** * \def linear_zalloc_array(ctx, type, count) * Do a fast allocation of an array from the linear context and initialize it to zero * * Similar to \c calloc. * * More than a convenience function, this also checks for integer overflow when * multiplying \c sizeof(type) and \p count. This is necessary for security. * * This is equivalent to: * \code * ((type *) linear_zalloc_child_array(ctx, sizeof(type), count) * \endcode */ #define linear_zalloc_array(ctx, type, count) \ ((type *) linear_zalloc_child_array(ctx, sizeof(type), count)) enum { RALLOC_PRINT_INFO_SUMMARY_ONLY = 1 << 0, }; void ralloc_print_info(FILE *f, const void *p, unsigned flags); #ifdef __cplusplus } /* end of extern "C" */ #endif # 740 "../mesa/src/util/ralloc.h" #endif # 742 "../mesa/src/util/ralloc.h" #endif /* ralloc.h expanded by -frewrite-includes */ # 52 "../mesa/src/compiler/glsl/list.h" 2 struct exec_node { struct exec_node *next; struct exec_node *prev; #ifdef __cplusplus DECLARE_RZALLOC_CXX_OPERATORS(exec_node) exec_node() : next(NULL), prev(NULL) { /* empty */ } const exec_node *get_next() const; exec_node *get_next(); const exec_node *get_prev() const; exec_node *get_prev(); void remove(); /** * Link a node with itself * * This creates a sort of degenerate list that is occasionally useful. */ void self_link(); /** * Insert a node in the list after the current node */ void insert_after(exec_node *after); /** * Insert another list in the list after the current node */ void insert_after(struct exec_list *after); /** * Insert a node in the list before the current node */ void insert_before(exec_node *before); /** * Insert another list in the list before the current node */ void insert_before(struct exec_list *before); /** * Replace the current node with the given node. */ void replace_with(exec_node *replacement); /** * Is this the sentinel at the tail of the list? */ bool is_tail_sentinel() const; /** * Is this the sentinel at the head of the list? */ bool is_head_sentinel() const; #endif # 115 "../mesa/src/compiler/glsl/list.h" }; static inline void exec_node_init(struct exec_node *n) { n->next = NULL; n->prev = NULL; } static inline const struct exec_node * exec_node_get_next_const(const struct exec_node *n) { return n->next; } static inline struct exec_node * exec_node_get_next(struct exec_node *n) { return n->next; } static inline const struct exec_node * exec_node_get_prev_const(const struct exec_node *n) { return n->prev; } static inline struct exec_node * exec_node_get_prev(struct exec_node *n) { return n->prev; } static inline void exec_node_remove(struct exec_node *n) { n->next->prev = n->prev; n->prev->next = n->next; n->next = NULL; n->prev = NULL; } static inline void exec_node_self_link(struct exec_node *n) { n->next = n; n->prev = n; } static inline void exec_node_insert_after(struct exec_node *n, struct exec_node *after) { after->next = n->next; after->prev = n; n->next->prev = after; n->next = after; } static inline void exec_node_insert_node_before(struct exec_node *n, struct exec_node *before) { before->next = n; before->prev = n->prev; n->prev->next = before; n->prev = before; } static inline void exec_node_replace_with(struct exec_node *n, struct exec_node *replacement) { replacement->prev = n->prev; replacement->next = n->next; n->prev->next = replacement; n->next->prev = replacement; } static inline bool exec_node_is_tail_sentinel(const struct exec_node *n) { return n->next == NULL; } static inline bool exec_node_is_head_sentinel(const struct exec_node *n) { return n->prev == NULL; } #ifdef __cplusplus inline const exec_node *exec_node::get_next() const { return exec_node_get_next_const(this); } inline exec_node *exec_node::get_next() { return exec_node_get_next(this); } inline const exec_node *exec_node::get_prev() const { return exec_node_get_prev_const(this); } inline exec_node *exec_node::get_prev() { return exec_node_get_prev(this); } inline void exec_node::remove() { exec_node_remove(this); } inline void exec_node::self_link() { exec_node_self_link(this); } inline void exec_node::insert_after(exec_node *after) { exec_node_insert_after(this, after); } inline void exec_node::insert_before(exec_node *before) { exec_node_insert_node_before(this, before); } inline void exec_node::replace_with(exec_node *replacement) { exec_node_replace_with(this, replacement); } inline bool exec_node::is_tail_sentinel() const { return exec_node_is_tail_sentinel(this); } inline bool exec_node::is_head_sentinel() const { return exec_node_is_head_sentinel(this); } #endif # 262 "../mesa/src/compiler/glsl/list.h" #ifdef __cplusplus /* This macro will not work correctly if `t' uses virtual inheritance. */ #define exec_list_offsetof(t, f, p) \ (((char *) &((t *) p)->f) - ((char *) p)) #else # 268 "../mesa/src/compiler/glsl/list.h" #define exec_list_offsetof(t, f, p) offsetof(t, f) #endif # 270 "../mesa/src/compiler/glsl/list.h" /** * Get a pointer to the structure containing an exec_node * * Given a pointer to an \c exec_node embedded in a structure, get a pointer to * the containing structure. * * \param type Base type of the structure containing the node * \param node Pointer to the \c exec_node * \param field Name of the field in \c type that is the embedded \c exec_node */ #define exec_node_data(type, node, field) \ ((type *) (((uintptr_t) node) - exec_list_offsetof(type, field, node))) #ifdef __cplusplus struct exec_node; #endif # 287 "../mesa/src/compiler/glsl/list.h" struct exec_list { struct exec_node head_sentinel; struct exec_node tail_sentinel; #ifdef __cplusplus DECLARE_RALLOC_CXX_OPERATORS(exec_list) exec_list() { make_empty(); } void make_empty(); bool is_empty() const; const exec_node *get_head() const; exec_node *get_head(); const exec_node *get_head_raw() const; exec_node *get_head_raw(); const exec_node *get_tail() const; exec_node *get_tail(); const exec_node *get_tail_raw() const; exec_node *get_tail_raw(); unsigned length() const; void push_head(exec_node *n); void push_tail(exec_node *n); void push_degenerate_list_at_head(exec_node *n); /** * Remove the first node from a list and return it * * \return * The first node in the list or \c NULL if the list is empty. * * \sa exec_list::get_head */ exec_node *pop_head(); /** * Move all of the nodes from this list to the target list */ void move_nodes_to(exec_list *target); /** * Append all nodes from the source list to the end of the target list */ void append_list(exec_list *source); /** * Prepend all nodes from the source list to the beginning of the target * list */ void prepend_list(exec_list *source); #endif # 346 "../mesa/src/compiler/glsl/list.h" }; static inline void exec_list_make_empty(struct exec_list *list) { list->head_sentinel.next = &list->tail_sentinel; list->head_sentinel.prev = NULL; list->tail_sentinel.next = NULL; list->tail_sentinel.prev = &list->head_sentinel; } static inline bool exec_list_is_empty(const struct exec_list *list) { /* There are three ways to test whether a list is empty or not. * * - Check to see if the head sentinel's \c next is the tail sentinel. * - Check to see if the tail sentinel's \c prev is the head sentinel. * - Check to see if the head is the sentinel node by test whether its * \c next pointer is \c NULL. * * The first two methods tend to generate better code on modern systems * because they save a pointer dereference. */ return list->head_sentinel.next == &list->tail_sentinel; } static inline bool exec_list_is_singular(const struct exec_list *list) { return !exec_list_is_empty(list) && list->head_sentinel.next->next == &list->tail_sentinel; } static inline const struct exec_node * exec_list_get_head_const(const struct exec_list *list) { return !exec_list_is_empty(list) ? list->head_sentinel.next : NULL; } static inline struct exec_node * exec_list_get_head(struct exec_list *list) { return !exec_list_is_empty(list) ? list->head_sentinel.next : NULL; } static inline const struct exec_node * exec_list_get_head_raw_const(const struct exec_list *list) { return list->head_sentinel.next; } static inline struct exec_node * exec_list_get_head_raw(struct exec_list *list) { return list->head_sentinel.next; } static inline const struct exec_node * exec_list_get_tail_const(const struct exec_list *list) { return !exec_list_is_empty(list) ? list->tail_sentinel.prev : NULL; } static inline struct exec_node * exec_list_get_tail(struct exec_list *list) { return !exec_list_is_empty(list) ? list->tail_sentinel.prev : NULL; } static inline const struct exec_node * exec_list_get_tail_raw_const(const struct exec_list *list) { return list->tail_sentinel.prev; } static inline struct exec_node * exec_list_get_tail_raw(struct exec_list *list) { return list->tail_sentinel.prev; } static inline unsigned exec_list_length(const struct exec_list *list) { unsigned size = 0; struct exec_node *node; for (node = list->head_sentinel.next; node->next != NULL; node = node->next) { size++; } return size; } static inline void exec_list_push_head(struct exec_list *list, struct exec_node *n) { n->next = list->head_sentinel.next; n->prev = &list->head_sentinel; n->next->prev = n; list->head_sentinel.next = n; } static inline void exec_list_push_tail(struct exec_list *list, struct exec_node *n) { n->next = &list->tail_sentinel; n->prev = list->tail_sentinel.prev; n->prev->next = n; list->tail_sentinel.prev = n; } static inline void exec_list_push_degenerate_list_at_head(struct exec_list *list, struct exec_node *n) { assert(n->prev->next == n); n->prev->next = list->head_sentinel.next; list->head_sentinel.next->prev = n->prev; n->prev = &list->head_sentinel; list->head_sentinel.next = n; } static inline struct exec_node * exec_list_pop_head(struct exec_list *list) { struct exec_node *const n = exec_list_get_head(list); if (n != NULL) exec_node_remove(n); return n; } static inline void exec_list_move_nodes_to(struct exec_list *list, struct exec_list *target) { if (exec_list_is_empty(list)) { exec_list_make_empty(target); } else { target->head_sentinel.next = list->head_sentinel.next; target->head_sentinel.prev = NULL; target->tail_sentinel.next = NULL; target->tail_sentinel.prev = list->tail_sentinel.prev; target->head_sentinel.next->prev = &target->head_sentinel; target->tail_sentinel.prev->next = &target->tail_sentinel; exec_list_make_empty(list); } } static inline void exec_list_append(struct exec_list *list, struct exec_list *source) { if (exec_list_is_empty(source)) return; /* Link the first node of the source with the last node of the target list. */ list->tail_sentinel.prev->next = source->head_sentinel.next; source->head_sentinel.next->prev = list->tail_sentinel.prev; /* Make the tail of the source list be the tail of the target list. */ list->tail_sentinel.prev = source->tail_sentinel.prev; list->tail_sentinel.prev->next = &list->tail_sentinel; /* Make the source list empty for good measure. */ exec_list_make_empty(source); } static inline void exec_node_insert_list_after(struct exec_node *n, struct exec_list *after) { if (exec_list_is_empty(after)) return; after->tail_sentinel.prev->next = n->next; after->head_sentinel.next->prev = n; n->next->prev = after->tail_sentinel.prev; n->next = after->head_sentinel.next; exec_list_make_empty(after); } static inline void exec_list_prepend(struct exec_list *list, struct exec_list *source) { exec_list_append(source, list); exec_list_move_nodes_to(source, list); } static inline void exec_node_insert_list_before(struct exec_node *n, struct exec_list *before) { if (exec_list_is_empty(before)) return; before->tail_sentinel.prev->next = n; before->head_sentinel.next->prev = n->prev; n->prev->next = before->head_sentinel.next; n->prev = before->tail_sentinel.prev; exec_list_make_empty(before); } static inline void exec_list_validate(const struct exec_list *list) { const struct exec_node *node; assert(list->head_sentinel.next->prev == &list->head_sentinel); assert(list->head_sentinel.prev == NULL); assert(list->tail_sentinel.next == NULL); assert(list->tail_sentinel.prev->next == &list->tail_sentinel); /* We could try to use one of the interators below for this but they all * either require C++ or assume the exec_node is embedded in a structure * which is not the case for this function. */ for (node = list->head_sentinel.next; node->next != NULL; node = node->next) { assert(node->next->prev == node); assert(node->prev->next == node); } } #ifdef __cplusplus inline void exec_list::make_empty() { exec_list_make_empty(this); } inline bool exec_list::is_empty() const { return exec_list_is_empty(this); } inline const exec_node *exec_list::get_head() const { return exec_list_get_head_const(this); } inline exec_node *exec_list::get_head() { return exec_list_get_head(this); } inline const exec_node *exec_list::get_head_raw() const { return exec_list_get_head_raw_const(this); } inline exec_node *exec_list::get_head_raw() { return exec_list_get_head_raw(this); } inline const exec_node *exec_list::get_tail() const { return exec_list_get_tail_const(this); } inline exec_node *exec_list::get_tail() { return exec_list_get_tail(this); } inline const exec_node *exec_list::get_tail_raw() const { return exec_list_get_tail_raw_const(this); } inline exec_node *exec_list::get_tail_raw() { return exec_list_get_tail_raw(this); } inline unsigned exec_list::length() const { return exec_list_length(this); } inline void exec_list::push_head(exec_node *n) { exec_list_push_head(this, n); } inline void exec_list::push_tail(exec_node *n) { exec_list_push_tail(this, n); } inline void exec_list::push_degenerate_list_at_head(exec_node *n) { exec_list_push_degenerate_list_at_head(this, n); } inline exec_node *exec_list::pop_head() { return exec_list_pop_head(this); } inline void exec_list::move_nodes_to(exec_list *target) { exec_list_move_nodes_to(this, target); } inline void exec_list::append_list(exec_list *source) { exec_list_append(this, source); } inline void exec_node::insert_after(exec_list *after) { exec_node_insert_list_after(this, after); } inline void exec_list::prepend_list(exec_list *source) { exec_list_prepend(this, source); } inline void exec_node::insert_before(exec_list *before) { exec_node_insert_list_before(this, before); } #endif # 679 "../mesa/src/compiler/glsl/list.h" #define exec_node_typed_forward(__node, __type) \ (!exec_node_is_tail_sentinel(__node) ? (__type) (__node) : NULL) #define exec_node_typed_backward(__node, __type) \ (!exec_node_is_head_sentinel(__node) ? (__type) (__node) : NULL) #define foreach_in_list(__type, __inst, __list) \ for (__type *__inst = exec_node_typed_forward((__list)->head_sentinel.next, __type *); \ (__inst) != NULL; \ (__inst) = exec_node_typed_forward((__inst)->next, __type *)) #define foreach_in_list_reverse(__type, __inst, __list) \ for (__type *__inst = exec_node_typed_backward((__list)->tail_sentinel.prev, __type *); \ (__inst) != NULL; \ (__inst) = exec_node_typed_backward((__inst)->prev, __type *)) /** * This version is safe even if the current node is removed. */ #define foreach_in_list_safe(__type, __node, __list) \ for (__type *__node = exec_node_typed_forward((__list)->head_sentinel.next, __type *), \ *__next = (__node) ? exec_node_typed_forward((__list)->head_sentinel.next->next, __type *) : NULL; \ (__node) != NULL; \ (__node) = __next, __next = __next ? exec_node_typed_forward(__next->next, __type *) : NULL) #define foreach_in_list_reverse_safe(__type, __node, __list) \ for (__type *__node = exec_node_typed_backward((__list)->tail_sentinel.prev, __type *), \ *__prev = (__node) ? exec_node_typed_backward((__list)->tail_sentinel.prev->prev, __type *) : NULL; \ (__node) != NULL; \ (__node) = __prev, __prev = __prev ? exec_node_typed_backward(__prev->prev, __type *) : NULL) #define foreach_in_list_use_after(__type, __inst, __list) \ __type *__inst; \ for ((__inst) = exec_node_typed_forward((__list)->head_sentinel.next, __type *); \ (__inst) != NULL; \ (__inst) = exec_node_typed_forward((__inst)->next, __type *)) /** * Iterate through two lists at once. Stops at the end of the shorter list. * * This is safe against either current node being removed or replaced. */ #define foreach_two_lists(__node1, __list1, __node2, __list2) \ for (struct exec_node * __node1 = (__list1)->head_sentinel.next, \ * __node2 = (__list2)->head_sentinel.next, \ * __next1 = __node1->next, \ * __next2 = __node2->next \ ; __next1 != NULL && __next2 != NULL \ ; __node1 = __next1, \ __node2 = __next2, \ __next1 = __next1->next, \ __next2 = __next2->next) #define exec_node_data_forward(type, node, field) \ (!exec_node_is_tail_sentinel(node) ? exec_node_data(type, node, field) : NULL) #define exec_node_data_backward(type, node, field) \ (!exec_node_is_head_sentinel(node) ? exec_node_data(type, node, field) : NULL) #define exec_node_data_next(type, node, field) \ exec_node_data_forward(type, (node)->field.next, field) #define exec_node_data_prev(type, node, field) \ exec_node_data_backward(type, (node)->field.prev, field) #define exec_node_data_head(type, list, field) \ exec_node_data_forward(type, (list)->head_sentinel.next, field) #define exec_node_data_tail(type, list, field) \ exec_node_data_backward(type, (list)->tail_sentinel.prev, field) /** * Iterate over the list from head to tail. Removal is safe for all nodes except the current * iteration's. */ #define foreach_list_typed(type, node, field, list) \ for (type * node = exec_node_data_head(type, list, field); \ node != NULL; \ node = exec_node_data_next(type, node, field)) #define foreach_list_typed_from(type, node, field, list, __start) \ for (type * node = exec_node_data_forward(type, (__start), field); \ node != NULL; \ node = exec_node_data_next(type, node, field)) /** * Iterate over the list from tail to head. Removal is safe for all nodes except the current * iteration's. */ #define foreach_list_typed_reverse(type, node, field, list) \ for (type * node = exec_node_data_tail(type, list, field); \ node != NULL; \ node = exec_node_data_prev(type, node, field)) /** * Iterate over the list from head to tail. Removal is safe for all nodes except the next * iteration's. If the next iteration's node is removed and not inserted again, this loop exits. */ #define foreach_list_typed_safe(type, node, field, list) \ for (type * node = exec_node_data_head(type, list, field), \ * __next = node ? \ exec_node_data_next(type, node, field) : NULL; \ node != NULL; \ node = __next, __next = (__next && __next->field.next) ? \ exec_node_data_next(type, __next, field) : NULL) /** * Iterate over the list from tail to head. Removal is safe for all nodes except the next * iteration's. If the next iteration's node is removed and not inserted again, this loop exits. */ #define foreach_list_typed_reverse_safe(type, node, field, list) \ for (type * node = exec_node_data_tail(type, list, field), \ * __prev = node ? \ exec_node_data_prev(type, node, field) : NULL; \ node != NULL; \ node = __prev, __prev = (__prev && __prev->field.prev) ? \ exec_node_data_prev(type, __prev, field) : NULL) #endif /* LIST_CONTAINER_H */ # 800 "../mesa/src/compiler/glsl/list.h" #endif /* list.h expanded by -frewrite-includes */ # 42 "../mesa/src/mesa/main/shader_types.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* p_state.h expanded by -frewrite-includes */ #include "pipe/p_state.h" #else /* p_state.h expanded by -frewrite-includes */ # 43 "../mesa/src/mesa/main/shader_types.h" # 1 "../mesa/src/gallium/include/pipe/p_state.h" 1 /************************************************************************** * * Copyright 2007 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /** * @file * * Abstract graphics pipe state objects. * * Basic notes: * 1. Want compact representations, so we use bitfields. * 2. Put bitfields before other (GLfloat) fields. * 3. enum bitfields need to be at least one bit extra in size so the most * significant bit is zero. MSVC treats enums as signed so if the high * bit is set, the value will be interpreted as a negative number. * That causes trouble in various places. */ #ifndef PIPE_STATE_H #define PIPE_STATE_H #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_memory.h expanded by -frewrite-includes */ #include "util/u_memory.h" #else /* u_memory.h expanded by -frewrite-includes */ # 47 "../mesa/src/gallium/include/pipe/p_state.h" # 1 "../mesa/src/util/u_memory.h" 1 /************************************************************************** * * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Memory functions */ #ifndef U_MEMORY_H #define U_MEMORY_H #if 0 /* expanded by -frewrite-includes */ #include "util/u_debug.h" #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/util/u_memory.h" # 38 "../mesa/src/util/u_memory.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* os_memory.h expanded by -frewrite-includes */ #include "util/os_memory.h" #else /* os_memory.h expanded by -frewrite-includes */ # 38 "../mesa/src/util/u_memory.h" # 1 "../mesa/src/util/os_memory.h" 1 /************************************************************************** * * Copyright 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * OS memory management abstractions */ #ifndef _OS_MEMORY_H_ #define _OS_MEMORY_H_ #if defined(__CLANG_REWRITTEN_INCLUDES) /* os_memory_stdc.h expanded by -frewrite-includes */ #include "os_memory_stdc.h" #else /* os_memory_stdc.h expanded by -frewrite-includes */ # 37 "../mesa/src/util/os_memory.h" # 1 "../mesa/src/util/os_memory_stdc.h" 1 /************************************************************************** * * Copyright 2008-2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * OS memory management abstractions for the standard C library. */ #ifndef _OS_MEMORY_H_ #error "Must not be included directly. Include os_memory.h instead" #endif # 37 "../mesa/src/util/os_memory_stdc.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/util/os_memory_stdc.h" # 39 "../mesa/src/util/os_memory_stdc.h" #define os_malloc(_size) malloc(_size) #define os_calloc(_count, _size ) calloc(_count, _size ) #define os_free(_ptr) free(_ptr) #define os_realloc( _old_ptr, _old_size, _new_size) \ realloc(_old_ptr, _new_size + 0*(_old_size)) #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_WINDOWS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 49 "../mesa/src/util/os_memory_stdc.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 50 "../mesa/src/util/os_memory_stdc.h" # 51 "../mesa/src/util/os_memory_stdc.h" #define os_malloc_aligned(_size, _align) _aligned_malloc(_size, _align) #define os_free_aligned(_ptr) _aligned_free(_ptr) #define os_realloc_aligned(_ptr, _oldsize, _newsize, _alignment) _aligned_realloc(_ptr, _newsize, _alignment) #else # 57 "../mesa/src/util/os_memory_stdc.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* os_memory_aligned.h expanded by -frewrite-includes */ #include "os_memory_aligned.h" #else /* os_memory_aligned.h expanded by -frewrite-includes */ # 58 "../mesa/src/util/os_memory_stdc.h" # 1 "../mesa/src/util/os_memory_aligned.h" 1 /************************************************************************** * * Copyright 2008-2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Memory alignment wrappers. */ #ifndef _OS_MEMORY_H_ #error "Must not be included directly. Include os_memory.h instead" #endif # 37 "../mesa/src/util/os_memory_aligned.h" /** * Add two size_t values with integer overflow check. * TODO: leverage __builtin_add_overflow where available */ static inline bool add_overflow_size_t(size_t a, size_t b, size_t *res) { *res = a + b; return *res < a || *res < b; } #if 0 /* disabled by -frewrite-includes */ #if defined(HAVE_POSIX_MEMALIGN) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 52 "../mesa/src/util/os_memory_aligned.h" static inline void * os_malloc_aligned(size_t size, size_t alignment) { void *ptr; alignment = (alignment + sizeof(void*) - 1) & ~(sizeof(void*) - 1); if(posix_memalign(&ptr, alignment, size) != 0) return NULL; return ptr; } #define os_free_aligned(_ptr) free(_ptr) #else # 66 "../mesa/src/util/os_memory_aligned.h" /** * Return memory on given byte alignment */ static inline void * os_malloc_aligned(size_t size, size_t alignment) { char *ptr, *buf; size_t alloc_size; /* * Calculate * * alloc_size = size + alignment + sizeof(void *) * * while checking for overflow. */ if (add_overflow_size_t(size, alignment, &alloc_size) || add_overflow_size_t(alloc_size, sizeof(void *), &alloc_size)) { return NULL; } ptr = (char *) os_malloc(alloc_size); if (!ptr) return NULL; buf = (char *)(((uintptr_t)ptr + sizeof(void *) + alignment - 1) & ~((uintptr_t)(alignment - 1))); *(char **)(buf - sizeof(void *)) = ptr; return buf; } /** * Free memory returned by os_malloc_aligned(). */ static inline void os_free_aligned(void *ptr) { if (ptr) { void **cubbyHole = (void **) ((char *) ptr - sizeof(void *)); void *realAddr = *cubbyHole; os_free(realAddr); } } #endif # 113 "../mesa/src/util/os_memory_aligned.h" /** * Reallocate memeory, with alignment */ static inline void * os_realloc_aligned(void *ptr, size_t oldsize, size_t newsize, size_t alignment) { const size_t copySize = MIN2(oldsize, newsize); void *newBuf = os_malloc_aligned(newsize, alignment); if (newBuf && ptr && copySize > 0) { memcpy(newBuf, ptr, copySize); } os_free_aligned(ptr); return newBuf; } #endif /* os_memory_aligned.h expanded by -frewrite-includes */ # 59 "../mesa/src/util/os_memory_stdc.h" 2 #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_POSIX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 61 "../mesa/src/util/os_memory_stdc.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* os_memory_fd.h expanded by -frewrite-includes */ #include "os_memory_fd.h" #else /* os_memory_fd.h expanded by -frewrite-includes */ # 62 "../mesa/src/util/os_memory_stdc.h" # 1 "../mesa/src/util/os_memory_fd.h" 1 /************************************************************************** * * Copyright 2021 Snap Inc. * SPDX-License-Identifier: MIT * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Memory fd wrappers. */ #ifndef _OS_MEMORY_H_ #error "Must not be included directly. Include os_memory.h instead" #endif # 36 "../mesa/src/util/os_memory_fd.h" /** * Imports memory from a file descriptor */ bool os_import_memory_fd(int fd, void **ptr, uint64_t *size, char const *driver_id); /** * Return memory on given byte alignment */ void * os_malloc_aligned_fd(size_t size, size_t alignment, int *fd, char const *fd_name, char const *driver_id); /** * Free memory returned by os_malloc_aligned_fd(). */ void os_free_fd(void *ptr); #endif /* os_memory_fd.h expanded by -frewrite-includes */ # 63 "../mesa/src/util/os_memory_stdc.h" 2 #endif # 65 "../mesa/src/util/os_memory_stdc.h" #endif # 67 "../mesa/src/util/os_memory_stdc.h" #endif /* os_memory_stdc.h expanded by -frewrite-includes */ # 38 "../mesa/src/util/os_memory.h" 2 #endif /* _OS_MEMORY_H_ */ # 40 "../mesa/src/util/os_memory.h" #endif /* os_memory.h expanded by -frewrite-includes */ # 39 "../mesa/src/util/u_memory.h" 2 #ifdef __cplusplus extern "C" { #endif # 44 "../mesa/src/util/u_memory.h" #define MALLOC(_size) os_malloc(_size) #define CALLOC(_count, _size) os_calloc(_count, _size) #define FREE(_ptr ) os_free(_ptr) #define REALLOC(_ptr, _old_size, _size) os_realloc(_ptr, _old_size, _size) #define MALLOC_STRUCT(T) (struct T *) MALLOC(sizeof(struct T)) #define CALLOC_STRUCT(T) (struct T *) CALLOC(1, sizeof(struct T)) #define CALLOC_VARIANT_LENGTH_STRUCT(T,more_size) ((struct T *) CALLOC(1, sizeof(struct T) + more_size)) #define align_malloc(_size, _alignment) os_malloc_aligned(_size, _alignment) #define align_free(_ptr) os_free_aligned(_ptr) #define align_realloc(_ptr, _oldsize, _newsize, _alignment) os_realloc_aligned(_ptr, _oldsize, _newsize, _alignment) static inline void * align_calloc(size_t size, unsigned long alignment) { void *ptr = align_malloc(size, alignment); if (ptr) memset(ptr, 0, size); return ptr; } /** * Duplicate a block of memory. */ static inline void * mem_dup(const void *src, size_t size) { void *dup = MALLOC(size); if (dup) memcpy(dup, src, size); return dup; } /* TODO: this could be different on non-x86 architectures. */ #define CACHE_LINE_SIZE 64 /** * Declare a variable on its own cache line. * * This helps eliminate "False sharing" to make atomic operations * on pipe_reference::count faster and/or access to adjacent fields faster. * * https://en.wikipedia.org/wiki/False_sharing * * CALLOC_STRUCT_CL or MALLOC_STRUCT_CL and FREE_CL should be used to allocate * structures that contain this. * * NOTE: Don't use c11 alignas because it causes the whole structure to be * aligned, but we only want to align the field. */ #define EXCLUSIVE_CACHELINE(decl) \ union { char __cl_space[CACHE_LINE_SIZE]; \ decl; } /* Allocate a structure aligned to a cache line. (used to make atomic ops faster) */ #define MALLOC_STRUCT_CL(T) (struct T *)align_malloc(sizeof(struct T), CACHE_LINE_SIZE) #define CALLOC_STRUCT_CL(T) (struct T *)align_calloc(sizeof(struct T), CACHE_LINE_SIZE) #define FREE_CL(ptr) align_free(ptr) #ifdef __cplusplus } #endif # 115 "../mesa/src/util/u_memory.h" #endif /* U_MEMORY_H */ # 118 "../mesa/src/util/u_memory.h" #endif /* u_memory.h expanded by -frewrite-includes */ # 48 "../mesa/src/gallium/include/pipe/p_state.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* compiler.h expanded by -frewrite-includes */ #include "util/compiler.h" #else /* compiler.h expanded by -frewrite-includes */ # 49 "../mesa/src/gallium/include/pipe/p_state.h" # 1 "../mesa/src/util/compiler.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (C) 2009 VMware, Inc. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file compiler.h * Compiler-related stuff. */ #ifndef COMPILER_H #define COMPILER_H #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* assert.h expanded by -frewrite-includes */ #include #else /* assert.h expanded by -frewrite-includes */ # 37 "../mesa/src/util/compiler.h" # 1 "/usr/include/assert.h" 1 3 4 /* Copyright (C) 1991-2024 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* * ISO C99 Standard: 7.2 Diagnostics */ #ifdef _ASSERT_H # undef _ASSERT_H # undef assert # undef __ASSERT_VOID_CAST # ifdef __USE_GNU # undef assert_perror # endif # 31 "/usr/include/assert.h" 3 4 #endif /* assert.h */ # 33 "/usr/include/assert.h" 3 4 #define _ASSERT_H 1 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 35 "/usr/include/assert.h" 3 4 # 36 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if defined __cplusplus && __GNUC_PREREQ (2,95) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST static_cast #else # 40 "/usr/include/assert.h" 3 4 # define __ASSERT_VOID_CAST (void) #endif # 42 "/usr/include/assert.h" 3 4 /* void assert (int expression); If NDEBUG is defined, do nothing. If not, and EXPRESSION is zero, print an error message and abort. */ #ifdef NDEBUG # define assert(expr) (__ASSERT_VOID_CAST (0)) /* void assert_perror (int errnum); If NDEBUG is defined, do nothing. If not, and ERRNUM is not zero, print an error message with the error text for ERRNUM and abort. (This is a GNU extension.) */ # ifdef __USE_GNU # define assert_perror(errnum) (__ASSERT_VOID_CAST (0)) # endif # 61 "/usr/include/assert.h" 3 4 #else /* Not NDEBUG. */ # 63 "/usr/include/assert.h" 3 4 __BEGIN_DECLS /* This prints an "Assertion failed" message and aborts. */ extern void __assert_fail (const char *__assertion, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* Likewise, but prints the error text for ERRNUM. */ extern void __assert_perror_fail (int __errnum, const char *__file, unsigned int __line, const char *__function) __THROW __attribute__ ((__noreturn__)); /* The following is not at all used here but needed for standard compliance. */ extern void __assert (const char *__assertion, const char *__file, int __line) __THROW __attribute__ ((__noreturn__)); __END_DECLS /* When possible, define assert so that it does not add extra parentheses around EXPR. Otherwise, those added parentheses would suppress warnings we'd expect to be detected by gcc's -Wparentheses. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __has_builtin #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 90 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if __has_builtin (__builtin_FILE) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 91 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __builtin_FILE () # define __ASSERT_LINE __builtin_LINE () # endif # 94 "/usr/include/assert.h" 3 4 # endif # 95 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if !defined __ASSERT_FILE #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 96 "/usr/include/assert.h" 3 4 # define __ASSERT_FILE __FILE__ # define __ASSERT_LINE __LINE__ # endif # 99 "/usr/include/assert.h" 3 4 # define assert(expr) \ (static_cast (expr) \ ? void (0) \ : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \ __ASSERT_FUNCTION)) #if 0 /* disabled by -frewrite-includes */ #if 0 # elif !defined __GNUC__ || defined __STRICT_ANSI__ #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 105 "/usr/include/assert.h" 3 4 # define assert(expr) \ ((expr) \ ? __ASSERT_VOID_CAST (0) \ : __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION)) # else # 110 "/usr/include/assert.h" 3 4 /* The first occurrence of EXPR is not evaluated due to the sizeof, but will trigger any pedantic warnings masked by the __extension__ for the second occurrence. The ternary operator is required to support function pointers and bit fields in this context, and to suppress the evaluation of variable length arrays. */ # define assert(expr) \ ((void) sizeof ((expr) ? 1 : 0), __extension__ ({ \ if (expr) \ ; /* empty */ \ else \ __assert_fail (#expr, __FILE__, __LINE__, __ASSERT_FUNCTION); \ })) # endif # 123 "/usr/include/assert.h" 3 4 # ifdef __USE_GNU # define assert_perror(errnum) \ (!(errnum) \ ? __ASSERT_VOID_CAST (0) \ : __assert_perror_fail ((errnum), __FILE__, __LINE__, __ASSERT_FUNCTION)) # endif # 130 "/usr/include/assert.h" 3 4 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if 0 /* disabled by -frewrite-includes */ # if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 137 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __extension__ __PRETTY_FUNCTION__ # else # 139 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 140 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION __func__ # else # 142 "/usr/include/assert.h" 3 4 # define __ASSERT_FUNCTION ((const char *) 0) # endif # 144 "/usr/include/assert.h" 3 4 # endif # 145 "/usr/include/assert.h" 3 4 #endif /* NDEBUG. */ # 147 "/usr/include/assert.h" 3 4 #if 0 /* disabled by -frewrite-includes */ #if (defined __USE_ISOC11 \ && (!defined __STDC_VERSION__ \ || __STDC_VERSION__ <= 201710L \ || !__GNUC_PREREQ (13, 0)) \ && !defined __cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 154 "/usr/include/assert.h" 3 4 # undef static_assert # define static_assert _Static_assert #endif # 157 "/usr/include/assert.h" 3 4 #endif /* assert.h expanded by -frewrite-includes */ # 38 "../mesa/src/util/compiler.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/util/compiler.h" # 39 "../mesa/src/util/compiler.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stdarg.h expanded by -frewrite-includes */ #include #else /* stdarg.h expanded by -frewrite-includes */ # 39 "../mesa/src/util/compiler.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 1 3 /*===---- stdarg.h - Variable argument handling ----------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stdarg.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #undef __need_va_list #undef __need_va_arg #undef __need___va_copy #undef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 28 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 29 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 30 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #else # 32 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need___va_list) && !defined(__need_va_list) && \ !defined(__need_va_arg) && !defined(__need___va_copy) && \ !defined(__need_va_copy) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need___va_list #define __need_va_list #define __need_va_arg #define __need___va_copy /* GCC always defines __va_copy, but does not define va_copy unless in c99 mode * or -ansi is not specified, since it was not part of C90. */ #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) || \ !defined(__STRICT_ANSI__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #define __need_va_copy #endif # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_header_macro.h> #endif /* expanded by -frewrite-includes */ # 47 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 48 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif # 49 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___gnuc_va_list.h> #endif /* expanded by -frewrite-includes */ # 51 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 52 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_list #endif /* defined(__need___va_list) */ # 54 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_list #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_list.h> #endif /* expanded by -frewrite-includes */ # 56 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 57 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_list #endif /* defined(__need_va_list) */ # 59 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_arg #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_arg.h> #endif /* expanded by -frewrite-includes */ # 61 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 62 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_arg #endif /* defined(__need_va_arg) */ # 64 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need___va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg___va_copy.h> #endif /* expanded by -frewrite-includes */ # 66 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 67 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need___va_copy #endif /* defined(__need___va_copy) */ # 69 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #ifdef __need_va_copy #if 0 /* expanded by -frewrite-includes */ #include <__stdarg_va_copy.h> #endif /* expanded by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 # 72 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #undef __need_va_copy #endif /* defined(__need_va_copy) */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* __MVS__ */ # 76 "/home/marcus/llvm20/lib/clang/20/include/stdarg.h" 3 #endif /* stdarg.h expanded by -frewrite-includes */ # 40 "../mesa/src/util/compiler.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/util/compiler.h" # 41 "../mesa/src/util/compiler.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* stddef.h expanded by -frewrite-includes */ #include #else /* stddef.h expanded by -frewrite-includes */ # 41 "../mesa/src/util/compiler.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 1 3 /*===---- stddef.h - Basic type definitions --------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * This header is designed to be included multiple times. If any of the __need_ * macros are defined, then only that subset of interfaces are provided. This * can be useful for POSIX headers that need to not expose all of stddef.h, but * need to use some of its interfaces. Otherwise this header provides all of * the expected interfaces. * * When clang modules are enabled, this header is a textual header to support * the multiple include behavior. As such, it doesn't directly declare anything * so that it doesn't add duplicate declarations to all of its includers' * modules. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__MVS__) && __has_include_next() #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 23 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_ptrdiff_t #undef __need_size_t #undef __need_rsize_t #undef __need_wchar_t #undef __need_NULL #undef __need_nullptr_t #undef __need_unreachable #undef __need_max_align_t #undef __need_offsetof #undef __need_wint_t #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 33 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include_next #endif /* expanded by -frewrite-includes */ # 34 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 35 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #else # 37 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \ !defined(__need_rsize_t) && !defined(__need_wchar_t) && \ !defined(__need_NULL) && !defined(__need_nullptr_t) && \ !defined(__need_unreachable) && !defined(__need_max_align_t) && \ !defined(__need_offsetof) && !defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_ptrdiff_t #define __need_size_t /* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is * enabled. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 48 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_rsize_t #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_wchar_t #if 0 /* disabled by -frewrite-includes */ #if !defined(__STDDEF_H) || __has_feature(modules) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* * __stddef_null.h is special when building without modules: if __need_NULL is * set, then it will unconditionally redefine NULL. To avoid stepping on client * definitions of NULL, __need_NULL should only be set the first time this * header is included, that is when __STDDEF_H is not defined. However, when * building with modules, this header is a textual header and needs to * unconditionally include __stdef_null.h to support multiple submodules * exporting _Builtin_stddef.null. Take module SM with submodules A and B, whose * headers both include stddef.h When SM.A builds, __STDDEF_H will be defined. * When SM.B builds, the definition from SM.A will leak when building without * local submodule visibility. stddef.h wouldn't include __stddef_null.h, and * SM.B wouldn't import _Builtin_stddef.null, and SM.B's `export *` wouldn't * export NULL as expected. When building with modules, always include * __stddef_null.h so that everything works as expected. */ #define __need_NULL #endif # 69 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || \ defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 71 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_nullptr_t #endif # 73 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 74 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_unreachable #endif # 76 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || \ (defined(__cplusplus) && __cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 78 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_max_align_t #endif # 80 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #define __need_offsetof /* wint_t is provided by and not . It's here * for compatibility, but must be explicitly requested. Therefore * __need_wint_t is intentionally not defined here. */ #if 0 /* expanded by -frewrite-includes */ #include <__stddef_header_macro.h> #endif /* expanded by -frewrite-includes */ # 84 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 85 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif # 86 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_ptrdiff_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ #include <__stddef_ptrdiff_t.h> #else /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 88 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 1 3 /*===---- __stddef_ptrdiff_t.h - Definition of ptrdiff_t -------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_PTRDIFF_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #define _PTRDIFF_T typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_ptrdiff_t.h" 3 #endif /* __stddef_ptrdiff_t.h expanded by -frewrite-includes */ # 89 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_ptrdiff_t #endif /* defined(__need_ptrdiff_t) */ # 91 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_size_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_size_t.h expanded by -frewrite-includes */ #include <__stddef_size_t.h> #else /* __stddef_size_t.h expanded by -frewrite-includes */ # 93 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 1 3 /*===---- __stddef_size_t.h - Definition of size_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_SIZE_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #define _SIZE_T typedef __SIZE_TYPE__ size_t; #endif # 21 "/home/marcus/llvm20/lib/clang/20/include/__stddef_size_t.h" 3 #endif /* __stddef_size_t.h expanded by -frewrite-includes */ # 94 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_size_t #endif /*defined(__need_size_t) */ # 96 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_rsize_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_rsize_t.h> #endif /* expanded by -frewrite-includes */ # 98 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 99 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_rsize_t #endif /* defined(__need_rsize_t) */ # 101 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wchar_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_wchar_t.h expanded by -frewrite-includes */ #include <__stddef_wchar_t.h> #else /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 103 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 1 3 /*===---- __stddef_wchar.h - Definition of wchar_t -------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #if 0 /* disabled by -frewrite-includes */ #if !defined(__cplusplus) || (defined(_MSC_VER) && !_NATIVE_WCHAR_T_DEFINED) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 11 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(_WCHAR_T) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #define _WCHAR_T #ifdef _MSC_EXTENSIONS #define _WCHAR_T_DEFINED #endif # 23 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 typedef __WCHAR_TYPE__ wchar_t; #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/__stddef_wchar_t.h" 3 #endif /* __stddef_wchar_t.h expanded by -frewrite-includes */ # 104 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_wchar_t #endif /* defined(__need_wchar_t) */ # 106 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_NULL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_null.h> #endif /* expanded by -frewrite-includes */ # 108 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 109 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_NULL #endif /* defined(__need_NULL) */ # 111 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_nullptr_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_nullptr_t.h> #endif /* expanded by -frewrite-includes */ # 113 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 114 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_nullptr_t #endif /* defined(__need_nullptr_t) */ # 116 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_unreachable) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_unreachable.h> #endif /* expanded by -frewrite-includes */ # 118 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 119 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_unreachable #endif /* defined(__need_unreachable) */ # 121 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_max_align_t) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_max_align_t.h> #endif /* expanded by -frewrite-includes */ # 123 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 124 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_max_align_t #endif /* defined(__need_max_align_t) */ # 126 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__need_offsetof) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* __stddef_offsetof.h expanded by -frewrite-includes */ #include <__stddef_offsetof.h> #else /* __stddef_offsetof.h expanded by -frewrite-includes */ # 128 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 1 3 /*===---- __stddef_offsetof.h - Definition of offsetof ---------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ /* * When -fbuiltin-headers-in-system-modules is set this is a non-modular header * and needs to behave as if it was textual. */ #if 0 /* disabled by -frewrite-includes */ #if !defined(offsetof) || \ (__has_feature(modules) && !__building_module(_Builtin_stddef)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #define offsetof(t, d) __builtin_offsetof(t, d) #endif # 18 "/home/marcus/llvm20/lib/clang/20/include/__stddef_offsetof.h" 3 #endif /* __stddef_offsetof.h expanded by -frewrite-includes */ # 129 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 2 3 #undef __need_offsetof #endif /* defined(__need_offsetof) */ # 131 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 /* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use __WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */ #if 0 /* disabled by -frewrite-includes */ #if defined(__need_wint_t) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #if 0 /* expanded by -frewrite-includes */ #include <__stddef_wint_t.h> #endif /* expanded by -frewrite-includes */ # 135 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 # 136 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #undef __need_wint_t #endif /* __need_wint_t */ # 138 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* __MVS__ */ # 140 "/home/marcus/llvm20/lib/clang/20/include/stddef.h" 3 #endif /* stddef.h expanded by -frewrite-includes */ # 42 "../mesa/src/util/compiler.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 42 "../mesa/src/util/compiler.h" # 43 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 43 "../mesa/src/util/compiler.h" # 44 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 44 "../mesa/src/util/compiler.h" # 45 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include "util/detect.h" #endif /* expanded by -frewrite-includes */ # 46 "../mesa/src/util/compiler.h" # 47 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 47 "../mesa/src/util/compiler.h" # 48 "../mesa/src/util/compiler.h" /** * Define CPU_TO_LE32 * Do not use these unless absolutely necessary! * Try to use a runtime test instead. * For now, only used by some DRI hardware drivers for color/texel packing. */ #if 0 /* disabled by -frewrite-includes */ #if UTIL_ARCH_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 56 "../mesa/src/util/compiler.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__linux__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 57 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 57 "../mesa/src/util/compiler.h" # 58 "../mesa/src/util/compiler.h" #define CPU_TO_LE32( x ) bswap_32( x ) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__APPLE__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 60 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 60 "../mesa/src/util/compiler.h" # 61 "../mesa/src/util/compiler.h" #define CPU_TO_LE32( x ) CFSwapInt32HostToLittle( x ) #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(__OpenBSD__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 63 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 63 "../mesa/src/util/compiler.h" # 64 "../mesa/src/util/compiler.h" #define CPU_TO_LE32( x ) htole32( x ) #else /*__linux__ */ # 66 "../mesa/src/util/compiler.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 66 "../mesa/src/util/compiler.h" # 67 "../mesa/src/util/compiler.h" #define CPU_TO_LE32( x ) bswap32( x ) #endif /*__linux__*/ # 69 "../mesa/src/util/compiler.h" #else # 70 "../mesa/src/util/compiler.h" #define CPU_TO_LE32( x ) ( x ) #endif # 72 "../mesa/src/util/compiler.h" #define LE32_TO_CPU( x ) CPU_TO_LE32( x ) /* Macro for stack alignment. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) && DETECT_ARCH_X86 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 77 "../mesa/src/util/compiler.h" #define UTIL_ALIGN_STACK __attribute__((force_align_arg_pointer)) #else # 79 "../mesa/src/util/compiler.h" #define UTIL_ALIGN_STACK #endif # 81 "../mesa/src/util/compiler.h" #define IEEE_ONE 0x3f800000 #ifndef __has_attribute # define __has_attribute(x) 0 #endif # 87 "../mesa/src/util/compiler.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__has_cpp_attribute) && defined(__clang__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 89 "../mesa/src/util/compiler.h" /* We do not do the same trick as __has_attribute because parsing * clang::fallthrough in the preprocessor fails in GCC. */ # define HAS_CLANG_FALLTHROUGH __has_cpp_attribute(clang::fallthrough) #else # 93 "../mesa/src/util/compiler.h" # define HAS_CLANG_FALLTHROUGH 0 #endif # 95 "../mesa/src/util/compiler.h" #if 0 /* disabled by -frewrite-includes */ #if (defined(__cplusplus) && (__cplusplus >= 201703L)) || \ (defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201710L)) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 98 "../mesa/src/util/compiler.h" /* Standard C++17/C23 attribute */ #define FALLTHROUGH [[fallthrough]] #if 0 /* disabled by -frewrite-includes */ #if 0 #elif HAS_CLANG_FALLTHROUGH #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 101 "../mesa/src/util/compiler.h" /* Clang++ specific */ #define FALLTHROUGH [[clang::fallthrough]] #if 0 /* disabled by -frewrite-includes */ #if 0 #elif __has_attribute(fallthrough) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 104 "../mesa/src/util/compiler.h" /* Non-standard but supported by at least gcc and clang */ #define FALLTHROUGH __attribute__((fallthrough)) #else # 107 "../mesa/src/util/compiler.h" #define FALLTHROUGH do { } while(0) #endif # 109 "../mesa/src/util/compiler.h" #ifdef __cplusplus extern "C" { #endif # 113 "../mesa/src/util/compiler.h" #if 0 /* disabled by -frewrite-includes */ #if !defined(__HAIKU__) && !defined(__USE_MISC) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 115 "../mesa/src/util/compiler.h" #if 0 /* disabled by -frewrite-includes */ #if !DETECT_OS_ANDROID #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 116 "../mesa/src/util/compiler.h" typedef unsigned int uint; #endif # 118 "../mesa/src/util/compiler.h" #endif # 119 "../mesa/src/util/compiler.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 121 "../mesa/src/util/compiler.h" } #endif # 123 "../mesa/src/util/compiler.h" #endif /* COMPILER_H */ # 125 "../mesa/src/util/compiler.h" #endif /* compiler.h expanded by -frewrite-includes */ # 50 "../mesa/src/gallium/include/pipe/p_state.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* p_defines.h expanded by -frewrite-includes */ #include "p_defines.h" #else /* p_defines.h expanded by -frewrite-includes */ # 50 "../mesa/src/gallium/include/pipe/p_state.h" # 1 "../mesa/src/gallium/include/pipe/p_defines.h" 1 /************************************************************************** * * Copyright 2007 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef PIPE_DEFINES_H #define PIPE_DEFINES_H /* For pipe_blend* and pipe_logicop enums */ #if defined(__CLANG_REWRITTEN_INCLUDES) /* blend.h expanded by -frewrite-includes */ #include "util/blend.h" #else /* blend.h expanded by -frewrite-includes */ # 32 "../mesa/src/gallium/include/pipe/p_defines.h" # 1 "../mesa/src/util/blend.h" 1 /* * Copyright 2023 Valve Corporation * Copyright 2007 VMware, Inc. * SPDX-License-Identifier: MIT */ #ifndef UTIL_BLEND_H #define UTIL_BLEND_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 10 "../mesa/src/util/blend.h" # 11 "../mesa/src/util/blend.h" #define PIPE_BLENDFACTOR_INVERT_BIT (0x10) enum pipe_blendfactor { PIPE_BLENDFACTOR_ONE = 1, PIPE_BLENDFACTOR_SRC_COLOR, PIPE_BLENDFACTOR_SRC_ALPHA, PIPE_BLENDFACTOR_DST_ALPHA, PIPE_BLENDFACTOR_DST_COLOR, PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE, PIPE_BLENDFACTOR_CONST_COLOR, PIPE_BLENDFACTOR_CONST_ALPHA, PIPE_BLENDFACTOR_SRC1_COLOR, PIPE_BLENDFACTOR_SRC1_ALPHA, PIPE_BLENDFACTOR_ZERO = PIPE_BLENDFACTOR_INVERT_BIT | PIPE_BLENDFACTOR_ONE, PIPE_BLENDFACTOR_INV_SRC_COLOR, PIPE_BLENDFACTOR_INV_SRC_ALPHA, PIPE_BLENDFACTOR_INV_DST_ALPHA, PIPE_BLENDFACTOR_INV_DST_COLOR, /* Intentionally weird wrapping due to Gallium trace parsing this file */ PIPE_BLENDFACTOR_INV_CONST_COLOR = PIPE_BLENDFACTOR_INVERT_BIT | PIPE_BLENDFACTOR_CONST_COLOR, PIPE_BLENDFACTOR_INV_CONST_ALPHA, PIPE_BLENDFACTOR_INV_SRC1_COLOR, PIPE_BLENDFACTOR_INV_SRC1_ALPHA, }; static inline bool util_blendfactor_is_inverted(enum pipe_blendfactor factor) { /* By construction of the enum */ return (factor & PIPE_BLENDFACTOR_INVERT_BIT); } static inline enum pipe_blendfactor util_blendfactor_without_invert(enum pipe_blendfactor factor) { /* By construction of the enum */ return (enum pipe_blendfactor)(factor & ~PIPE_BLENDFACTOR_INVERT_BIT); } enum pipe_blend_func { PIPE_BLEND_ADD, PIPE_BLEND_SUBTRACT, PIPE_BLEND_REVERSE_SUBTRACT, PIPE_BLEND_MIN, PIPE_BLEND_MAX, }; enum pipe_logicop { PIPE_LOGICOP_CLEAR, PIPE_LOGICOP_NOR, PIPE_LOGICOP_AND_INVERTED, PIPE_LOGICOP_COPY_INVERTED, PIPE_LOGICOP_AND_REVERSE, PIPE_LOGICOP_INVERT, PIPE_LOGICOP_XOR, PIPE_LOGICOP_NAND, PIPE_LOGICOP_AND, PIPE_LOGICOP_EQUIV, PIPE_LOGICOP_NOOP, PIPE_LOGICOP_OR_INVERTED, PIPE_LOGICOP_COPY, PIPE_LOGICOP_OR_REVERSE, PIPE_LOGICOP_OR, PIPE_LOGICOP_SET, }; /** * When faking RGBX render target formats with RGBA ones, the blender is still * supposed to treat the destination's alpha channel as 1 instead of the * garbage that's there. Return a blend factor that will take that into * account. */ static inline enum pipe_blendfactor util_blend_dst_alpha_to_one(enum pipe_blendfactor factor) { switch (factor) { case PIPE_BLENDFACTOR_DST_ALPHA: return PIPE_BLENDFACTOR_ONE; case PIPE_BLENDFACTOR_INV_DST_ALPHA: return PIPE_BLENDFACTOR_ZERO; default: return factor; } } #endif # 101 "../mesa/src/util/blend.h" #endif /* blend.h expanded by -frewrite-includes */ # 33 "../mesa/src/gallium/include/pipe/p_defines.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/compiler.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/gallium/include/pipe/p_defines.h" # 35 "../mesa/src/gallium/include/pipe/p_defines.h" #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_enums.h" #endif /* expanded by -frewrite-includes */ # 36 "../mesa/src/gallium/include/pipe/p_defines.h" # 37 "../mesa/src/gallium/include/pipe/p_defines.h" #if 0 /* expanded by -frewrite-includes */ #include "util/os_time.h" #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/gallium/include/pipe/p_defines.h" # 38 "../mesa/src/gallium/include/pipe/p_defines.h" #ifdef __cplusplus extern "C" { #endif # 42 "../mesa/src/gallium/include/pipe/p_defines.h" /** * Gallium error codes. * * - A zero value always means success. * - A negative value always means failure. * - The meaning of a positive value is function dependent. */ enum pipe_error { PIPE_OK = 0, PIPE_ERROR = -1, /**< Generic error */ PIPE_ERROR_BAD_INPUT = -2, PIPE_ERROR_OUT_OF_MEMORY = -3, PIPE_ERROR_RETRY = -4 /* TODO */ }; /** * Inequality functions. Used for depth test, stencil compare, alpha * test, shadow compare, etc. */ enum pipe_compare_func { PIPE_FUNC_NEVER, PIPE_FUNC_LESS, PIPE_FUNC_EQUAL, PIPE_FUNC_LEQUAL, PIPE_FUNC_GREATER, PIPE_FUNC_NOTEQUAL, PIPE_FUNC_GEQUAL, PIPE_FUNC_ALWAYS, }; /** Polygon fill mode */ enum { PIPE_POLYGON_MODE_FILL, PIPE_POLYGON_MODE_LINE, PIPE_POLYGON_MODE_POINT, PIPE_POLYGON_MODE_FILL_RECTANGLE, }; /** Polygon face specification, eg for culling */ #define PIPE_FACE_NONE 0 #define PIPE_FACE_FRONT 1 #define PIPE_FACE_BACK 2 #define PIPE_FACE_FRONT_AND_BACK (PIPE_FACE_FRONT | PIPE_FACE_BACK) /** Stencil ops */ enum pipe_stencil_op { PIPE_STENCIL_OP_KEEP, PIPE_STENCIL_OP_ZERO, PIPE_STENCIL_OP_REPLACE, PIPE_STENCIL_OP_INCR, PIPE_STENCIL_OP_DECR, PIPE_STENCIL_OP_INCR_WRAP, PIPE_STENCIL_OP_DECR_WRAP, PIPE_STENCIL_OP_INVERT, }; /** Texture types. * See the documentation for info on PIPE_TEXTURE_RECT vs PIPE_TEXTURE_2D */ enum pipe_texture_target { PIPE_BUFFER, PIPE_TEXTURE_1D, PIPE_TEXTURE_2D, PIPE_TEXTURE_3D, PIPE_TEXTURE_CUBE, PIPE_TEXTURE_RECT, PIPE_TEXTURE_1D_ARRAY, PIPE_TEXTURE_2D_ARRAY, PIPE_TEXTURE_CUBE_ARRAY, PIPE_MAX_TEXTURE_TYPES, }; enum pipe_tex_face { PIPE_TEX_FACE_POS_X, PIPE_TEX_FACE_NEG_X, PIPE_TEX_FACE_POS_Y, PIPE_TEX_FACE_NEG_Y, PIPE_TEX_FACE_POS_Z, PIPE_TEX_FACE_NEG_Z, PIPE_TEX_FACE_MAX, }; enum pipe_tex_wrap { PIPE_TEX_WRAP_REPEAT, PIPE_TEX_WRAP_CLAMP, PIPE_TEX_WRAP_CLAMP_TO_EDGE, PIPE_TEX_WRAP_CLAMP_TO_BORDER, PIPE_TEX_WRAP_MIRROR_REPEAT, PIPE_TEX_WRAP_MIRROR_CLAMP, PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE, PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER, }; /** Between mipmaps, ie mipfilter */ enum pipe_tex_mipfilter { PIPE_TEX_MIPFILTER_NEAREST, PIPE_TEX_MIPFILTER_LINEAR, PIPE_TEX_MIPFILTER_NONE, }; /** Within a mipmap, ie min/mag filter */ enum pipe_tex_filter { PIPE_TEX_FILTER_NEAREST, PIPE_TEX_FILTER_LINEAR, }; enum pipe_tex_compare { PIPE_TEX_COMPARE_NONE, PIPE_TEX_COMPARE_R_TO_TEXTURE, }; enum pipe_tex_reduction_mode { PIPE_TEX_REDUCTION_WEIGHTED_AVERAGE, PIPE_TEX_REDUCTION_MIN, PIPE_TEX_REDUCTION_MAX, }; /** * Clear buffer bits */ #define PIPE_CLEAR_DEPTH (1 << 0) #define PIPE_CLEAR_STENCIL (1 << 1) #define PIPE_CLEAR_COLOR0 (1 << 2) #define PIPE_CLEAR_COLOR1 (1 << 3) #define PIPE_CLEAR_COLOR2 (1 << 4) #define PIPE_CLEAR_COLOR3 (1 << 5) #define PIPE_CLEAR_COLOR4 (1 << 6) #define PIPE_CLEAR_COLOR5 (1 << 7) #define PIPE_CLEAR_COLOR6 (1 << 8) #define PIPE_CLEAR_COLOR7 (1 << 9) /** Combined flags */ /** All color buffers currently bound */ #define PIPE_CLEAR_COLOR (PIPE_CLEAR_COLOR0 | PIPE_CLEAR_COLOR1 | \ PIPE_CLEAR_COLOR2 | PIPE_CLEAR_COLOR3 | \ PIPE_CLEAR_COLOR4 | PIPE_CLEAR_COLOR5 | \ PIPE_CLEAR_COLOR6 | PIPE_CLEAR_COLOR7) #define PIPE_CLEAR_DEPTHSTENCIL (PIPE_CLEAR_DEPTH | PIPE_CLEAR_STENCIL) /** * CPU access map flags */ enum pipe_map_flags { PIPE_MAP_NONE = 0, /** * Resource contents read back (or accessed directly) at transfer * create time. */ PIPE_MAP_READ = 1 << 0, /** * Resource contents will be written back at buffer/texture_unmap * time (or modified as a result of being accessed directly). */ PIPE_MAP_WRITE = 1 << 1, /** * Read/modify/write */ PIPE_MAP_READ_WRITE = PIPE_MAP_READ | PIPE_MAP_WRITE, /** * The transfer should map the texture storage directly. The driver may * return NULL if that isn't possible, and the gallium frontend needs to cope * with that and use an alternative path without this flag. * * E.g. the gallium frontend could have a simpler path which maps textures and * does read/modify/write cycles on them directly, and a more complicated * path which uses minimal read and write transfers. * * This flag supresses implicit "DISCARD" for buffer_subdata. */ PIPE_MAP_DIRECTLY = 1 << 2, /** * Discards the memory within the mapped region. * * It should not be used with PIPE_MAP_READ. * * See also: * - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_RANGE_BIT flag. */ PIPE_MAP_DISCARD_RANGE = 1 << 3, /** * Fail if the resource cannot be mapped immediately. * * See also: * - Direct3D's D3DLOCK_DONOTWAIT flag. * - Mesa's MESA_MAP_NOWAIT_BIT flag. * - WDDM's D3DDDICB_LOCKFLAGS.DonotWait flag. */ PIPE_MAP_DONTBLOCK = 1 << 4, /** * Do not attempt to synchronize pending operations on the resource when mapping. * * It should not be used with PIPE_MAP_READ. * * See also: * - OpenGL's ARB_map_buffer_range extension, MAP_UNSYNCHRONIZED_BIT flag. * - Direct3D's D3DLOCK_NOOVERWRITE flag. * - WDDM's D3DDDICB_LOCKFLAGS.IgnoreSync flag. */ PIPE_MAP_UNSYNCHRONIZED = 1 << 5, /** * Written ranges will be notified later with * pipe_context::transfer_flush_region. * * It should not be used with PIPE_MAP_READ. * * See also: * - pipe_context::transfer_flush_region * - OpenGL's ARB_map_buffer_range extension, MAP_FLUSH_EXPLICIT_BIT flag. */ PIPE_MAP_FLUSH_EXPLICIT = 1 << 6, /** * Discards all memory backing the resource. * * It should not be used with PIPE_MAP_READ. * * This is equivalent to: * - OpenGL's ARB_map_buffer_range extension, MAP_INVALIDATE_BUFFER_BIT * - BufferData(NULL) on a GL buffer * - Direct3D's D3DLOCK_DISCARD flag. * - WDDM's D3DDDICB_LOCKFLAGS.Discard flag. * - D3D10 DDI's D3D10_DDI_MAP_WRITE_DISCARD flag * - D3D10's D3D10_MAP_WRITE_DISCARD flag. */ PIPE_MAP_DISCARD_WHOLE_RESOURCE = 1 << 7, /** * Allows the resource to be used for rendering while mapped. * * PIPE_RESOURCE_FLAG_MAP_PERSISTENT must be set when creating * the resource. * * If COHERENT is not set, memory_barrier(PIPE_BARRIER_MAPPED_BUFFER) * must be called to ensure the device can see what the CPU has written. */ PIPE_MAP_PERSISTENT = 1 << 8, /** * If PERSISTENT is set, this ensures any writes done by the device are * immediately visible to the CPU and vice versa. * * PIPE_RESOURCE_FLAG_MAP_COHERENT must be set when creating * the resource. */ PIPE_MAP_COHERENT = 1 << 9, /** * Map a resource in a thread-safe manner, because the calling thread can * be any thread. It can only be used if both WRITE and UNSYNCHRONIZED are * set. */ PIPE_MAP_THREAD_SAFE = 1 << 10, /** * Map only the depth aspect of a resource */ PIPE_MAP_DEPTH_ONLY = 1 << 11, /** * Map only the stencil aspect of a resource */ PIPE_MAP_STENCIL_ONLY = 1 << 12, /** * Mapping will be used only once (never remapped). */ PIPE_MAP_ONCE = 1 << 13, /** * This and higher bits are reserved for private use by drivers. Drivers * should use this as (PIPE_MAP_DRV_PRV << i). */ PIPE_MAP_DRV_PRV = 1 << 14, }; /** * Flags for the flush function. */ enum pipe_flush_flags { PIPE_FLUSH_END_OF_FRAME = (1 << 0), PIPE_FLUSH_DEFERRED = (1 << 1), PIPE_FLUSH_FENCE_FD = (1 << 2), PIPE_FLUSH_ASYNC = (1 << 3), PIPE_FLUSH_HINT_FINISH = (1 << 4), PIPE_FLUSH_TOP_OF_PIPE = (1 << 5), PIPE_FLUSH_BOTTOM_OF_PIPE = (1 << 6), }; /** * Flags for pipe_context::dump_debug_state. */ #define PIPE_DUMP_DEVICE_STATUS_REGISTERS (1 << 0) /** * Create a compute-only context. Use in pipe_screen::context_create. * This disables draw, blit, and clear*, render_condition, and other graphics * functions. Interop with other graphics contexts is still allowed. * This allows scheduling jobs on a compute-only hardware command queue that * can run in parallel with graphics without stalling it. */ #define PIPE_CONTEXT_COMPUTE_ONLY (1 << 0) /** * Gather debug information and expect that pipe_context::dump_debug_state * will be called. Use in pipe_screen::context_create. */ #define PIPE_CONTEXT_DEBUG (1 << 1) /** * Whether out-of-bounds shader loads must return zero and out-of-bounds * shader stores must be dropped. */ #define PIPE_CONTEXT_ROBUST_BUFFER_ACCESS (1 << 2) /** * Prefer threaded pipe_context. It also implies that video codec functions * will not be used. (they will be either no-ops or NULL when threading is * enabled) */ #define PIPE_CONTEXT_PREFER_THREADED (1 << 3) /** * Create a high priority context. */ #define PIPE_CONTEXT_HIGH_PRIORITY (1 << 4) /** * Create a low priority context. */ #define PIPE_CONTEXT_LOW_PRIORITY (1 << 5) /** Stop execution if the device is reset. */ #define PIPE_CONTEXT_LOSE_CONTEXT_ON_RESET (1 << 6) /** * Create a protected context to access protected content (surfaces, * textures, ...) * * This is required to access protected images and surfaces if * EGL_EXT_protected_surface is not supported. */ #define PIPE_CONTEXT_PROTECTED (1 << 7) /** * Create a context that does not use sampler LOD bias. If this is set, the * frontend MUST set pipe_sampler_state::lod_bias to 0.0f for all samplers used * with the context. Drivers MAY ignore lod_bias for such contexts. * * This may allow driver fast paths for GLES, which lacks sampler LOD bias. */ #define PIPE_CONTEXT_NO_LOD_BIAS (1 << 8) /** * Create a media-only context. Use in pipe_screen::context_create. * This disables draw, blit, and clear*, render_condition, and other graphics. * This also disabled all compute related functions * functions. Interop with other media contexts is still allowed. * This allows scheduling jobs on a media-only hardware command queue that * can run in parallel with media without stalling it. */ #define PIPE_CONTEXT_MEDIA_ONLY (1 << 9) /** * Create a realtime priority context. * * The context must run at the highest possible priority and be capable of * preempting the current executing context when commands are flushed * by such a realtime context. */ #define PIPE_CONTEXT_REALTIME_PRIORITY (1 << 10) /** * Flags for pipe_context::memory_barrier. */ #define PIPE_BARRIER_MAPPED_BUFFER (1 << 0) #define PIPE_BARRIER_SHADER_BUFFER (1 << 1) #define PIPE_BARRIER_QUERY_BUFFER (1 << 2) #define PIPE_BARRIER_VERTEX_BUFFER (1 << 3) #define PIPE_BARRIER_INDEX_BUFFER (1 << 4) #define PIPE_BARRIER_CONSTANT_BUFFER (1 << 5) #define PIPE_BARRIER_INDIRECT_BUFFER (1 << 6) #define PIPE_BARRIER_TEXTURE (1 << 7) #define PIPE_BARRIER_IMAGE (1 << 8) #define PIPE_BARRIER_FRAMEBUFFER (1 << 9) #define PIPE_BARRIER_STREAMOUT_BUFFER (1 << 10) #define PIPE_BARRIER_GLOBAL_BUFFER (1 << 11) #define PIPE_BARRIER_UPDATE_BUFFER (1 << 12) #define PIPE_BARRIER_UPDATE_TEXTURE (1 << 13) #define PIPE_BARRIER_ALL ((1 << 14) - 1) #define PIPE_BARRIER_UPDATE \ (PIPE_BARRIER_UPDATE_BUFFER | PIPE_BARRIER_UPDATE_TEXTURE) /** * Flags for pipe_context::texture_barrier. */ #define PIPE_TEXTURE_BARRIER_SAMPLER (1 << 0) #define PIPE_TEXTURE_BARRIER_FRAMEBUFFER (1 << 1) /** * Resource binding flags -- gallium frontends must specify in advance all * the ways a resource might be used. */ #define PIPE_BIND_DEPTH_STENCIL (1 << 0) /* create_surface */ #define PIPE_BIND_RENDER_TARGET (1 << 1) /* create_surface */ #define PIPE_BIND_BLENDABLE (1 << 2) /* create_surface */ #define PIPE_BIND_SAMPLER_VIEW (1 << 3) /* create_sampler_view */ #define PIPE_BIND_VERTEX_BUFFER (1 << 4) /* set_vertex_buffers */ #define PIPE_BIND_INDEX_BUFFER (1 << 5) /* draw_elements */ #define PIPE_BIND_CONSTANT_BUFFER (1 << 6) /* set_constant_buffer */ #define PIPE_BIND_DISPLAY_TARGET (1 << 7) /* flush_front_buffer */ #define PIPE_BIND_VERTEX_STATE (1 << 8) /* create_vertex_state */ /* gap */ #define PIPE_BIND_STREAM_OUTPUT (1 << 10) /* set_stream_output_buffers */ #define PIPE_BIND_CURSOR (1 << 11) /* mouse cursor */ #define PIPE_BIND_CUSTOM (1 << 12) /* gallium frontend/winsys usages */ #define PIPE_BIND_GLOBAL (1 << 13) /* set_global_binding */ #define PIPE_BIND_SHADER_BUFFER (1 << 14) /* set_shader_buffers */ #define PIPE_BIND_SHADER_IMAGE (1 << 15) /* set_shader_images */ #define PIPE_BIND_COMPUTE_RESOURCE (1 << 16) /* set_compute_resources */ #define PIPE_BIND_COMMAND_ARGS_BUFFER (1 << 17) /* pipe_draw_info.indirect */ #define PIPE_BIND_QUERY_BUFFER (1 << 18) /* get_query_result_resource */ /** * The first two flags above were previously part of the amorphous * TEXTURE_USAGE, most of which are now descriptions of the ways a * particular texture can be bound to the gallium pipeline. The two flags * below do not fit within that and probably need to be migrated to some * other place. * * Scanout is used to ask for a texture suitable for actual scanout (hence * the name), which implies extra layout constraints on some hardware. * It may also have some special meaning regarding mouse cursor images. * * The shared flag is quite underspecified, but certainly isn't a * binding flag - it seems more like a message to the winsys to create * a shareable allocation. * * The third flag has been added to be able to force textures to be created * in linear mode (no tiling). */ #define PIPE_BIND_SCANOUT (1 << 19) /* */ #define PIPE_BIND_SHARED (1 << 20) /* get_texture_handle ??? */ #define PIPE_BIND_LINEAR (1 << 21) #define PIPE_BIND_PROTECTED (1 << 22) /* Resource will be protected/encrypted */ #define PIPE_BIND_SAMPLER_REDUCTION_MINMAX (1 << 23) /* pipe_caps.sampler_reduction_minmax */ /* Resource is the DRI_PRIME blit destination. Only set on on the render GPU. */ #define PIPE_BIND_PRIME_BLIT_DST (1 << 24) #define PIPE_BIND_USE_FRONT_RENDERING (1 << 25) /* Resource may be used for frontbuffer rendering */ #define PIPE_BIND_CONST_BW (1 << 26) /* Avoid using a data dependent layout (AFBC, UBWC, etc) */ #define PIPE_BIND_VIDEO_DECODE_DPB (1 << 27) /* video engine DPB decode reconstructed picture */ #define PIPE_BIND_VIDEO_ENCODE_DPB (1 << 28) /* video engine DPB encode reconstructed picture */ /** * Flags for the driver about resource behaviour: */ #define PIPE_RESOURCE_FLAG_MAP_PERSISTENT (1 << 0) #define PIPE_RESOURCE_FLAG_MAP_COHERENT (1 << 1) #define PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY (1 << 2) #define PIPE_RESOURCE_FLAG_SPARSE (1 << 3) #define PIPE_RESOURCE_FLAG_SINGLE_THREAD_USE (1 << 4) #define PIPE_RESOURCE_FLAG_ENCRYPTED (1 << 5) #define PIPE_RESOURCE_FLAG_DONT_OVER_ALLOCATE (1 << 6) #define PIPE_RESOURCE_FLAG_DONT_MAP_DIRECTLY (1 << 7) /* for small visible VRAM */ #define PIPE_RESOURCE_FLAG_UNMAPPABLE (1 << 8) /* implies staging transfers due to VK interop */ #define PIPE_RESOURCE_FLAG_DRV_PRIV (1 << 9) /* driver/winsys private */ #define PIPE_RESOURCE_FLAG_FRONTEND_PRIV (1 << 24) /* gallium frontend private */ /** * Fixed-rate compression */ #define PIPE_COMPRESSION_FIXED_RATE_NONE 0x0 #define PIPE_COMPRESSION_FIXED_RATE_DEFAULT 0xF /** * Hint about the expected lifecycle of a resource. * Sorted according to GPU vs CPU access. */ enum pipe_resource_usage { PIPE_USAGE_DEFAULT, /* fast GPU access */ PIPE_USAGE_IMMUTABLE, /* fast GPU access, immutable */ PIPE_USAGE_DYNAMIC, /* uploaded data is used multiple times */ PIPE_USAGE_STREAM, /* uploaded data is used once */ PIPE_USAGE_STAGING, /* fast CPU access */ }; /** * Tessellator spacing types */ enum pipe_tess_spacing { PIPE_TESS_SPACING_FRACTIONAL_ODD, PIPE_TESS_SPACING_FRACTIONAL_EVEN, PIPE_TESS_SPACING_EQUAL, }; /** * Query object types */ enum pipe_query_type { PIPE_QUERY_OCCLUSION_COUNTER, PIPE_QUERY_OCCLUSION_PREDICATE, PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE, PIPE_QUERY_TIMESTAMP, PIPE_QUERY_TIMESTAMP_DISJOINT, PIPE_QUERY_TIME_ELAPSED, PIPE_QUERY_PRIMITIVES_GENERATED, PIPE_QUERY_PRIMITIVES_EMITTED, PIPE_QUERY_SO_STATISTICS, PIPE_QUERY_SO_OVERFLOW_PREDICATE, PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE, PIPE_QUERY_GPU_FINISHED, PIPE_QUERY_PIPELINE_STATISTICS, PIPE_QUERY_PIPELINE_STATISTICS_SINGLE, PIPE_QUERY_TYPES, /* start of driver queries, see pipe_screen::get_driver_query_info */ PIPE_QUERY_DRIVER_SPECIFIC = 256, }; /** * Index for PIPE_QUERY_PIPELINE_STATISTICS subqueries. */ enum pipe_statistics_query_index { PIPE_STAT_QUERY_IA_VERTICES, PIPE_STAT_QUERY_IA_PRIMITIVES, PIPE_STAT_QUERY_VS_INVOCATIONS, PIPE_STAT_QUERY_GS_INVOCATIONS, PIPE_STAT_QUERY_GS_PRIMITIVES, PIPE_STAT_QUERY_C_INVOCATIONS, PIPE_STAT_QUERY_C_PRIMITIVES, PIPE_STAT_QUERY_PS_INVOCATIONS, PIPE_STAT_QUERY_HS_INVOCATIONS, PIPE_STAT_QUERY_DS_INVOCATIONS, PIPE_STAT_QUERY_CS_INVOCATIONS, PIPE_STAT_QUERY_TS_INVOCATIONS, PIPE_STAT_QUERY_MS_INVOCATIONS, }; /** * Conditional rendering modes */ enum pipe_render_cond_flag { PIPE_RENDER_COND_WAIT, PIPE_RENDER_COND_NO_WAIT, PIPE_RENDER_COND_BY_REGION_WAIT, PIPE_RENDER_COND_BY_REGION_NO_WAIT, }; /** * Point sprite coord modes */ enum pipe_sprite_coord_mode { PIPE_SPRITE_COORD_UPPER_LEFT, PIPE_SPRITE_COORD_LOWER_LEFT, }; /** * Viewport swizzles */ enum pipe_viewport_swizzle { PIPE_VIEWPORT_SWIZZLE_POSITIVE_X, PIPE_VIEWPORT_SWIZZLE_NEGATIVE_X, PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y, PIPE_VIEWPORT_SWIZZLE_NEGATIVE_Y, PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z, PIPE_VIEWPORT_SWIZZLE_NEGATIVE_Z, PIPE_VIEWPORT_SWIZZLE_POSITIVE_W, PIPE_VIEWPORT_SWIZZLE_NEGATIVE_W, }; /** * Device reset status. */ enum pipe_reset_status { PIPE_NO_RESET, PIPE_GUILTY_CONTEXT_RESET, PIPE_INNOCENT_CONTEXT_RESET, PIPE_UNKNOWN_CONTEXT_RESET, }; enum pipe_vertex_input_alignment { PIPE_VERTEX_INPUT_ALIGNMENT_NONE, PIPE_VERTEX_INPUT_ALIGNMENT_4BYTE, PIPE_VERTEX_INPUT_ALIGNMENT_ELEMENT, }; /** * Conservative rasterization modes. */ enum pipe_conservative_raster_mode { PIPE_CONSERVATIVE_RASTER_OFF, /** * The post-snap mode means the conservative rasterization occurs after * the conversion from floating-point to fixed-point coordinates * on the subpixel grid. */ PIPE_CONSERVATIVE_RASTER_POST_SNAP, /** * The pre-snap mode means the conservative rasterization occurs before * the conversion from floating-point to fixed-point coordinates. */ PIPE_CONSERVATIVE_RASTER_PRE_SNAP, }; /** * resource_get_handle flags. */ /* Requires pipe_context::flush_resource before external use. */ #define PIPE_HANDLE_USAGE_EXPLICIT_FLUSH (1 << 0) /* Expected external use of the resource: */ #define PIPE_HANDLE_USAGE_FRAMEBUFFER_WRITE (1 << 1) #define PIPE_HANDLE_USAGE_SHADER_WRITE (1 << 2) /** * pipe_image_view access flags. */ #define PIPE_IMAGE_ACCESS_READ (1 << 0) #define PIPE_IMAGE_ACCESS_WRITE (1 << 1) #define PIPE_IMAGE_ACCESS_READ_WRITE (PIPE_IMAGE_ACCESS_READ | \ PIPE_IMAGE_ACCESS_WRITE) #define PIPE_IMAGE_ACCESS_COHERENT (1 << 2) #define PIPE_IMAGE_ACCESS_VOLATILE (1 << 3) #define PIPE_IMAGE_ACCESS_TEX2D_FROM_BUFFER (1 << 4) #define PIPE_IMAGE_ACCESS_DRIVER_INTERNAL (1 << 5) /** * Shader subgroup feature flags aligned with GL_KHR_shader_subgroup. */ #define PIPE_SHADER_SUBGROUP_FEATURE_BASIC (1 << 0) #define PIPE_SHADER_SUBGROUP_FEATURE_VOTE (1 << 1) #define PIPE_SHADER_SUBGROUP_FEATURE_ARITHMETIC (1 << 2) #define PIPE_SHADER_SUBGROUP_FEATURE_BALLOT (1 << 3) #define PIPE_SHADER_SUBGROUP_FEATURE_SHUFFLE (1 << 4) #define PIPE_SHADER_SUBGROUP_FEATURE_SHUFFLE_RELATIVE (1 << 5) #define PIPE_SHADER_SUBGROUP_FEATURE_CLUSTERED (1 << 6) #define PIPE_SHADER_SUBGROUP_FEATURE_QUAD (1 << 7) #define PIPE_SHADER_SUBGROUP_NUM_FEATURES 8 enum pipe_point_size_lower_mode { PIPE_POINT_SIZE_LOWER_ALWAYS, PIPE_POINT_SIZE_LOWER_NEVER, PIPE_POINT_SIZE_LOWER_USER_ONLY, }; enum pipe_texture_transfer_mode { PIPE_TEXTURE_TRANSFER_DEFAULT = 0, PIPE_TEXTURE_TRANSFER_BLIT = (1 << 0), PIPE_TEXTURE_TRANSFER_COMPUTE = (1 << 1), }; /** * Possible bits for pipe_caps.context_priority_mask param, which should * return a bitmask of the supported priorities. If the driver does not * support prioritized contexts, it can return 0. * * Note that these match __EGL_CONTEXT_PRIORITY_*_BIT. */ #define PIPE_CONTEXT_PRIORITY_LOW (1 << 0) #define PIPE_CONTEXT_PRIORITY_MEDIUM (1 << 1) #define PIPE_CONTEXT_PRIORITY_HIGH (1 << 2) #define PIPE_CONTEXT_PRIORITY_REALTIME (1 << 3) enum pipe_quirk_texture_border_color_swizzle { PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 = (1 << 0), PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600 = (1 << 1), PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_FREEDRENO = (1 << 2), PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_ALPHA_NOT_W = (1 << 3), }; enum pipe_endian { PIPE_ENDIAN_LITTLE = 0, PIPE_ENDIAN_BIG = 1, #if 0 /* disabled by -frewrite-includes */ #if UTIL_ARCH_LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 733 "../mesa/src/gallium/include/pipe/p_defines.h" PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_LITTLE #if 0 /* disabled by -frewrite-includes */ #if 0 #elif UTIL_ARCH_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 735 "../mesa/src/gallium/include/pipe/p_defines.h" PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_BIG #endif # 737 "../mesa/src/gallium/include/pipe/p_defines.h" }; /** Shader caps not specific to any single stage */ enum pipe_shader_cap { PIPE_SHADER_CAP_MAX_INSTRUCTIONS, /* if 0, it means the stage is unsupported */ PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS, PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS, PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS, PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH, PIPE_SHADER_CAP_MAX_INPUTS, PIPE_SHADER_CAP_MAX_OUTPUTS, PIPE_SHADER_CAP_MAX_CONST_BUFFER0_SIZE, PIPE_SHADER_CAP_MAX_CONST_BUFFERS, PIPE_SHADER_CAP_MAX_TEMPS, /* boolean caps */ PIPE_SHADER_CAP_CONT_SUPPORTED, PIPE_SHADER_CAP_INDIRECT_TEMP_ADDR, PIPE_SHADER_CAP_INDIRECT_CONST_ADDR, PIPE_SHADER_CAP_SUBROUTINES, /* BGNSUB, ENDSUB, CAL, RET */ PIPE_SHADER_CAP_INTEGERS, PIPE_SHADER_CAP_INT64_ATOMICS, PIPE_SHADER_CAP_FP16, PIPE_SHADER_CAP_FP16_DERIVATIVES, PIPE_SHADER_CAP_FP16_CONST_BUFFERS, PIPE_SHADER_CAP_INT16, PIPE_SHADER_CAP_GLSL_16BIT_CONSTS, PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS, PIPE_SHADER_CAP_TGSI_SQRT_SUPPORTED, PIPE_SHADER_CAP_MAX_SAMPLER_VIEWS, PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE, PIPE_SHADER_CAP_MAX_SHADER_BUFFERS, PIPE_SHADER_CAP_SUPPORTED_IRS, PIPE_SHADER_CAP_MAX_SHADER_IMAGES, PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS, PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS, }; /** * Shader intermediate representation. * * Note that if the driver requests something other than TGSI, it must * always be prepared to receive TGSI in addition to its preferred IR. * If the driver requests TGSI as its preferred IR, it will *always* * get TGSI. * * Note that PIPE_SHADER_IR_TGSI should be zero for backwards compat with * gallium frontends that only understand TGSI. */ enum pipe_shader_ir { PIPE_SHADER_IR_TGSI = 0, PIPE_SHADER_IR_NATIVE, PIPE_SHADER_IR_NIR, }; /** * Compute-specific implementation capability. They can be queried * using pipe_screen::get_compute_param. */ enum pipe_compute_cap { PIPE_COMPUTE_CAP_ADDRESS_BITS, PIPE_COMPUTE_CAP_IR_TARGET, PIPE_COMPUTE_CAP_GRID_DIMENSION, PIPE_COMPUTE_CAP_MAX_GRID_SIZE, PIPE_COMPUTE_CAP_MAX_BLOCK_SIZE, PIPE_COMPUTE_CAP_MAX_THREADS_PER_BLOCK, PIPE_COMPUTE_CAP_MAX_GLOBAL_SIZE, PIPE_COMPUTE_CAP_MAX_LOCAL_SIZE, PIPE_COMPUTE_CAP_MAX_PRIVATE_SIZE, PIPE_COMPUTE_CAP_MAX_INPUT_SIZE, PIPE_COMPUTE_CAP_MAX_MEM_ALLOC_SIZE, PIPE_COMPUTE_CAP_MAX_CLOCK_FREQUENCY, PIPE_COMPUTE_CAP_MAX_COMPUTE_UNITS, PIPE_COMPUTE_CAP_MAX_SUBGROUPS, PIPE_COMPUTE_CAP_IMAGES_SUPPORTED, PIPE_COMPUTE_CAP_SUBGROUP_SIZES, PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK, }; struct pipe_caps { bool graphics; bool npot_textures; bool anisotropic_filter; bool occlusion_query; bool query_time_elapsed; bool texture_shadow_map; bool texture_swizzle; bool texture_mirror_clamp; bool blend_equation_separate; bool primitive_restart; bool primitive_restart_fixed_index; bool indep_blend_enable; bool indep_blend_func; bool fs_coord_origin_upper_left; bool fs_coord_origin_lower_left; bool fs_coord_pixel_center_half_integer; bool fs_coord_pixel_center_integer; bool depth_clip_disable; bool depth_clip_disable_separate; bool depth_clamp_enable; bool shader_stencil_export; bool vs_instanceid; bool vertex_element_instance_divisor; bool fragment_color_clamped; bool mixed_colorbuffer_formats; bool seamless_cube_map; bool seamless_cube_map_per_texture; bool conditional_render; bool texture_barrier; bool stream_output_pause_resume; bool tgsi_can_compact_constants; bool vertex_color_unclamped; bool vertex_color_clamped; bool quads_follow_provoking_vertex_convention; bool user_vertex_buffers; bool compute; bool start_instance; bool query_timestamp; bool texture_multisample; bool cube_map_array; bool texture_buffer_objects; bool buffer_sampler_view_rgba_only; bool tgsi_texcoord; bool query_pipeline_statistics; bool mixed_framebuffer_sizes; bool vs_layer_viewport; bool texture_gather_sm5; bool buffer_map_persistent_coherent; bool fake_sw_msaa; bool texture_query_lod; bool sample_shading; bool texture_gather_offsets; bool vs_window_space_position; bool draw_indirect; bool fs_fine_derivative; bool uma; bool conditional_render_inverted; bool sampler_view_target; bool clip_halfz; bool polygon_offset_clamp; bool multisample_z_resolve; bool resource_from_user_memory; bool resource_from_user_memory_compute_only; bool device_reset_status_query; bool texture_float_linear; bool texture_half_float_linear; bool depth_bounds_test; bool texture_query_samples; bool force_persample_interp; bool shareable_shaders; bool copy_between_compressed_and_plain_formats; bool clear_scissored; bool draw_parameters; bool shader_pack_half_float; bool multi_draw_indirect; bool multi_draw_indirect_params; bool multi_draw_indirect_partial_stride; bool fs_position_is_sysval; bool fs_point_is_sysval; bool fs_face_is_integer_sysval; bool invalidate_buffer; bool generate_mipmap; bool string_marker; bool surface_reinterpret_blocks; bool query_buffer_object; bool query_memory_info; bool framebuffer_no_attachment; bool robust_buffer_access_behavior; bool cull_distance; bool shader_group_vote; bool polygon_offset_units_unscaled; bool shader_array_components; bool stream_output_interleave_buffers; bool native_fence_fd; bool glsl_tess_levels_as_inputs; bool legacy_math_rules; bool fp16; bool doubles; bool int64; bool tgsi_tex_txf_lz; bool shader_clock; bool polygon_mode_fill_rectangle; bool shader_ballot; bool tes_layer_viewport; bool can_bind_const_buffer_as_vertex; bool allow_mapped_buffers_during_execution; bool post_depth_coverage; bool bindless_texture; bool nir_samplers_as_deref; bool query_so_overflow; bool memobj; bool load_constbuf; bool tile_raster_order; bool signed_vertex_buffer_offset; bool fence_signal; bool packed_uniforms; bool conservative_raster_post_snap_triangles; bool conservative_raster_post_snap_points_lines; bool conservative_raster_pre_snap_triangles; bool conservative_raster_pre_snap_points_lines; bool conservative_raster_post_depth_coverage; bool conservative_raster_inner_coverage; bool programmable_sample_locations; bool texture_mirror_clamp_to_edge; bool surface_sample_count; bool image_atomic_float_add; bool query_pipeline_statistics_single; bool dest_surface_srgb_control; bool compute_grid_info_last_block; bool compute_shader_derivatives; bool image_load_formatted; bool image_store_formatted; bool throttle; bool cl_gl_sharing; bool prefer_compute_for_multimedia; bool fragment_shader_interlock; bool fbfetch_coherent; bool atomic_float_minmax; bool tgsi_div; bool fragment_shader_texture_lod; bool fragment_shader_derivatives; bool texture_shadow_lod; bool shader_samples_identical; bool image_atomic_inc_wrap; bool prefer_imm_arrays_as_constbuf; bool gl_spirv; bool gl_spirv_variable_pointers; bool demote_to_helper_invocation; bool tgsi_tg4_component_in_swizzle; bool flatshade; bool alpha_test; bool two_sided_color; bool opencl_integer_functions; bool integer_multiply_32x16; bool frontend_noop; bool nir_images_as_deref; bool packed_stream_output; bool viewport_transform_lowered; bool psiz_clamped; bool viewport_swizzle; bool system_svm; bool viewport_mask; bool alpha_to_coverage_dither_control; bool map_unsynchronized_thread_safe; bool blend_equation_advanced; bool nir_atomics_as_deref; bool no_clip_on_copy_tex; bool shader_atomic_int64; bool device_protected_surface; bool prefer_real_buffer_in_constbuf0; bool gl_clamp; bool texrect; bool sampler_reduction_minmax; bool sampler_reduction_minmax_arb; bool allow_dynamic_vao_fastpath; bool emulate_nonfixed_primitive_restart; bool prefer_back_buffer_reuse; bool draw_vertex_state; bool prefer_pot_aligned_varyings; bool sparse_texture_full_array_cube_mipmaps; bool query_sparse_texture_residency; bool clamp_sparse_texture_lod; bool allow_draw_out_of_order; bool hardware_gl_select; bool dithering; bool fbfetch_zs; bool timeline_semaphore_import; bool device_protected_context; bool allow_glthread_buffer_subdata_opt; bool null_textures; bool astc_void_extents_need_denorm_flush; bool validate_all_dirty_states; bool has_const_bw; bool performance_monitor; bool texture_sampler_independent; bool astc_decode_mode; bool shader_subgroup_quad_all_stages; bool call_finalize_nir_in_linker; int accelerated; int min_texel_offset; int max_texel_offset; int min_texture_gather_offset; int max_texture_gather_offset; unsigned max_dual_source_render_targets; unsigned max_render_targets; unsigned max_texture_2d_size; unsigned max_texture_3d_levels; unsigned max_texture_cube_levels; unsigned max_stream_output_buffers; unsigned max_texture_array_layers; unsigned max_stream_output_separate_components; unsigned max_stream_output_interleaved_components; unsigned glsl_feature_level; unsigned glsl_feature_level_compatibility; unsigned essl_feature_level; unsigned constant_buffer_offset_alignment; unsigned timer_resolution; unsigned min_map_buffer_alignment; unsigned texture_buffer_offset_alignment; unsigned linear_image_pitch_alignment; unsigned linear_image_base_address_alignment; /* pipe_texture_transfer_mode */ unsigned texture_transfer_modes; /* pipe_quirk_texture_border_color_swizzle */ unsigned texture_border_color_quirk; unsigned max_texel_buffer_elements; unsigned max_viewports; unsigned max_geometry_output_vertices; unsigned max_geometry_total_output_components; unsigned max_texture_gather_components; unsigned max_vertex_streams; unsigned vendor_id; unsigned device_id; unsigned video_memory; unsigned max_vertex_attrib_stride; unsigned max_shader_patch_varyings; unsigned shader_buffer_offset_alignment; unsigned pci_group; unsigned pci_bus; unsigned pci_device; unsigned pci_function; unsigned max_window_rectangles; unsigned viewport_subpixel_bits; unsigned rasterizer_subpixel_bits; unsigned mixed_color_depth_bits; unsigned fbfetch; unsigned sparse_buffer_page_size; unsigned max_combined_shader_output_resources; unsigned framebuffer_msaa_constraints; unsigned context_priority_mask; unsigned constbuf0_flags; unsigned max_conservative_raster_subpixel_precision_bias; unsigned max_gs_invocations; unsigned max_shader_buffer_size; unsigned max_combined_shader_buffers; unsigned max_combined_hw_atomic_counters; unsigned max_combined_hw_atomic_counter_buffers; unsigned max_texture_upload_memory_budget; unsigned max_vertex_element_src_offset; unsigned max_varyings; unsigned dmabuf; unsigned clip_planes; unsigned max_vertex_buffers; unsigned gl_begin_end_buffer_size; unsigned glsl_zero_init; unsigned max_texture_mb; unsigned supported_prim_modes; unsigned supported_prim_modes_with_restart; unsigned max_sparse_texture_size; unsigned max_sparse_3d_texture_size; unsigned max_sparse_array_texture_layers; unsigned max_constant_buffer_size; unsigned query_timestamp_bits; unsigned shader_subgroup_size; unsigned shader_subgroup_supported_stages; unsigned shader_subgroup_supported_features; unsigned multiview; enum pipe_vertex_input_alignment vertex_input_alignment; enum pipe_endian endianness; enum pipe_point_size_lower_mode point_size_fixed; float min_line_width; float min_line_width_aa; float max_line_width; float max_line_width_aa; float line_width_granularity; float min_point_size; float min_point_size_aa; float max_point_size; float max_point_size_aa; float point_size_granularity; float max_texture_anisotropy; float max_texture_lod_bias; float min_conservative_raster_dilate; float max_conservative_raster_dilate; float conservative_raster_dilate_granularity; }; /** * Resource parameters. They can be queried using * pipe_screen::get_resource_param. */ enum pipe_resource_param { PIPE_RESOURCE_PARAM_NPLANES, PIPE_RESOURCE_PARAM_STRIDE, PIPE_RESOURCE_PARAM_OFFSET, PIPE_RESOURCE_PARAM_MODIFIER, PIPE_RESOURCE_PARAM_HANDLE_TYPE_SHARED, PIPE_RESOURCE_PARAM_HANDLE_TYPE_KMS, PIPE_RESOURCE_PARAM_HANDLE_TYPE_FD, PIPE_RESOURCE_PARAM_LAYER_STRIDE, }; /** * Types of parameters for pipe_context::set_context_param. */ enum pipe_context_param { /* Call util_thread_sched_apply_policy() for each driver thread that * benefits from it. */ PIPE_CONTEXT_PARAM_UPDATE_THREAD_SCHEDULING, }; /** * Composite query types */ /** * Query result for PIPE_QUERY_SO_STATISTICS. */ struct pipe_query_data_so_statistics { uint64_t num_primitives_written; uint64_t primitives_storage_needed; }; /** * Query result for PIPE_QUERY_TIMESTAMP_DISJOINT. */ struct pipe_query_data_timestamp_disjoint { uint64_t frequency; bool disjoint; }; /** * Query result for PIPE_QUERY_PIPELINE_STATISTICS. */ struct pipe_query_data_pipeline_statistics { union { struct { uint64_t ia_vertices; /**< Num vertices read by the vertex fetcher. */ uint64_t ia_primitives; /**< Num primitives read by the vertex fetcher. */ uint64_t vs_invocations; /**< Num vertex shader invocations. */ uint64_t gs_invocations; /**< Num geometry shader invocations. */ uint64_t gs_primitives; /**< Num primitives output by a geometry shader. */ uint64_t c_invocations; /**< Num primitives sent to the rasterizer. */ uint64_t c_primitives; /**< Num primitives that were rendered. */ uint64_t ps_invocations; /**< Num pixel shader invocations. */ uint64_t hs_invocations; /**< Num hull shader invocations. */ uint64_t ds_invocations; /**< Num domain shader invocations. */ uint64_t cs_invocations; /**< Num compute shader invocations. */ uint64_t ts_invocations; /**< Num task shader invocations. */ uint64_t ms_invocations; /**< Num mesh shader invocations. */ }; uint64_t counters[13]; }; }; /** * For batch queries. */ union pipe_numeric_type_union { uint64_t u64; uint32_t u32; float f; }; /** * Query result (returned by pipe_context::get_query_result). */ union pipe_query_result { /* PIPE_QUERY_OCCLUSION_PREDICATE */ /* PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE */ /* PIPE_QUERY_SO_OVERFLOW_PREDICATE */ /* PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE */ /* PIPE_QUERY_GPU_FINISHED */ bool b; /* PIPE_QUERY_OCCLUSION_COUNTER */ /* PIPE_QUERY_TIMESTAMP */ /* PIPE_QUERY_TIME_ELAPSED */ /* PIPE_QUERY_PRIMITIVES_GENERATED */ /* PIPE_QUERY_PRIMITIVES_EMITTED */ /* PIPE_DRIVER_QUERY_TYPE_UINT64 */ /* PIPE_DRIVER_QUERY_TYPE_BYTES */ /* PIPE_DRIVER_QUERY_TYPE_MICROSECONDS */ /* PIPE_DRIVER_QUERY_TYPE_HZ */ uint64_t u64; /* PIPE_DRIVER_QUERY_TYPE_UINT */ uint32_t u32; /* PIPE_DRIVER_QUERY_TYPE_FLOAT */ /* PIPE_DRIVER_QUERY_TYPE_PERCENTAGE */ float f; /* PIPE_QUERY_SO_STATISTICS */ struct pipe_query_data_so_statistics so_statistics; /* PIPE_QUERY_TIMESTAMP_DISJOINT */ struct pipe_query_data_timestamp_disjoint timestamp_disjoint; /* PIPE_QUERY_PIPELINE_STATISTICS */ struct pipe_query_data_pipeline_statistics pipeline_statistics; /* batch queries (variable length) */ union pipe_numeric_type_union batch[1]; }; enum pipe_query_value_type { PIPE_QUERY_TYPE_I32, PIPE_QUERY_TYPE_U32, PIPE_QUERY_TYPE_I64, PIPE_QUERY_TYPE_U64, }; enum pipe_query_flags { PIPE_QUERY_WAIT = (1 << 0), PIPE_QUERY_PARTIAL = (1 << 1), }; enum pipe_driver_query_type { PIPE_DRIVER_QUERY_TYPE_UINT64, PIPE_DRIVER_QUERY_TYPE_UINT, PIPE_DRIVER_QUERY_TYPE_FLOAT, PIPE_DRIVER_QUERY_TYPE_PERCENTAGE, PIPE_DRIVER_QUERY_TYPE_BYTES, PIPE_DRIVER_QUERY_TYPE_MICROSECONDS, PIPE_DRIVER_QUERY_TYPE_HZ, PIPE_DRIVER_QUERY_TYPE_DBM, PIPE_DRIVER_QUERY_TYPE_TEMPERATURE, PIPE_DRIVER_QUERY_TYPE_VOLTS, PIPE_DRIVER_QUERY_TYPE_AMPS, PIPE_DRIVER_QUERY_TYPE_WATTS, }; /* Whether an average value per frame or a cumulative value should be * displayed. */ enum pipe_driver_query_result_type { PIPE_DRIVER_QUERY_RESULT_TYPE_AVERAGE, PIPE_DRIVER_QUERY_RESULT_TYPE_CUMULATIVE, }; /** * Some hardware requires some hardware-specific queries to be submitted * as batched queries. The corresponding query objects are created using * create_batch_query, and at most one such query may be active at * any time. */ #define PIPE_DRIVER_QUERY_FLAG_BATCH (1 << 0) /* Do not list this query in the HUD. */ #define PIPE_DRIVER_QUERY_FLAG_DONT_LIST (1 << 1) struct pipe_driver_query_info { const char *name; unsigned query_type; /* PIPE_QUERY_DRIVER_SPECIFIC + i */ union pipe_numeric_type_union max_value; /* max value that can be returned */ enum pipe_driver_query_type type; enum pipe_driver_query_result_type result_type; unsigned group_id; unsigned flags; }; struct pipe_driver_query_group_info { const char *name; unsigned max_active_queries; unsigned num_queries; }; enum pipe_fd_type { PIPE_FD_TYPE_NATIVE_SYNC, PIPE_FD_TYPE_SYNCOBJ, PIPE_FD_TYPE_TIMELINE_SEMAPHORE, }; /** * counter type and counter data type enums used by INTEL_performance_query * APIs in gallium drivers. */ enum pipe_perf_counter_type { PIPE_PERF_COUNTER_TYPE_EVENT, PIPE_PERF_COUNTER_TYPE_DURATION_NORM, PIPE_PERF_COUNTER_TYPE_DURATION_RAW, PIPE_PERF_COUNTER_TYPE_THROUGHPUT, PIPE_PERF_COUNTER_TYPE_RAW, PIPE_PERF_COUNTER_TYPE_TIMESTAMP, }; enum pipe_perf_counter_data_type { PIPE_PERF_COUNTER_DATA_TYPE_BOOL32, PIPE_PERF_COUNTER_DATA_TYPE_UINT32, PIPE_PERF_COUNTER_DATA_TYPE_UINT64, PIPE_PERF_COUNTER_DATA_TYPE_FLOAT, PIPE_PERF_COUNTER_DATA_TYPE_DOUBLE, }; #define PIPE_ASTC_DECODE_FORMAT_FLOAT16 0 #define PIPE_ASTC_DECODE_FORMAT_UNORM8 1 #define PIPE_ASTC_DECODE_FORMAT_RGB9E5 2 #define PIPE_UUID_SIZE 16 #define PIPE_LUID_SIZE 8 #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_POSIX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 1353 "../mesa/src/gallium/include/pipe/p_defines.h" #define PIPE_MEMORY_FD #endif # 1355 "../mesa/src/gallium/include/pipe/p_defines.h" #ifdef __cplusplus } #endif # 1359 "../mesa/src/gallium/include/pipe/p_defines.h" #endif # 1361 "../mesa/src/gallium/include/pipe/p_defines.h" #endif /* p_defines.h expanded by -frewrite-includes */ # 51 "../mesa/src/gallium/include/pipe/p_state.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_formats.h expanded by -frewrite-includes */ #include "util/format/u_formats.h" #else /* u_formats.h expanded by -frewrite-includes */ # 51 "../mesa/src/gallium/include/pipe/p_state.h" # 1 "../mesa/src/util/format/u_formats.h" 1 /************************************************************************** * * Copyright 2007 VMware, Inc. * Copyright (c) 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef U_FORMATS_H_ #define U_FORMATS_H_ #if 0 /* expanded by -frewrite-includes */ #include "util/detect.h" #endif /* expanded by -frewrite-includes */ # 32 "../mesa/src/util/format/u_formats.h" # 33 "../mesa/src/util/format/u_formats.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_format_gen.h expanded by -frewrite-includes */ #include "util/format/u_format_gen.h" #else /* u_format_gen.h expanded by -frewrite-includes */ # 33 "../mesa/src/util/format/u_formats.h" # 1 "src/util/format/u_format_gen.h" 1 /* This file is autogenerated by u_format_table.py from u_format.yaml. Do not edit directly. */ /************************************************************************** * * Copyright 2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifdef __cplusplus extern "C" { #endif # 33 "src/util/format/u_format_gen.h" #if 0 /* disabled by -frewrite-includes */ #if UTIL_ARCH_LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 35 "src/util/format/u_format_gen.h" #define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM #define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM #define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM #define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM #define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM #define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM #define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM #define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB #define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB #define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB #define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB #define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB #define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB #define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB #define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_R16G16_UNORM #define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_R16G16_SNORM #define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_R8G8_UNORM #define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM #define PIPE_FORMAT_RGBA8888_USCALED PIPE_FORMAT_R8G8B8A8_USCALED #define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_R8G8_SNORM #define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM #define PIPE_FORMAT_RGBA8888_SSCALED PIPE_FORMAT_R8G8B8A8_SSCALED #define PIPE_FORMAT_RGBA8888_UINT PIPE_FORMAT_R8G8B8A8_UINT #define PIPE_FORMAT_RGBA8888_SINT PIPE_FORMAT_R8G8B8A8_SINT #define PIPE_FORMAT_BGRA8888_UINT PIPE_FORMAT_B8G8R8A8_UINT #define PIPE_FORMAT_ARGB8888_UINT PIPE_FORMAT_A8R8G8B8_UINT #define PIPE_FORMAT_ABGR8888_UINT PIPE_FORMAT_A8B8G8R8_UINT #define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM #define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB #define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_G8R8_UNORM #define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_G8R8_SNORM #define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_G16R16_UNORM #define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_G16R16_SNORM #define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM #define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM #if 0 /* disabled by -frewrite-includes */ #if 0 #elif UTIL_ARCH_BIG_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 71 "src/util/format/u_format_gen.h" #define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM #define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM #define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM #define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM #define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_A8B8G8R8_UNORM #define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_X8B8G8R8_UNORM #define PIPE_FORMAT_XBGR8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM #define PIPE_FORMAT_ABGR8888_SRGB PIPE_FORMAT_R8G8B8A8_SRGB #define PIPE_FORMAT_RGBA8888_SRGB PIPE_FORMAT_A8B8G8R8_SRGB #define PIPE_FORMAT_RGBX8888_SRGB PIPE_FORMAT_X8B8G8R8_SRGB #define PIPE_FORMAT_ARGB8888_SRGB PIPE_FORMAT_B8G8R8A8_SRGB #define PIPE_FORMAT_XRGB8888_SRGB PIPE_FORMAT_B8G8R8X8_SRGB #define PIPE_FORMAT_BGRA8888_SRGB PIPE_FORMAT_A8R8G8B8_SRGB #define PIPE_FORMAT_BGRX8888_SRGB PIPE_FORMAT_X8R8G8B8_SRGB #define PIPE_FORMAT_GR1616_UNORM PIPE_FORMAT_R16G16_UNORM #define PIPE_FORMAT_GR1616_SNORM PIPE_FORMAT_R16G16_SNORM #define PIPE_FORMAT_GR88_UNORM PIPE_FORMAT_R8G8_UNORM #define PIPE_FORMAT_ABGR8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM #define PIPE_FORMAT_RGBA8888_USCALED PIPE_FORMAT_A8B8G8R8_USCALED #define PIPE_FORMAT_GR88_SNORM PIPE_FORMAT_R8G8_SNORM #define PIPE_FORMAT_ABGR8888_SNORM PIPE_FORMAT_R8G8B8A8_SNORM #define PIPE_FORMAT_RGBA8888_SSCALED PIPE_FORMAT_A8B8G8R8_SSCALED #define PIPE_FORMAT_ABGR8888_UINT PIPE_FORMAT_R8G8B8A8_UINT #define PIPE_FORMAT_ARGB8888_UINT PIPE_FORMAT_B8G8R8A8_UINT #define PIPE_FORMAT_BGRA8888_UINT PIPE_FORMAT_A8R8G8B8_UINT #define PIPE_FORMAT_RGBA8888_UINT PIPE_FORMAT_A8B8G8R8_UINT #define PIPE_FORMAT_XBGR8888_SNORM PIPE_FORMAT_R8G8B8X8_SNORM #define PIPE_FORMAT_XBGR8888_SRGB PIPE_FORMAT_R8G8B8X8_SRGB #define PIPE_FORMAT_RG88_UNORM PIPE_FORMAT_G8R8_UNORM #define PIPE_FORMAT_RG88_SNORM PIPE_FORMAT_G8R8_SNORM #define PIPE_FORMAT_RG1616_UNORM PIPE_FORMAT_G16R16_UNORM #define PIPE_FORMAT_RG1616_SNORM PIPE_FORMAT_G16R16_SNORM #define PIPE_FORMAT_RGBA8888_SNORM PIPE_FORMAT_A8B8G8R8_SNORM #define PIPE_FORMAT_RGBA8888_SINT PIPE_FORMAT_A8B8G8R8_SINT #define PIPE_FORMAT_RGBX8888_SNORM PIPE_FORMAT_X8B8G8R8_SNORM #endif # 107 "src/util/format/u_format_gen.h" #ifdef __cplusplus } /* extern "C" */ #endif # 110 "src/util/format/u_format_gen.h" #endif /* u_format_gen.h expanded by -frewrite-includes */ # 34 "../mesa/src/util/format/u_formats.h" 2 #ifdef __cplusplus extern "C" { #endif # 38 "../mesa/src/util/format/u_formats.h" /** * Formats for textures, surfaces and vertex data */ enum pipe_format { PIPE_FORMAT_NONE, /* Vertex formats must be first and must be <= 255. */ PIPE_FORMAT_R64_UINT, /**< raw doubles (ARB_vertex_attrib_64bit) */ PIPE_FORMAT_R64G64_UINT, PIPE_FORMAT_R64G64B64_UINT, PIPE_FORMAT_R64G64B64A64_UINT, PIPE_FORMAT_R64_SINT, PIPE_FORMAT_R64G64_SINT, PIPE_FORMAT_R64G64B64_SINT, PIPE_FORMAT_R64G64B64A64_SINT, PIPE_FORMAT_R64_FLOAT, /**< doubles converted to float */ PIPE_FORMAT_R64G64_FLOAT, PIPE_FORMAT_R64G64B64_FLOAT, PIPE_FORMAT_R64G64B64A64_FLOAT, PIPE_FORMAT_R32_FLOAT, PIPE_FORMAT_R32G32_FLOAT, PIPE_FORMAT_R32G32B32_FLOAT, PIPE_FORMAT_R32G32B32A32_FLOAT, PIPE_FORMAT_R32_UNORM, PIPE_FORMAT_R32G32_UNORM, PIPE_FORMAT_R32G32B32_UNORM, PIPE_FORMAT_R32G32B32A32_UNORM, PIPE_FORMAT_R32_USCALED, PIPE_FORMAT_R32G32_USCALED, PIPE_FORMAT_R32G32B32_USCALED, PIPE_FORMAT_R32G32B32A32_USCALED, PIPE_FORMAT_R32_SNORM, PIPE_FORMAT_R32G32_SNORM, PIPE_FORMAT_R32G32B32_SNORM, PIPE_FORMAT_R32G32B32A32_SNORM, PIPE_FORMAT_R32_SSCALED, PIPE_FORMAT_R32G32_SSCALED, PIPE_FORMAT_R32G32B32_SSCALED, PIPE_FORMAT_R32G32B32A32_SSCALED, PIPE_FORMAT_R16_UNORM, PIPE_FORMAT_R16G16_UNORM, PIPE_FORMAT_R16G16B16_UNORM, PIPE_FORMAT_R16G16B16A16_UNORM, PIPE_FORMAT_R16_USCALED, PIPE_FORMAT_R16G16_USCALED, PIPE_FORMAT_R16G16B16_USCALED, PIPE_FORMAT_R16G16B16A16_USCALED, PIPE_FORMAT_R16_SNORM, PIPE_FORMAT_R16G16_SNORM, PIPE_FORMAT_R16G16B16_SNORM, PIPE_FORMAT_R16G16B16A16_SNORM, PIPE_FORMAT_R16_SSCALED, PIPE_FORMAT_R16G16_SSCALED, PIPE_FORMAT_R16G16B16_SSCALED, PIPE_FORMAT_R16G16B16A16_SSCALED, PIPE_FORMAT_R8_UNORM, PIPE_FORMAT_R8G8_UNORM, PIPE_FORMAT_R8G8B8_UNORM, PIPE_FORMAT_B8G8R8_UNORM, PIPE_FORMAT_R8G8B8A8_UNORM, PIPE_FORMAT_B8G8R8A8_UNORM, PIPE_FORMAT_R8_USCALED, PIPE_FORMAT_R8G8_USCALED, PIPE_FORMAT_R8G8B8_USCALED, PIPE_FORMAT_B8G8R8_USCALED, PIPE_FORMAT_R8G8B8A8_USCALED, PIPE_FORMAT_B8G8R8A8_USCALED, PIPE_FORMAT_A8B8G8R8_USCALED, PIPE_FORMAT_R8_SNORM, PIPE_FORMAT_R8G8_SNORM, PIPE_FORMAT_R8G8B8_SNORM, PIPE_FORMAT_B8G8R8_SNORM, PIPE_FORMAT_R8G8B8A8_SNORM, PIPE_FORMAT_B8G8R8A8_SNORM, PIPE_FORMAT_R8_SSCALED, PIPE_FORMAT_R8G8_SSCALED, PIPE_FORMAT_R8G8B8_SSCALED, PIPE_FORMAT_B8G8R8_SSCALED, PIPE_FORMAT_R8G8B8A8_SSCALED, PIPE_FORMAT_B8G8R8A8_SSCALED, PIPE_FORMAT_A8B8G8R8_SSCALED, PIPE_FORMAT_A8R8G8B8_UNORM, PIPE_FORMAT_R32_FIXED, PIPE_FORMAT_R32G32_FIXED, PIPE_FORMAT_R32G32B32_FIXED, PIPE_FORMAT_R32G32B32A32_FIXED, PIPE_FORMAT_R16_FLOAT, PIPE_FORMAT_R16G16_FLOAT, PIPE_FORMAT_R16G16B16_FLOAT, PIPE_FORMAT_R16G16B16A16_FLOAT, PIPE_FORMAT_R8_UINT, PIPE_FORMAT_R8G8_UINT, PIPE_FORMAT_R8G8B8_UINT, PIPE_FORMAT_B8G8R8_UINT, PIPE_FORMAT_R8G8B8A8_UINT, PIPE_FORMAT_B8G8R8A8_UINT, PIPE_FORMAT_R8_SINT, PIPE_FORMAT_R8G8_SINT, PIPE_FORMAT_R8G8B8_SINT, PIPE_FORMAT_B8G8R8_SINT, PIPE_FORMAT_R8G8B8A8_SINT, PIPE_FORMAT_B8G8R8A8_SINT, PIPE_FORMAT_R16_UINT, PIPE_FORMAT_R16G16_UINT, PIPE_FORMAT_R16G16B16_UINT, PIPE_FORMAT_R16G16B16A16_UINT, PIPE_FORMAT_R16_SINT, PIPE_FORMAT_R16G16_SINT, PIPE_FORMAT_R16G16B16_SINT, PIPE_FORMAT_R16G16B16A16_SINT, PIPE_FORMAT_R32_UINT, PIPE_FORMAT_R32G32_UINT, PIPE_FORMAT_R32G32B32_UINT, PIPE_FORMAT_R32G32B32A32_UINT, PIPE_FORMAT_R32_SINT, PIPE_FORMAT_R32G32_SINT, PIPE_FORMAT_R32G32B32_SINT, PIPE_FORMAT_R32G32B32A32_SINT, PIPE_FORMAT_R10G10B10A2_UNORM, PIPE_FORMAT_R10G10B10A2_SNORM, PIPE_FORMAT_R10G10B10A2_USCALED, PIPE_FORMAT_R10G10B10A2_SSCALED, PIPE_FORMAT_B10G10R10A2_UNORM, PIPE_FORMAT_B10G10R10A2_SNORM, PIPE_FORMAT_B10G10R10A2_USCALED, PIPE_FORMAT_B10G10R10A2_SSCALED, PIPE_FORMAT_R11G11B10_FLOAT, PIPE_FORMAT_R10G10B10A2_UINT, PIPE_FORMAT_R10G10B10A2_SINT, PIPE_FORMAT_B10G10R10A2_UINT, PIPE_FORMAT_B10G10R10A2_SINT, /* End of vertex formats. */ /* Texture-only formats are below. */ PIPE_FORMAT_B8G8R8X8_UNORM, PIPE_FORMAT_X8B8G8R8_UNORM, PIPE_FORMAT_X8R8G8B8_UNORM, PIPE_FORMAT_B5G5R5A1_UNORM, PIPE_FORMAT_R4G4B4A4_UNORM, PIPE_FORMAT_B4G4R4A4_UNORM, PIPE_FORMAT_R5G6B5_UNORM, PIPE_FORMAT_B5G6R5_UNORM, PIPE_FORMAT_L8_UNORM, /**< ubyte luminance */ PIPE_FORMAT_A8_UNORM, /**< ubyte alpha */ PIPE_FORMAT_I8_UNORM, /**< ubyte intensity */ PIPE_FORMAT_L8A8_UNORM, /**< ubyte alpha, luminance */ PIPE_FORMAT_L16_UNORM, /**< ushort luminance */ PIPE_FORMAT_UYVY, PIPE_FORMAT_VYUY, PIPE_FORMAT_YUYV, PIPE_FORMAT_YVYU, PIPE_FORMAT_Z16_UNORM, PIPE_FORMAT_Z16_UNORM_S8_UINT, PIPE_FORMAT_Z32_UNORM, PIPE_FORMAT_Z32_FLOAT, PIPE_FORMAT_Z24_UNORM_S8_UINT, PIPE_FORMAT_S8_UINT_Z24_UNORM, PIPE_FORMAT_Z24X8_UNORM, PIPE_FORMAT_X8Z24_UNORM, PIPE_FORMAT_S8_UINT, /**< ubyte stencil */ /* sRGB formats */ PIPE_FORMAT_L8_SRGB, PIPE_FORMAT_R8_SRGB, PIPE_FORMAT_L8A8_SRGB, PIPE_FORMAT_R8G8_SRGB, PIPE_FORMAT_R8G8B8_SRGB, PIPE_FORMAT_B8G8R8_SRGB, PIPE_FORMAT_A8B8G8R8_SRGB, PIPE_FORMAT_X8B8G8R8_SRGB, PIPE_FORMAT_B8G8R8A8_SRGB, PIPE_FORMAT_B8G8R8X8_SRGB, PIPE_FORMAT_A8R8G8B8_SRGB, PIPE_FORMAT_X8R8G8B8_SRGB, PIPE_FORMAT_R8G8B8A8_SRGB, /* compressed formats */ PIPE_FORMAT_DXT1_RGB, PIPE_FORMAT_DXT1_RGBA, PIPE_FORMAT_DXT3_RGBA, PIPE_FORMAT_DXT5_RGBA, /* sRGB, compressed */ PIPE_FORMAT_DXT1_SRGB, PIPE_FORMAT_DXT1_SRGBA, PIPE_FORMAT_DXT3_SRGBA, PIPE_FORMAT_DXT5_SRGBA, /* rgtc compressed */ PIPE_FORMAT_RGTC1_UNORM, PIPE_FORMAT_RGTC1_SNORM, PIPE_FORMAT_RGTC2_UNORM, PIPE_FORMAT_RGTC2_SNORM, PIPE_FORMAT_R8G8_B8G8_UNORM, PIPE_FORMAT_G8R8_G8B8_UNORM, PIPE_FORMAT_X6G10_X6B10X6R10_420_UNORM, PIPE_FORMAT_X4G12_X4B12X4R12_420_UNORM, PIPE_FORMAT_X6R10_UNORM, PIPE_FORMAT_X6R10X6G10_UNORM, PIPE_FORMAT_X4R12_UNORM, PIPE_FORMAT_X4R12X4G12_UNORM, /* mixed formats */ PIPE_FORMAT_R8SG8SB8UX8U_NORM, PIPE_FORMAT_R5SG5SB6U_NORM, /* TODO: re-order these */ PIPE_FORMAT_A8B8G8R8_UNORM, PIPE_FORMAT_B5G5R5X1_UNORM, PIPE_FORMAT_R9G9B9E5_FLOAT, PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, PIPE_FORMAT_R1_UNORM, PIPE_FORMAT_R10G10B10X2_USCALED, PIPE_FORMAT_R10G10B10X2_SNORM, PIPE_FORMAT_L4A4_UNORM, PIPE_FORMAT_A2R10G10B10_UNORM, PIPE_FORMAT_A2B10G10R10_UNORM, PIPE_FORMAT_R10SG10SB10SA2U_NORM, PIPE_FORMAT_R8G8Bx_SNORM, PIPE_FORMAT_R8G8B8X8_UNORM, PIPE_FORMAT_B4G4R4X4_UNORM, /* some stencil samplers formats */ PIPE_FORMAT_X24S8_UINT, PIPE_FORMAT_S8X24_UINT, PIPE_FORMAT_X32_S8X24_UINT, PIPE_FORMAT_R3G3B2_UNORM, PIPE_FORMAT_B2G3R3_UNORM, PIPE_FORMAT_L16A16_UNORM, PIPE_FORMAT_A16_UNORM, PIPE_FORMAT_I16_UNORM, PIPE_FORMAT_LATC1_UNORM, PIPE_FORMAT_LATC1_SNORM, PIPE_FORMAT_LATC2_UNORM, PIPE_FORMAT_LATC2_SNORM, PIPE_FORMAT_A8_SNORM, PIPE_FORMAT_L8_SNORM, PIPE_FORMAT_L8A8_SNORM, PIPE_FORMAT_I8_SNORM, PIPE_FORMAT_A16_SNORM, PIPE_FORMAT_L16_SNORM, PIPE_FORMAT_L16A16_SNORM, PIPE_FORMAT_I16_SNORM, PIPE_FORMAT_A16_FLOAT, PIPE_FORMAT_L16_FLOAT, PIPE_FORMAT_L16A16_FLOAT, PIPE_FORMAT_I16_FLOAT, PIPE_FORMAT_A32_FLOAT, PIPE_FORMAT_L32_FLOAT, PIPE_FORMAT_L32A32_FLOAT, PIPE_FORMAT_I32_FLOAT, PIPE_FORMAT_YV12, PIPE_FORMAT_YV16, PIPE_FORMAT_IYUV, /**< aka I420 */ PIPE_FORMAT_NV12, PIPE_FORMAT_NV21, PIPE_FORMAT_NV16, PIPE_FORMAT_NV15, PIPE_FORMAT_NV20, PIPE_FORMAT_Y8_400_UNORM, /* PIPE_FORMAT_Y8_U8_V8_420_UNORM = IYUV */ /* PIPE_FORMAT_Y8_U8V8_420_UNORM = NV12 */ PIPE_FORMAT_Y8_U8_V8_422_UNORM, /*PIPE_FORMAT_Y8_U8V8_422_UNORM = NV16 */ PIPE_FORMAT_Y8_U8_V8_444_UNORM, PIPE_FORMAT_Y8_U8_V8_440_UNORM, PIPE_FORMAT_Y16_U16_V16_420_UNORM, /* PIPE_FORMAT_Y16_U16V16_420_UNORM */ PIPE_FORMAT_Y16_U16_V16_422_UNORM, PIPE_FORMAT_Y16_U16V16_422_UNORM, PIPE_FORMAT_Y16_U16_V16_444_UNORM, PIPE_FORMAT_A4R4_UNORM, PIPE_FORMAT_R4A4_UNORM, PIPE_FORMAT_R8A8_UNORM, PIPE_FORMAT_A8R8_UNORM, PIPE_FORMAT_A8_UINT, PIPE_FORMAT_I8_UINT, PIPE_FORMAT_L8_UINT, PIPE_FORMAT_L8A8_UINT, PIPE_FORMAT_A8_SINT, PIPE_FORMAT_I8_SINT, PIPE_FORMAT_L8_SINT, PIPE_FORMAT_L8A8_SINT, PIPE_FORMAT_A16_UINT, PIPE_FORMAT_I16_UINT, PIPE_FORMAT_L16_UINT, PIPE_FORMAT_L16A16_UINT, PIPE_FORMAT_A16_SINT, PIPE_FORMAT_I16_SINT, PIPE_FORMAT_L16_SINT, PIPE_FORMAT_L16A16_SINT, PIPE_FORMAT_A32_UINT, PIPE_FORMAT_I32_UINT, PIPE_FORMAT_L32_UINT, PIPE_FORMAT_L32A32_UINT, PIPE_FORMAT_A32_SINT, PIPE_FORMAT_I32_SINT, PIPE_FORMAT_L32_SINT, PIPE_FORMAT_L32A32_SINT, PIPE_FORMAT_A8R8G8B8_UINT, PIPE_FORMAT_A8B8G8R8_UINT, PIPE_FORMAT_A2R10G10B10_UINT, PIPE_FORMAT_A2B10G10R10_UINT, PIPE_FORMAT_R5G6B5_UINT, PIPE_FORMAT_B5G6R5_UINT, PIPE_FORMAT_R5G5B5A1_UINT, PIPE_FORMAT_B5G5R5A1_UINT, PIPE_FORMAT_A1R5G5B5_UINT, PIPE_FORMAT_A1B5G5R5_UINT, PIPE_FORMAT_R4G4B4A4_UINT, PIPE_FORMAT_B4G4R4A4_UINT, PIPE_FORMAT_A4R4G4B4_UINT, PIPE_FORMAT_A4B4G4R4_UINT, PIPE_FORMAT_R3G3B2_UINT, PIPE_FORMAT_B2G3R3_UINT, PIPE_FORMAT_ETC1_RGB8, PIPE_FORMAT_R8G8_R8B8_UNORM, PIPE_FORMAT_R8B8_R8G8_UNORM, PIPE_FORMAT_G8R8_B8R8_UNORM, PIPE_FORMAT_B8R8_G8R8_UNORM, PIPE_FORMAT_G8B8_G8R8_UNORM, PIPE_FORMAT_B8G8_R8G8_UNORM, PIPE_FORMAT_R8G8B8X8_SNORM, PIPE_FORMAT_R8G8B8X8_SRGB, PIPE_FORMAT_R8G8B8X8_UINT, PIPE_FORMAT_R8G8B8X8_SINT, PIPE_FORMAT_B10G10R10X2_UNORM, PIPE_FORMAT_R16G16B16X16_UNORM, PIPE_FORMAT_R16G16B16X16_SNORM, PIPE_FORMAT_R16G16B16X16_FLOAT, PIPE_FORMAT_R16G16B16X16_UINT, PIPE_FORMAT_R16G16B16X16_SINT, PIPE_FORMAT_R32G32B32X32_FLOAT, PIPE_FORMAT_R32G32B32X32_UINT, PIPE_FORMAT_R32G32B32X32_SINT, PIPE_FORMAT_R8A8_SNORM, PIPE_FORMAT_R16A16_UNORM, PIPE_FORMAT_R16A16_SNORM, PIPE_FORMAT_R16A16_FLOAT, PIPE_FORMAT_R32A32_FLOAT, PIPE_FORMAT_R8A8_UINT, PIPE_FORMAT_R8A8_SINT, PIPE_FORMAT_R16A16_UINT, PIPE_FORMAT_R16A16_SINT, PIPE_FORMAT_R32A32_UINT, PIPE_FORMAT_R32A32_SINT, PIPE_FORMAT_B5G6R5_SRGB, PIPE_FORMAT_BPTC_RGBA_UNORM, PIPE_FORMAT_BPTC_SRGBA, PIPE_FORMAT_BPTC_RGB_FLOAT, PIPE_FORMAT_BPTC_RGB_UFLOAT, PIPE_FORMAT_G8R8_UNORM, PIPE_FORMAT_G8R8_SNORM, PIPE_FORMAT_G16R16_UNORM, PIPE_FORMAT_G16R16_SNORM, PIPE_FORMAT_A8B8G8R8_SNORM, PIPE_FORMAT_X8B8G8R8_SNORM, PIPE_FORMAT_ETC2_RGB8, PIPE_FORMAT_ETC2_SRGB8, PIPE_FORMAT_ETC2_RGB8A1, PIPE_FORMAT_ETC2_SRGB8A1, PIPE_FORMAT_ETC2_RGBA8, PIPE_FORMAT_ETC2_SRGBA8, PIPE_FORMAT_ETC2_R11_UNORM, PIPE_FORMAT_ETC2_R11_SNORM, PIPE_FORMAT_ETC2_RG11_UNORM, PIPE_FORMAT_ETC2_RG11_SNORM, PIPE_FORMAT_ASTC_4x4, PIPE_FORMAT_ASTC_5x4, PIPE_FORMAT_ASTC_5x5, PIPE_FORMAT_ASTC_6x5, PIPE_FORMAT_ASTC_6x6, PIPE_FORMAT_ASTC_8x5, PIPE_FORMAT_ASTC_8x6, PIPE_FORMAT_ASTC_8x8, PIPE_FORMAT_ASTC_10x5, PIPE_FORMAT_ASTC_10x6, PIPE_FORMAT_ASTC_10x8, PIPE_FORMAT_ASTC_10x10, PIPE_FORMAT_ASTC_12x10, PIPE_FORMAT_ASTC_12x12, PIPE_FORMAT_ASTC_4x4_SRGB, PIPE_FORMAT_ASTC_5x4_SRGB, PIPE_FORMAT_ASTC_5x5_SRGB, PIPE_FORMAT_ASTC_6x5_SRGB, PIPE_FORMAT_ASTC_6x6_SRGB, PIPE_FORMAT_ASTC_8x5_SRGB, PIPE_FORMAT_ASTC_8x6_SRGB, PIPE_FORMAT_ASTC_8x8_SRGB, PIPE_FORMAT_ASTC_10x5_SRGB, PIPE_FORMAT_ASTC_10x6_SRGB, PIPE_FORMAT_ASTC_10x8_SRGB, PIPE_FORMAT_ASTC_10x10_SRGB, PIPE_FORMAT_ASTC_12x10_SRGB, PIPE_FORMAT_ASTC_12x12_SRGB, PIPE_FORMAT_ASTC_3x3x3, PIPE_FORMAT_ASTC_4x3x3, PIPE_FORMAT_ASTC_4x4x3, PIPE_FORMAT_ASTC_4x4x4, PIPE_FORMAT_ASTC_5x4x4, PIPE_FORMAT_ASTC_5x5x4, PIPE_FORMAT_ASTC_5x5x5, PIPE_FORMAT_ASTC_6x5x5, PIPE_FORMAT_ASTC_6x6x5, PIPE_FORMAT_ASTC_6x6x6, PIPE_FORMAT_ASTC_3x3x3_SRGB, PIPE_FORMAT_ASTC_4x3x3_SRGB, PIPE_FORMAT_ASTC_4x4x3_SRGB, PIPE_FORMAT_ASTC_4x4x4_SRGB, PIPE_FORMAT_ASTC_5x4x4_SRGB, PIPE_FORMAT_ASTC_5x5x4_SRGB, PIPE_FORMAT_ASTC_5x5x5_SRGB, PIPE_FORMAT_ASTC_6x5x5_SRGB, PIPE_FORMAT_ASTC_6x6x5_SRGB, PIPE_FORMAT_ASTC_6x6x6_SRGB, PIPE_FORMAT_FXT1_RGB, PIPE_FORMAT_FXT1_RGBA, PIPE_FORMAT_P010, PIPE_FORMAT_P012, PIPE_FORMAT_P016, PIPE_FORMAT_P030, PIPE_FORMAT_Y210, PIPE_FORMAT_Y212, PIPE_FORMAT_Y216, PIPE_FORMAT_Y410, PIPE_FORMAT_Y412, PIPE_FORMAT_Y416, PIPE_FORMAT_R10G10B10X2_UNORM, PIPE_FORMAT_A1R5G5B5_UNORM, PIPE_FORMAT_A1B5G5R5_UNORM, PIPE_FORMAT_X1B5G5R5_UNORM, PIPE_FORMAT_R5G5B5A1_UNORM, PIPE_FORMAT_A4R4G4B4_UNORM, PIPE_FORMAT_A4B4G4R4_UNORM, PIPE_FORMAT_G8R8_SINT, PIPE_FORMAT_A8B8G8R8_SINT, PIPE_FORMAT_X8B8G8R8_SINT, PIPE_FORMAT_ATC_RGB, PIPE_FORMAT_ATC_RGBA_EXPLICIT, PIPE_FORMAT_ATC_RGBA_INTERPOLATED, PIPE_FORMAT_Z24_UNORM_S8_UINT_AS_R8G8B8A8, PIPE_FORMAT_AYUV, PIPE_FORMAT_XYUV, PIPE_FORMAT_R8_G8B8_420_UNORM, PIPE_FORMAT_R8_B8G8_420_UNORM, PIPE_FORMAT_G8_B8R8_420_UNORM, PIPE_FORMAT_R10_G10B10_420_UNORM, PIPE_FORMAT_R10_G10B10_422_UNORM, PIPE_FORMAT_R8_G8_B8_420_UNORM, PIPE_FORMAT_R8_B8_G8_420_UNORM, PIPE_FORMAT_G8_B8_R8_420_UNORM, PIPE_FORMAT_R8_G8B8_422_UNORM, PIPE_FORMAT_R8_B8G8_422_UNORM, PIPE_FORMAT_G8_B8R8_422_UNORM, PIPE_FORMAT_R8_G8_B8_UNORM, PIPE_FORMAT_Y8_UNORM, PIPE_FORMAT_B8G8R8X8_SNORM, PIPE_FORMAT_B8G8R8X8_UINT, PIPE_FORMAT_B8G8R8X8_SINT, PIPE_FORMAT_A8R8G8B8_SNORM, PIPE_FORMAT_A8R8G8B8_SINT, PIPE_FORMAT_X8R8G8B8_SNORM, PIPE_FORMAT_X8R8G8B8_SINT, PIPE_FORMAT_R5G5B5X1_UNORM, PIPE_FORMAT_X1R5G5B5_UNORM, PIPE_FORMAT_R4G4B4X4_UNORM, PIPE_FORMAT_B10G10R10X2_SNORM, PIPE_FORMAT_R5G6B5_SRGB, PIPE_FORMAT_R10G10B10X2_SINT, PIPE_FORMAT_B10G10R10X2_SINT, PIPE_FORMAT_G16R16_SINT, PIPE_FORMAT_COUNT }; enum pipe_video_chroma_format { PIPE_VIDEO_CHROMA_FORMAT_400, PIPE_VIDEO_CHROMA_FORMAT_420, PIPE_VIDEO_CHROMA_FORMAT_422, PIPE_VIDEO_CHROMA_FORMAT_444, PIPE_VIDEO_CHROMA_FORMAT_440, PIPE_VIDEO_CHROMA_FORMAT_NONE }; static inline enum pipe_video_chroma_format pipe_format_to_chroma_format(enum pipe_format format) { switch (format) { case PIPE_FORMAT_NV12: case PIPE_FORMAT_NV21: case PIPE_FORMAT_YV12: case PIPE_FORMAT_IYUV: case PIPE_FORMAT_P010: case PIPE_FORMAT_P012: case PIPE_FORMAT_P016: case PIPE_FORMAT_P030: case PIPE_FORMAT_Y16_U16_V16_420_UNORM: return PIPE_VIDEO_CHROMA_FORMAT_420; case PIPE_FORMAT_UYVY: case PIPE_FORMAT_VYUY: case PIPE_FORMAT_YUYV: case PIPE_FORMAT_YVYU: case PIPE_FORMAT_YV16: case PIPE_FORMAT_NV16: case PIPE_FORMAT_Y8_U8_V8_422_UNORM: case PIPE_FORMAT_Y16_U16_V16_422_UNORM: case PIPE_FORMAT_Y16_U16V16_422_UNORM: return PIPE_VIDEO_CHROMA_FORMAT_422; case PIPE_FORMAT_Y8_U8_V8_444_UNORM: case PIPE_FORMAT_Y16_U16_V16_444_UNORM: return PIPE_VIDEO_CHROMA_FORMAT_444; case PIPE_FORMAT_Y8_U8_V8_440_UNORM: return PIPE_VIDEO_CHROMA_FORMAT_440; case PIPE_FORMAT_Y8_400_UNORM: return PIPE_VIDEO_CHROMA_FORMAT_400; default: return PIPE_VIDEO_CHROMA_FORMAT_NONE; } } /** * Texture & format swizzles */ enum pipe_swizzle { PIPE_SWIZZLE_X, PIPE_SWIZZLE_Y, PIPE_SWIZZLE_Z, PIPE_SWIZZLE_W, PIPE_SWIZZLE_0, PIPE_SWIZZLE_1, /* Non-existent format channel, not used for swizzle operations. */ PIPE_SWIZZLE_NONE, PIPE_SWIZZLE_MAX, /**< Number of enums counter (must be last) */ }; #define PIPE_MASK_R 0x1 #define PIPE_MASK_G 0x2 #define PIPE_MASK_B 0x4 #define PIPE_MASK_A 0x8 #define PIPE_MASK_RGBA 0xf #define PIPE_MASK_Z 0x10 #define PIPE_MASK_S 0x20 #define PIPE_MASK_ZS 0x30 #define PIPE_MASK_RGBAZS (PIPE_MASK_RGBA|PIPE_MASK_ZS) union pipe_color_union { float f[4]; int i[4]; unsigned int ui[4]; }; #ifdef __cplusplus } #endif # 644 "../mesa/src/util/format/u_formats.h" #endif /* U_FORMATS_H_ */ # 646 "../mesa/src/util/format/u_formats.h" #endif /* u_formats.h expanded by -frewrite-includes */ # 52 "../mesa/src/gallium/include/pipe/p_state.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* box.h expanded by -frewrite-includes */ #include "util/box.h" #else /* box.h expanded by -frewrite-includes */ # 52 "../mesa/src/gallium/include/pipe/p_state.h" # 1 "../mesa/src/util/box.h" 1 #ifndef UTIL_BOX_H #define UTIL_BOX_H #if 0 /* expanded by -frewrite-includes */ #include "util/u_math.h" #endif /* expanded by -frewrite-includes */ # 4 "../mesa/src/util/box.h" # 5 "../mesa/src/util/box.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_format.h expanded by -frewrite-includes */ #include "util/format/u_format.h" #else /* u_format.h expanded by -frewrite-includes */ # 5 "../mesa/src/util/box.h" # 1 "../mesa/src/util/format/u_format.h" 1 /************************************************************************** * * Copyright 2009-2010 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef U_FORMAT_H #define U_FORMAT_H #if 0 /* expanded by -frewrite-includes */ #include "util/format/u_formats.h" #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/util/format/u_format.h" # 34 "../mesa/src/util/format/u_format.h" #if 0 /* expanded by -frewrite-includes */ #include "util/u_debug.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/util/format/u_format.h" # 35 "../mesa/src/util/format/u_format.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* c99_compat.h expanded by -frewrite-includes */ #include "c99_compat.h" #else /* c99_compat.h expanded by -frewrite-includes */ # 36 "../mesa/src/util/format/u_format.h" # 1 "../mesa/include/c99_compat.h" 1 /************************************************************************** * * Copyright 2007-2013 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #if defined(__CLANG_REWRITTEN_INCLUDES) /* no_extern_c.h expanded by -frewrite-includes */ #include "no_extern_c.h" #else /* no_extern_c.h expanded by -frewrite-includes */ # 28 "../mesa/include/c99_compat.h" # 1 "../mesa/include/no_extern_c.h" 1 /************************************************************************** * * Copyright 2014 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ /* * Including system's headers inside `extern "C" { ... }` is not safe, as system * headers may have C++ code in them, and C++ code inside extern "C" * leads to syntactically incorrect code. * * This is because putting code inside extern "C" won't make __cplusplus define * go away, that is, the system header being included thinks is free to use C++ * as it sees fits. * * Including non-system headers inside extern "C" is not safe either, because * non-system headers end up including system headers, hence fall in the above * case too. * * Conclusion, includes inside extern "C" is simply not portable. * * * This header helps surface these issues. */ #ifdef __cplusplus template class _IncludeInsideExternCNotPortable; #endif # 49 "../mesa/include/no_extern_c.h" #endif /* no_extern_c.h expanded by -frewrite-includes */ # 29 "../mesa/include/c99_compat.h" 2 #ifndef _C99_COMPAT_H_ #define _C99_COMPAT_H_ /* * MSVC hacks. */ #if 0 /* disabled by -frewrite-includes */ #if defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 38 "../mesa/include/c99_compat.h" #if 0 /* disabled by -frewrite-includes */ # if _MSC_VER < 1900 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 40 "../mesa/include/c99_compat.h" # error "Microsoft Visual Studio 2015 or higher required" # endif # 42 "../mesa/include/c99_compat.h" /* * XXX: MSVC has a `__restrict` keyword, but it also has a * `__declspec(restrict)` modifier, so it is impossible to define a * `restrict` macro without interfering with the latter. Furthermore the * MSVC standard library uses __declspec(restrict) under the _CRTRESTRICT * macro. For now resolve this issue by redefining _CRTRESTRICT, but going * forward we should probably should stop using restrict, especially * considering that our code does not obbey strict aliasing rules any way. */ #if 0 /* expanded by -frewrite-includes */ # include #endif /* expanded by -frewrite-includes */ # 52 "../mesa/include/c99_compat.h" # 53 "../mesa/include/c99_compat.h" # undef _CRTRESTRICT # define _CRTRESTRICT #endif # 56 "../mesa/include/c99_compat.h" /* * C99 restrict keyword * * See also: * - http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html */ #ifndef restrict # ifndef __cplusplus /* Use C99 restrict keyword */ #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 68 "../mesa/include/c99_compat.h" # define restrict __restrict__ #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(_MSC_VER) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 70 "../mesa/include/c99_compat.h" # define restrict __restrict # else # 72 "../mesa/include/c99_compat.h" # define restrict /* */ # endif # 74 "../mesa/include/c99_compat.h" #endif # 75 "../mesa/include/c99_compat.h" /* Simple test case for debugging */ #if 0 /* disabled by -frewrite-includes */ #if 0 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 79 "../mesa/include/c99_compat.h" static inline const char * test_c99_compat_h(const void * restrict a, const void * restrict b) { return __func__; } #endif # 86 "../mesa/include/c99_compat.h" #endif /* _C99_COMPAT_H_ */ # 89 "../mesa/include/c99_compat.h" #endif /* c99_compat.h expanded by -frewrite-includes */ # 37 "../mesa/src/util/format/u_format.h" 2 #ifdef __cplusplus extern "C" { #endif # 41 "../mesa/src/util/format/u_format.h" /** * Describe how to pack/unpack pixels into/from the prescribed format. * * XXX: This could be renamed to something like util_format_pack, or broke down * in flags inside util_format_block that said exactly what we want. */ enum util_format_layout { /** * Formats with util_format_block::width == util_format_block::height == 1 * that can be described as an ordinary data structure. */ UTIL_FORMAT_LAYOUT_PLAIN, /** * Formats with sub-sampled channels. * * This is for formats like YVYU where there is less than one sample per * pixel. */ UTIL_FORMAT_LAYOUT_SUBSAMPLED, /** * S3 Texture Compression formats. */ UTIL_FORMAT_LAYOUT_S3TC, /** * Red-Green Texture Compression formats. */ UTIL_FORMAT_LAYOUT_RGTC, /** * Ericsson Texture Compression */ UTIL_FORMAT_LAYOUT_ETC, /** * BC6/7 Texture Compression */ UTIL_FORMAT_LAYOUT_BPTC, UTIL_FORMAT_LAYOUT_ASTC, UTIL_FORMAT_LAYOUT_ATC, /** Formats with 2 or more planes. */ UTIL_FORMAT_LAYOUT_PLANAR2, UTIL_FORMAT_LAYOUT_PLANAR3, UTIL_FORMAT_LAYOUT_FXT1 = 10, /** * Everything else that doesn't fit in any of the above layouts. */ UTIL_FORMAT_LAYOUT_OTHER, }; struct util_format_block { /** Block width in pixels */ unsigned width; /** Block height in pixels */ unsigned height; /** Block depth in pixels */ unsigned depth; /** Block size in bits */ unsigned bits; }; enum util_format_type { UTIL_FORMAT_TYPE_VOID = 0, UTIL_FORMAT_TYPE_UNSIGNED = 1, UTIL_FORMAT_TYPE_SIGNED = 2, UTIL_FORMAT_TYPE_FIXED = 3, UTIL_FORMAT_TYPE_FLOAT = 4 }; enum util_format_colorspace { UTIL_FORMAT_COLORSPACE_RGB = 0, UTIL_FORMAT_COLORSPACE_SRGB = 1, UTIL_FORMAT_COLORSPACE_YUV = 2, UTIL_FORMAT_COLORSPACE_ZS = 3 }; struct util_format_channel_description { unsigned type:5; /**< UTIL_FORMAT_TYPE_x */ unsigned normalized:1; unsigned pure_integer:1; unsigned size:9; /**< bits per channel */ unsigned shift:16; /** number of bits from lsb */ }; struct util_format_description { enum pipe_format format; const char *name; /** * Short name, striped of the prefix, lower case. */ const char *short_name; /** * Pixel block dimensions. */ struct util_format_block block; enum util_format_layout layout; /** * The number of channels. */ unsigned nr_channels:3; /** * Whether all channels have the same number of (whole) bytes and type. */ unsigned is_array:1; /** * Whether the pixel format can be described as a bitfield structure. * * In particular: * - pixel depth must be 8, 16, or 32 bits; * - all channels must be unsigned, signed, or void */ unsigned is_bitmask:1; /** * Whether channels have mixed types (ignoring UTIL_FORMAT_TYPE_VOID). */ unsigned is_mixed:1; /** * Whether the format contains UNORM channels */ unsigned is_unorm:1; /** * Whether the format contains SNORM channels */ unsigned is_snorm:1; /** * Input channel description, in the order XYZW. * * Only valid for UTIL_FORMAT_LAYOUT_PLAIN formats. * * If each channel is accessed as an individual N-byte value, X is always * at the lowest address in memory, Y is always next, and so on. For all * currently-defined formats, the N-byte value has native endianness. * * If instead a group of channels is accessed as a single N-byte value, * the order of the channels within that value depends on endianness. * For big-endian targets, X is the most significant subvalue, * otherwise it is the least significant one. * * For example, if X is 8 bits and Y is 24 bits, the memory order is: * * 0 1 2 3 * little-endian: X Yl Ym Yu (l = lower, m = middle, u = upper) * big-endian: X Yu Ym Yl * * If X is 5 bits, Y is 5 bits, Z is 5 bits and W is 1 bit, the layout is: * * 0 1 * msb lsb msb lsb * little-endian: YYYXXXXX WZZZZZYY * big-endian: XXXXXYYY YYZZZZZW */ struct util_format_channel_description channel[4]; /** * Output channel swizzle. * * The order is either: * - RGBA * - YUV(A) * - ZS * depending on the colorspace. */ unsigned char swizzle[4]; /** * Colorspace transformation. */ enum util_format_colorspace colorspace; /** * For sRGB formats, equivalent linear format; for linear formats, * equivalent sRGB format */ union { enum pipe_format srgb_equivalent; enum pipe_format linear_equivalent; }; }; struct util_format_pack_description { /** * Pack pixel blocks from R8G8B8A8_UNORM. * Note: strides are in bytes. * * Only defined for non-depth-stencil formats. */ void (*pack_rgba_8unorm)(uint8_t *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Pack pixel blocks from R32G32B32A32_FLOAT. * Note: strides are in bytes. * * Only defined for non-depth-stencil formats. */ void (*pack_rgba_float)(uint8_t *restrict dst, unsigned dst_stride, const float *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Pack pixels from Z32_UNORM. * Note: strides are in bytes. * * Only defined for depth formats. */ void (*pack_z_32unorm)(uint8_t *restrict dst, unsigned dst_stride, const uint32_t *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Pack pixels from Z32_FLOAT. * Note: strides are in bytes. * * Only defined for depth formats. */ void (*pack_z_float)(uint8_t *restrict dst, unsigned dst_stride, const float *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Pack pixels from S8_UINT. * Note: strides are in bytes. * * Only defined for stencil formats. */ void (*pack_s_8uint)(uint8_t *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); void (*pack_rgba_uint)(uint8_t *restrict dst, unsigned dst_stride, const uint32_t *restrict src, unsigned src_stride, unsigned width, unsigned height); void (*pack_rgba_sint)(uint8_t *restrict dst, unsigned dst_stride, const int32_t *restrict src, unsigned src_stride, unsigned width, unsigned height); }; struct util_format_unpack_description { /** * Unpack pixel blocks to R8G8B8A8_UNORM. * Note: strides are in bytes. * * Only defined for non-block non-depth-stencil formats. */ void (*unpack_rgba_8unorm)(uint8_t *restrict dst, const uint8_t *restrict src, unsigned width); /** * Unpack pixel blocks to R8G8B8A8_UNORM. * Note: strides are in bytes. * * Only defined for block non-depth-stencil formats. */ void (*unpack_rgba_8unorm_rect)(uint8_t *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Fetch a single pixel (i, j) from a block. * * XXX: Only defined for a very few select formats. */ void (*fetch_rgba_8unorm)(uint8_t *restrict dst, const uint8_t *restrict src, unsigned i, unsigned j); /** * Unpack pixel blocks to R32G32B32A32_UINT/_INT_FLOAT based on whether the * type is pure uint, int, or other. * * Note: strides are in bytes. * * Only defined for non-block non-depth-stencil formats. */ void (*unpack_rgba)(void *restrict dst, const uint8_t *restrict src, unsigned width); /** * Unpack pixel blocks to R32G32B32A32_UINT/_INT_FLOAT based on whether the * type is pure uint, int, or other. * * Note: strides are in bytes. * * Only defined for block non-depth-stencil formats. */ void (*unpack_rgba_rect)(void *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Unpack pixels to Z32_UNORM. * Note: strides are in bytes. * * Only defined for depth formats. */ void (*unpack_z_32unorm)(uint32_t *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Unpack pixels to Z32_FLOAT. * Note: strides are in bytes. * * Only defined for depth formats. */ void (*unpack_z_float)(float *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); /** * Unpack pixels to S8_UINT. * Note: strides are in bytes. * * Only defined for stencil formats. */ void (*unpack_s_8uint)(uint8_t *restrict dst, unsigned dst_stride, const uint8_t *restrict src, unsigned src_stride, unsigned width, unsigned height); }; typedef void (*util_format_fetch_rgba_func_ptr)(void *restrict dst, const uint8_t *restrict src, unsigned i, unsigned j); /* Silence warnings triggered by sharing function/struct names */ #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wshadow" #endif # 418 "../mesa/src/util/format/u_format.h" const struct util_format_description * util_format_description(enum pipe_format format) ATTRIBUTE_CONST; const struct util_format_pack_description * util_format_pack_description(enum pipe_format format) ATTRIBUTE_CONST; /* Lookup with CPU detection for choosing optimized paths. */ const struct util_format_unpack_description * util_format_unpack_description(enum pipe_format format) ATTRIBUTE_CONST; /* Codegenned table of CPU-agnostic unpack code. */ const struct util_format_unpack_description * util_format_unpack_description_generic(enum pipe_format format) ATTRIBUTE_CONST; const struct util_format_unpack_description * util_format_unpack_description_neon(enum pipe_format format) ATTRIBUTE_CONST; #ifdef __GNUC__ #pragma GCC diagnostic pop #endif # 438 "../mesa/src/util/format/u_format.h" /** * Returns a function to fetch a single pixel (i, j) from a block. * * Only defined for non-depth-stencil and non-integer formats. */ util_format_fetch_rgba_func_ptr util_format_fetch_rgba_func(enum pipe_format format) ATTRIBUTE_CONST; /* * Format query functions. */ static inline const char * util_format_name(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return "PIPE_FORMAT_???"; } return desc->name; } static inline const char * util_format_short_name(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return "???"; } return desc->short_name; } static inline const char * util_chroma_format_name(enum pipe_video_chroma_format chroma_format) { switch (chroma_format) { case PIPE_VIDEO_CHROMA_FORMAT_400: return "PIPE_VIDEO_CHROMA_FORMAT_400"; case PIPE_VIDEO_CHROMA_FORMAT_420: return "PIPE_VIDEO_CHROMA_FORMAT_420"; case PIPE_VIDEO_CHROMA_FORMAT_422: return "PIPE_VIDEO_CHROMA_FORMAT_422"; case PIPE_VIDEO_CHROMA_FORMAT_444: return "PIPE_VIDEO_CHROMA_FORMAT_444"; case PIPE_VIDEO_CHROMA_FORMAT_NONE: return "PIPE_VIDEO_CHROMA_FORMAT_NONE"; default: return "PIPE_VIDEO_CHROMA_FORMAT_???"; } } /** * Whether this format is plain, see UTIL_FORMAT_LAYOUT_PLAIN for more info. */ static inline bool util_format_is_plain(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); if (!format) { return false; } return desc->layout == UTIL_FORMAT_LAYOUT_PLAIN ? true : false; } static inline bool util_format_is_compressed(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } switch (desc->layout) { case UTIL_FORMAT_LAYOUT_S3TC: case UTIL_FORMAT_LAYOUT_RGTC: case UTIL_FORMAT_LAYOUT_ETC: case UTIL_FORMAT_LAYOUT_BPTC: case UTIL_FORMAT_LAYOUT_ASTC: case UTIL_FORMAT_LAYOUT_ATC: case UTIL_FORMAT_LAYOUT_FXT1: /* XXX add other formats in the future */ return true; default: return false; } } static inline bool util_format_is_s3tc(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } return desc->layout == UTIL_FORMAT_LAYOUT_S3TC ? true : false; } static inline bool util_format_is_etc(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } return desc->layout == UTIL_FORMAT_LAYOUT_ETC ? true : false; } static inline bool util_format_is_srgb(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } return desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB; } static inline bool util_format_has_depth(const struct util_format_description *desc) { return desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS && desc->swizzle[0] != PIPE_SWIZZLE_NONE; } static inline bool util_format_has_stencil(const struct util_format_description *desc) { return desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS && desc->swizzle[1] != PIPE_SWIZZLE_NONE; } static inline bool util_format_is_depth_or_stencil(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } return util_format_has_depth(desc) || util_format_has_stencil(desc); } static inline bool util_format_is_depth_and_stencil(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } return util_format_has_depth(desc) && util_format_has_stencil(desc); } /** * For depth-stencil formats, return the equivalent depth-only format. */ static inline enum pipe_format util_format_get_depth_only(enum pipe_format format) { switch (format) { case PIPE_FORMAT_Z24_UNORM_S8_UINT: return PIPE_FORMAT_Z24X8_UNORM; case PIPE_FORMAT_S8_UINT_Z24_UNORM: return PIPE_FORMAT_X8Z24_UNORM; case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: return PIPE_FORMAT_Z32_FLOAT; default: return format; } } static inline bool util_format_is_yuv(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return false; } return desc->colorspace == UTIL_FORMAT_COLORSPACE_YUV; } /** * Calculates the depth format type based upon the incoming format description. */ static inline unsigned util_get_depth_format_type(const struct util_format_description *desc) { unsigned depth_channel = desc->swizzle[0]; if (desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS && depth_channel != PIPE_SWIZZLE_NONE) { return desc->channel[depth_channel].type; } else { return UTIL_FORMAT_TYPE_VOID; } } /** * Calculates the MRD for the depth format. MRD is used in depth bias * for UNORM and unbound depth buffers. When the depth buffer is floating * point, the depth bias calculation does not use the MRD. However, the * default MRD will be 1.0 / ((1 << 24) - 1). */ double util_get_depth_format_mrd(const struct util_format_description *desc); /** * Return whether this is an RGBA, Z, S, or combined ZS format. * Useful for initializing pipe_blit_info::mask. */ static inline unsigned util_format_get_mask(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); if (!desc) return 0; if (util_format_has_depth(desc)) { if (util_format_has_stencil(desc)) { return PIPE_MASK_ZS; } else { return PIPE_MASK_Z; } } else { if (util_format_has_stencil(desc)) { return PIPE_MASK_S; } else { return PIPE_MASK_RGBA; } } } /** * Give the RGBA colormask of the channels that can be represented in this * format. * * That is, the channels whose values are preserved. */ static inline unsigned util_format_colormask(const struct util_format_description *desc) { unsigned colormask; unsigned chan; switch (desc->colorspace) { case UTIL_FORMAT_COLORSPACE_RGB: case UTIL_FORMAT_COLORSPACE_SRGB: case UTIL_FORMAT_COLORSPACE_YUV: colormask = 0; for (chan = 0; chan < 4; ++chan) { if (desc->swizzle[chan] < 4) { colormask |= (1 << chan); } } return colormask; case UTIL_FORMAT_COLORSPACE_ZS: return 0; default: assert(0); return 0; } } /** * Checks if color mask covers every channel for the specified format * * @param desc a format description to check colormask with * @param colormask a bit mask for channels, matches format of PIPE_MASK_RGBA */ static inline bool util_format_colormask_full(const struct util_format_description *desc, unsigned colormask) { return (~colormask & util_format_colormask(desc)) == 0; } bool util_format_is_float(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_has_alpha(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_has_alpha1(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_luminance(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_alpha(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_luminance_alpha(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_red_alpha(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_red_green(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_intensity(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_subsampled_422(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_pure_integer(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_pure_sint(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_pure_uint(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_snorm(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_unorm(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_snorm8(enum pipe_format format) ATTRIBUTE_CONST; bool util_format_is_scaled(enum pipe_format format) ATTRIBUTE_CONST; /** * Check if the src format can be blitted to the destination format with * a simple memcpy. For example, blitting from RGBA to RGBx is OK, but not * the reverse. */ bool util_is_format_compatible(const struct util_format_description *src_desc, const struct util_format_description *dst_desc) ATTRIBUTE_CONST; /** * Whether this format is a rgab8 variant. * * That is, any format that matches the * * PIPE_FORMAT_?8?8?8?8_UNORM */ static inline bool util_format_is_rgba8_variant(const struct util_format_description *desc) { unsigned chan; if(desc->block.width != 1 || desc->block.height != 1 || desc->block.bits != 32) return false; for(chan = 0; chan < 4; ++chan) { if(desc->channel[chan].type != UTIL_FORMAT_TYPE_UNSIGNED && desc->channel[chan].type != UTIL_FORMAT_TYPE_VOID) return false; if(desc->channel[chan].type == UTIL_FORMAT_TYPE_UNSIGNED && !desc->channel[chan].normalized) return false; if(desc->channel[chan].size != 8) return false; } return true; } static inline bool util_format_is_rgbx_or_bgrx(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); return desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && desc->nr_channels == 4 && (desc->swizzle[0] == PIPE_SWIZZLE_X || desc->swizzle[0] == PIPE_SWIZZLE_Z) && desc->swizzle[1] == PIPE_SWIZZLE_Y && (desc->swizzle[2] == PIPE_SWIZZLE_Z || desc->swizzle[2] == PIPE_SWIZZLE_X) && desc->swizzle[3] == PIPE_SWIZZLE_1; } /** * Return total bits needed for the pixel format per block. */ static inline unsigned util_format_get_blocksizebits(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return 0; } return desc->block.bits; } /** * Return bytes per block (not pixel) for the given format. */ static inline unsigned util_format_get_blocksize(enum pipe_format format) { unsigned bits = util_format_get_blocksizebits(format); unsigned bytes = bits / 8; assert(bits % 8 == 0); /* Some formats have bits set to 0, let's default to 1.*/ if (bytes == 0) { bytes = 1; } return bytes; } static inline unsigned util_format_get_blockwidth(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return 1; } return desc->block.width; } static inline unsigned util_format_get_blockheight(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return 1; } return desc->block.height; } static inline unsigned util_format_get_blockdepth(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc); if (!desc) { return 1; } return desc->block.depth; } static inline unsigned util_format_get_nblocksx(enum pipe_format format, unsigned x) { unsigned blockwidth = util_format_get_blockwidth(format); return (x + blockwidth - 1) / blockwidth; } static inline unsigned util_format_get_nblocksy(enum pipe_format format, unsigned y) { unsigned blockheight = util_format_get_blockheight(format); return (y + blockheight - 1) / blockheight; } static inline unsigned util_format_get_nblocksz(enum pipe_format format, unsigned z) { unsigned blockdepth = util_format_get_blockdepth(format); return (z + blockdepth - 1) / blockdepth; } static inline uint64_t util_format_get_nblocks(enum pipe_format format, unsigned width, unsigned height) { assert(util_format_get_blockdepth(format) == 1); return (uint64_t)util_format_get_nblocksx(format, width) * util_format_get_nblocksy(format, height); } static inline unsigned util_format_get_stride(enum pipe_format format, unsigned width) { return util_format_get_nblocksx(format, width) * util_format_get_blocksize(format); } static inline uint64_t util_format_get_2d_size(enum pipe_format format, unsigned stride, unsigned height) { return (uint64_t)util_format_get_nblocksy(format, height) * stride; } static inline unsigned util_format_get_component_bits(enum pipe_format format, enum util_format_colorspace colorspace, unsigned component) { const struct util_format_description *desc = util_format_description(format); enum util_format_colorspace desc_colorspace; assert(format); if (!format) { return 0; } assert(component < 4); /* Treat RGB and SRGB as equivalent. */ if (colorspace == UTIL_FORMAT_COLORSPACE_SRGB) { colorspace = UTIL_FORMAT_COLORSPACE_RGB; } if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) { desc_colorspace = UTIL_FORMAT_COLORSPACE_RGB; } else { desc_colorspace = desc->colorspace; } if (desc_colorspace != colorspace) { return 0; } switch (desc->swizzle[component]) { case PIPE_SWIZZLE_X: return desc->channel[0].size; case PIPE_SWIZZLE_Y: return desc->channel[1].size; case PIPE_SWIZZLE_Z: return desc->channel[2].size; case PIPE_SWIZZLE_W: return desc->channel[3].size; default: return 0; } } static inline unsigned util_format_get_component_shift(enum pipe_format format, enum util_format_colorspace colorspace, unsigned component) { const struct util_format_description *desc = util_format_description(format); enum util_format_colorspace desc_colorspace; assert(format); if (!format) { return 0; } assert(component < 4); /* Treat RGB and SRGB as equivalent. */ if (colorspace == UTIL_FORMAT_COLORSPACE_SRGB) { colorspace = UTIL_FORMAT_COLORSPACE_RGB; } if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) { desc_colorspace = UTIL_FORMAT_COLORSPACE_RGB; } else { desc_colorspace = desc->colorspace; } if (desc_colorspace != colorspace) { return 0; } switch (desc->swizzle[component]) { case PIPE_SWIZZLE_X: return desc->channel[0].shift; case PIPE_SWIZZLE_Y: return desc->channel[1].shift; case PIPE_SWIZZLE_Z: return desc->channel[2].shift; case PIPE_SWIZZLE_W: return desc->channel[3].shift; default: return 0; } } /** * Given a linear RGB colorspace format, return the corresponding SRGB * format, or PIPE_FORMAT_NONE if none. */ static inline enum pipe_format util_format_srgb(enum pipe_format format) { if (util_format_is_srgb(format)) return format; return util_format_description(format)->srgb_equivalent; } /** * Given an sRGB format, return the corresponding linear colorspace format. * For non sRGB formats, return the format unchanged. */ static inline enum pipe_format util_format_linear(enum pipe_format format) { if (!util_format_is_srgb(format)) return format; return util_format_description(format)->linear_equivalent; } /** * Given a depth-stencil format, return the corresponding stencil-only format. * For stencil-only formats, return the format unchanged. */ static inline enum pipe_format util_format_stencil_only(enum pipe_format format) { switch (format) { /* mask out the depth component */ case PIPE_FORMAT_Z24_UNORM_S8_UINT: return PIPE_FORMAT_X24S8_UINT; case PIPE_FORMAT_S8_UINT_Z24_UNORM: return PIPE_FORMAT_S8X24_UINT; case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: return PIPE_FORMAT_X32_S8X24_UINT; /* stencil only formats */ case PIPE_FORMAT_X24S8_UINT: case PIPE_FORMAT_S8X24_UINT: case PIPE_FORMAT_X32_S8X24_UINT: case PIPE_FORMAT_S8_UINT: return format; default: assert(0); return PIPE_FORMAT_NONE; } } static inline enum pipe_format util_format_as_renderable(enum pipe_format format) { switch (util_format_get_blocksizebits(format)) { case 128: return PIPE_FORMAT_R32G32B32A32_UINT; case 96: return PIPE_FORMAT_R32G32B32_UINT; case 64: return PIPE_FORMAT_R32G32_UINT; case 48: return PIPE_FORMAT_R16G16B16_UINT; case 32: return PIPE_FORMAT_R32_UINT; case 24: return PIPE_FORMAT_R8G8B8_UINT; case 16: return PIPE_FORMAT_R16_UINT; case 8: return PIPE_FORMAT_R8_UINT; default: return PIPE_FORMAT_NONE; } } /** * Converts PIPE_FORMAT_*I* to PIPE_FORMAT_*R*. * This is identity for non-intensity formats. */ static inline enum pipe_format util_format_intensity_to_red(enum pipe_format format) { switch (format) { case PIPE_FORMAT_I8_UNORM: return PIPE_FORMAT_R8_UNORM; case PIPE_FORMAT_I8_SNORM: return PIPE_FORMAT_R8_SNORM; case PIPE_FORMAT_I16_UNORM: return PIPE_FORMAT_R16_UNORM; case PIPE_FORMAT_I16_SNORM: return PIPE_FORMAT_R16_SNORM; case PIPE_FORMAT_I16_FLOAT: return PIPE_FORMAT_R16_FLOAT; case PIPE_FORMAT_I32_FLOAT: return PIPE_FORMAT_R32_FLOAT; case PIPE_FORMAT_I8_UINT: return PIPE_FORMAT_R8_UINT; case PIPE_FORMAT_I8_SINT: return PIPE_FORMAT_R8_SINT; case PIPE_FORMAT_I16_UINT: return PIPE_FORMAT_R16_UINT; case PIPE_FORMAT_I16_SINT: return PIPE_FORMAT_R16_SINT; case PIPE_FORMAT_I32_UINT: return PIPE_FORMAT_R32_UINT; case PIPE_FORMAT_I32_SINT: return PIPE_FORMAT_R32_SINT; default: assert(!util_format_is_intensity(format)); return format; } } /** * Converts PIPE_FORMAT_*L* to PIPE_FORMAT_*R*. * This is identity for non-luminance formats. */ static inline enum pipe_format util_format_luminance_to_red(enum pipe_format format) { switch (format) { case PIPE_FORMAT_L8_UNORM: return PIPE_FORMAT_R8_UNORM; case PIPE_FORMAT_L8_SNORM: return PIPE_FORMAT_R8_SNORM; case PIPE_FORMAT_L16_UNORM: return PIPE_FORMAT_R16_UNORM; case PIPE_FORMAT_L16_SNORM: return PIPE_FORMAT_R16_SNORM; case PIPE_FORMAT_L16_FLOAT: return PIPE_FORMAT_R16_FLOAT; case PIPE_FORMAT_L32_FLOAT: return PIPE_FORMAT_R32_FLOAT; case PIPE_FORMAT_L8_UINT: return PIPE_FORMAT_R8_UINT; case PIPE_FORMAT_L8_SINT: return PIPE_FORMAT_R8_SINT; case PIPE_FORMAT_L16_UINT: return PIPE_FORMAT_R16_UINT; case PIPE_FORMAT_L16_SINT: return PIPE_FORMAT_R16_SINT; case PIPE_FORMAT_L32_UINT: return PIPE_FORMAT_R32_UINT; case PIPE_FORMAT_L32_SINT: return PIPE_FORMAT_R32_SINT; case PIPE_FORMAT_LATC1_UNORM: return PIPE_FORMAT_RGTC1_UNORM; case PIPE_FORMAT_LATC1_SNORM: return PIPE_FORMAT_RGTC1_SNORM; case PIPE_FORMAT_L4A4_UNORM: return PIPE_FORMAT_R4A4_UNORM; case PIPE_FORMAT_L8A8_UNORM: return PIPE_FORMAT_R8A8_UNORM; case PIPE_FORMAT_L8A8_SNORM: return PIPE_FORMAT_R8A8_SNORM; case PIPE_FORMAT_L16A16_UNORM: return PIPE_FORMAT_R16A16_UNORM; case PIPE_FORMAT_L16A16_SNORM: return PIPE_FORMAT_R16A16_SNORM; case PIPE_FORMAT_L16A16_FLOAT: return PIPE_FORMAT_R16A16_FLOAT; case PIPE_FORMAT_L32A32_FLOAT: return PIPE_FORMAT_R32A32_FLOAT; case PIPE_FORMAT_L8A8_UINT: return PIPE_FORMAT_R8A8_UINT; case PIPE_FORMAT_L8A8_SINT: return PIPE_FORMAT_R8A8_SINT; case PIPE_FORMAT_L16A16_UINT: return PIPE_FORMAT_R16A16_UINT; case PIPE_FORMAT_L16A16_SINT: return PIPE_FORMAT_R16A16_SINT; case PIPE_FORMAT_L32A32_UINT: return PIPE_FORMAT_R32A32_UINT; case PIPE_FORMAT_L32A32_SINT: return PIPE_FORMAT_R32A32_SINT; case PIPE_FORMAT_L8_SRGB: return PIPE_FORMAT_R8_SRGB; case PIPE_FORMAT_L8A8_SRGB: return PIPE_FORMAT_R8G8_SRGB; /* We don't have compressed red-alpha variants for these. */ case PIPE_FORMAT_LATC2_UNORM: case PIPE_FORMAT_LATC2_SNORM: return PIPE_FORMAT_NONE; default: assert(!util_format_is_luminance(format) && !util_format_is_luminance_alpha(format)); return format; } } static inline unsigned util_format_get_num_planes(enum pipe_format format) { switch (util_format_description(format)->layout) { case UTIL_FORMAT_LAYOUT_PLANAR3: return 3; case UTIL_FORMAT_LAYOUT_PLANAR2: return 2; default: return 1; } } static inline enum pipe_format util_format_get_plane_format(enum pipe_format format, unsigned plane) { switch (format) { case PIPE_FORMAT_YV12: case PIPE_FORMAT_YV16: case PIPE_FORMAT_IYUV: case PIPE_FORMAT_Y8_U8_V8_422_UNORM: case PIPE_FORMAT_Y8_U8_V8_444_UNORM: case PIPE_FORMAT_Y8_400_UNORM: case PIPE_FORMAT_R8_G8_B8_UNORM: case PIPE_FORMAT_Y8_U8_V8_440_UNORM: return PIPE_FORMAT_R8_UNORM; case PIPE_FORMAT_NV12: case PIPE_FORMAT_NV16: return !plane ? PIPE_FORMAT_R8_UNORM : PIPE_FORMAT_RG88_UNORM; case PIPE_FORMAT_NV21: return !plane ? PIPE_FORMAT_R8_UNORM : PIPE_FORMAT_GR88_UNORM; case PIPE_FORMAT_Y16_U16_V16_420_UNORM: case PIPE_FORMAT_Y16_U16_V16_422_UNORM: case PIPE_FORMAT_Y16_U16_V16_444_UNORM: return PIPE_FORMAT_R16_UNORM; case PIPE_FORMAT_P010: case PIPE_FORMAT_P012: case PIPE_FORMAT_P016: case PIPE_FORMAT_P030: case PIPE_FORMAT_Y16_U16V16_422_UNORM: return !plane ? PIPE_FORMAT_R16_UNORM : PIPE_FORMAT_R16G16_UNORM; default: return format; } } static inline unsigned util_format_get_plane_width(enum pipe_format format, unsigned plane, unsigned width) { switch (format) { case PIPE_FORMAT_YV12: case PIPE_FORMAT_YV16: case PIPE_FORMAT_IYUV: case PIPE_FORMAT_NV12: case PIPE_FORMAT_NV21: case PIPE_FORMAT_P010: case PIPE_FORMAT_P012: case PIPE_FORMAT_P016: case PIPE_FORMAT_P030: case PIPE_FORMAT_Y8_U8_V8_422_UNORM: case PIPE_FORMAT_NV16: case PIPE_FORMAT_Y16_U16_V16_420_UNORM: case PIPE_FORMAT_Y16_U16_V16_422_UNORM: case PIPE_FORMAT_Y16_U16V16_422_UNORM: return !plane ? width : (width + 1) / 2; default: return width; } } static inline unsigned util_format_get_plane_height(enum pipe_format format, unsigned plane, unsigned height) { switch (format) { case PIPE_FORMAT_YV12: case PIPE_FORMAT_IYUV: case PIPE_FORMAT_NV12: case PIPE_FORMAT_NV21: case PIPE_FORMAT_P010: case PIPE_FORMAT_P012: case PIPE_FORMAT_P016: case PIPE_FORMAT_P030: case PIPE_FORMAT_Y16_U16_V16_420_UNORM: case PIPE_FORMAT_Y8_U8_V8_440_UNORM: return !plane ? height : (height + 1) / 2; case PIPE_FORMAT_YV16: default: return height; } } /** * Return the number of components stored. * Formats with block size != 1x1 will always have 1 component (the block). */ static inline unsigned util_format_get_nr_components(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); assert(desc->nr_channels <= 4); return desc->nr_channels; } /** * Return the index of the first non-void channel * -1 if no non-void channels */ static inline int util_format_get_first_non_void_channel(enum pipe_format format) { const struct util_format_description *desc = util_format_description(format); int i; for (i = 0; i < 4; i++) if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) return i; return -1; } /** * Whether this format is any 8-bit UNORM variant. Looser than * util_is_rgba8_variant (also includes alpha textures, for instance). */ static inline bool util_format_is_unorm8(const struct util_format_description *desc) { int c = util_format_get_first_non_void_channel(desc->format); if (c == -1) return false; return desc->is_unorm && desc->is_array && desc->channel[c].size == 8; } static inline void util_format_unpack_z_float(enum pipe_format format, float *dst, const void *src, unsigned w) { const struct util_format_unpack_description *desc = util_format_unpack_description(format); desc->unpack_z_float(dst, 0, (const uint8_t *)src, 0, w, 1); } static inline void util_format_unpack_z_32unorm(enum pipe_format format, uint32_t *dst, const void *src, unsigned w) { const struct util_format_unpack_description *desc = util_format_unpack_description(format); desc->unpack_z_32unorm(dst, 0, (const uint8_t *)src, 0, w, 1); } static inline void util_format_unpack_s_8uint(enum pipe_format format, uint8_t *dst, const void *src, unsigned w) { const struct util_format_unpack_description *desc = util_format_unpack_description(format); desc->unpack_s_8uint(dst, 0, (const uint8_t *)src, 0, w, 1); } /** * Unpacks a row of color data to 32-bit RGBA, either integers for pure * integer formats (sign-extended for signed data), or 32-bit floats. */ static inline void util_format_unpack_rgba(enum pipe_format format, void *dst, const void *src, unsigned w) { const struct util_format_unpack_description *desc = util_format_unpack_description(format); desc->unpack_rgba(dst, (const uint8_t *)src, w); } static inline void util_format_pack_z_float(enum pipe_format format, void *dst, const float *src, unsigned w) { const struct util_format_pack_description *desc = util_format_pack_description(format); desc->pack_z_float((uint8_t *)dst, 0, src, 0, w, 1); } static inline void util_format_pack_z_32unorm(enum pipe_format format, void *dst, const uint32_t *src, unsigned w) { const struct util_format_pack_description *desc = util_format_pack_description(format); desc->pack_z_32unorm((uint8_t *)dst, 0, src, 0, w, 1); } static inline void util_format_pack_s_8uint(enum pipe_format format, void *dst, const uint8_t *src, unsigned w) { const struct util_format_pack_description *desc = util_format_pack_description(format); desc->pack_s_8uint((uint8_t *)dst, 0, src, 0, w, 1); } /** * Packs a row of color data from 32-bit RGBA, either integers for pure * integer formats, or 32-bit floats. Values are clamped to the packed * representation's range. */ static inline void util_format_pack_rgba(enum pipe_format format, void *dst, const void *src, unsigned w) { const struct util_format_pack_description *desc = util_format_pack_description(format); if (util_format_is_pure_uint(format)) desc->pack_rgba_uint((uint8_t *)dst, 0, (const uint32_t *)src, 0, w, 1); else if (util_format_is_pure_sint(format)) desc->pack_rgba_sint((uint8_t *)dst, 0, (const int32_t *)src, 0, w, 1); else desc->pack_rgba_float((uint8_t *)dst, 0, (const float *)src, 0, w, 1); } /* * Format access functions for subrectangles */ void util_format_read_4(enum pipe_format format, void *dst, unsigned dst_stride, const void *src, unsigned src_stride, unsigned x, unsigned y, unsigned w, unsigned h); void util_format_write_4(enum pipe_format format, const void *src, unsigned src_stride, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h); void util_format_read_4ub(enum pipe_format format, uint8_t *dst, unsigned dst_stride, const void *src, unsigned src_stride, unsigned x, unsigned y, unsigned w, unsigned h); void util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_stride, void *dst, unsigned dst_stride, unsigned x, unsigned y, unsigned w, unsigned h); void util_format_unpack_rgba_rect(enum pipe_format format, void *dst, unsigned dst_stride, const void *src, unsigned src_stride, unsigned w, unsigned h); void util_format_unpack_rgba_8unorm_rect(enum pipe_format format, void *dst, unsigned dst_stride, const void *src, unsigned src_stride, unsigned w, unsigned h); /* * Generic format conversion; */ bool util_format_fits_8unorm(const struct util_format_description *format_desc) ATTRIBUTE_CONST; bool util_format_translate(enum pipe_format dst_format, void *dst, unsigned dst_stride, unsigned dst_x, unsigned dst_y, enum pipe_format src_format, const void *src, unsigned src_stride, unsigned src_x, unsigned src_y, unsigned width, unsigned height); bool util_format_translate_3d(enum pipe_format dst_format, void *dst, unsigned dst_stride, uint64_t dst_slice_stride, unsigned dst_x, unsigned dst_y, unsigned dst_z, enum pipe_format src_format, const void *src, unsigned src_stride, uint64_t src_slice_stride, unsigned src_x, unsigned src_y, unsigned src_z, unsigned width, unsigned height, unsigned depth); /* * Swizzle operations. */ /* Compose two sets of swizzles. * If V is a 4D vector and the function parameters represent functions that * swizzle vector components, this holds: * swz2(swz1(V)) = dst(V) */ void util_format_compose_swizzles(const unsigned char swz1[4], const unsigned char swz2[4], unsigned char dst[4]); /* Apply the swizzle provided in \param swz (which is one of PIPE_SWIZZLE_x) * to \param src and store the result in \param dst. * \param is_integer determines the value written for PIPE_SWIZZLE_1. */ void util_format_apply_color_swizzle(union pipe_color_union *dst, const union pipe_color_union *src, const unsigned char swz[4], const bool is_integer); void pipe_swizzle_4f(float *dst, const float *src, const unsigned char swz[4]); void util_format_unswizzle_4f(float *dst, const float *src, const unsigned char swz[4]); enum pipe_format util_format_snorm_to_sint(enum pipe_format format) ATTRIBUTE_CONST; extern void util_copy_rect(void * dst, enum pipe_format format, unsigned dst_stride, unsigned dst_x, unsigned dst_y, unsigned width, unsigned height, const void * src, int src_stride, unsigned src_x, unsigned src_y); /** * If the format is RGB, return BGR. If the format is BGR, return RGB. * This may fail by returning PIPE_FORMAT_NONE. */ enum pipe_format util_format_rgb_to_bgr(enum pipe_format format); /* Returns the pipe format with SNORM formats cast to UNORM, otherwise the original pipe format. */ enum pipe_format util_format_snorm_to_unorm(enum pipe_format format); enum pipe_format util_format_rgbx_to_rgba(enum pipe_format format); /* Returns the pipe format for the given array type, bitsize and component count. */ enum pipe_format util_format_get_array(const enum util_format_type type, const unsigned bits, const unsigned nr_components, const bool normalized, const bool pure_integer); unsigned util_format_get_last_component(enum pipe_format format); int util_format_get_largest_non_void_channel(enum pipe_format format); unsigned util_format_get_max_channel_size(enum pipe_format format); uint32_t util_format_get_tilesize(enum pipe_format format, uint32_t dimensions, uint32_t samples, uint32_t axis); #ifdef __cplusplus } // extern "C" { #endif # 1631 "../mesa/src/util/format/u_format.h" #endif /* ! U_FORMAT_H */ # 1633 "../mesa/src/util/format/u_format.h" #endif /* u_format.h expanded by -frewrite-includes */ # 6 "../mesa/src/util/box.h" 2 /** * Subregion of 1D/2D/3D image resource. */ struct pipe_box { /* Only "x" and "width" are used to represent buffer ranges. * The maximum representable texture size is ANY x ANY x 16K. */ int32_t x; int32_t width; int32_t y; int32_t height; int16_t z; int16_t depth; }; static inline void u_box_1d(unsigned x, unsigned w, struct pipe_box *box) { box->x = x; box->y = 0; box->z = 0; box->width = w; box->height = 1; box->depth = 1; } static inline void u_box_2d(unsigned x,unsigned y, unsigned w, unsigned h, struct pipe_box *box) { box->x = x; box->y = y; box->z = 0; box->width = w; box->height = h; box->depth = 1; } static inline void u_box_origin_2d(unsigned w, unsigned h, struct pipe_box *box) { box->x = 0; box->y = 0; box->z = 0; box->width = w; box->height = h; box->depth = 1; } static inline void u_box_2d_zslice(unsigned x, unsigned y, unsigned z, unsigned w, unsigned h, struct pipe_box *box) { box->x = x; box->y = y; box->z = (int16_t)z; box->width = w; box->height = h; box->depth = 1; } static inline void u_box_3d(unsigned x, unsigned y, unsigned z, unsigned w, unsigned h, unsigned d, struct pipe_box *box) { box->x = x; box->y = y; box->z = (int16_t)z; box->width = w; box->height = h; box->depth = (int16_t)d; } /* Clips @dst to width @w and height @h. * Returns -1 if the resulting box would be empty (then @dst is left unchanged). * 0 if nothing has been reduced. * 1 if width has been reduced. * 2 if height has been reduced. * 3 if both width and height have been reduced. * Aliasing permitted. */ static inline int u_box_clip_2d(struct pipe_box *dst, const struct pipe_box *box, int w, int h) { unsigned i; int a[2], b[2], dim[2]; int *start, *end; int res = 0; if (!box->width || !box->height) return -1; dim[0] = w; dim[1] = h; a[0] = box->x; a[1] = box->y; b[0] = box->x + box->width; b[1] = box->y + box->height; for (i = 0; i < 2; ++i) { start = (a[i] <= b[i]) ? &a[i] : &b[i]; end = (a[i] <= b[i]) ? &b[i] : &a[i]; if (*end < 0 || *start >= dim[i]) return -1; if (*start < 0) { *start = 0; res |= (1 << i); } if (*end > dim[i]) { *end = dim[i]; res |= (1 << i); } } if (res) { dst->x = a[0]; dst->y = a[1]; dst->width = b[0] - a[0]; dst->height = b[1] - a[1]; } return res; } static inline int64_t u_box_volume_3d(const struct pipe_box *box) { return (int64_t)box->width * box->height * box->depth; } /* Aliasing of @dst permitted. Supports empty width */ static inline void u_box_union_1d(struct pipe_box *dst, const struct pipe_box *a, const struct pipe_box *b) { int x, width; if (a->width == 0) { x = b->x; width = b->width; } else if (b->width == 0) { x = a->x; width = a->width; } else { x = MIN2(a->x, b->x); width = MAX2(a->x + a->width, b->x + b->width) - x; } dst->x = x; dst->width = width; } /* Aliasing of @dst permitted. */ static inline void u_box_intersect_1d(struct pipe_box *dst, const struct pipe_box *a, const struct pipe_box *b) { int x; x = MAX2(a->x, b->x); dst->width = MIN2(a->x + a->width, b->x + b->width) - x; dst->x = x; if (dst->width <= 0) { dst->x = 0; dst->width = 0; } } /* Aliasing of @dst permitted. */ static inline void u_box_union_2d(struct pipe_box *dst, const struct pipe_box *a, const struct pipe_box *b) { int x, y; x = MIN2(a->x, b->x); y = MIN2(a->y, b->y); dst->width = MAX2(a->x + a->width, b->x + b->width) - x; dst->height = MAX2(a->y + a->height, b->y + b->height) - y; dst->x = x; dst->y = y; } /* Aliasing of @dst permitted. */ static inline void u_box_union_3d(struct pipe_box *dst, const struct pipe_box *a, const struct pipe_box *b) { int x, y, z; x = MIN2(a->x, b->x); y = MIN2(a->y, b->y); z = MIN2(a->z, b->z); dst->width = MAX2(a->x + a->width, b->x + b->width) - x; dst->height = MAX2(a->y + a->height, b->y + b->height) - y; dst->depth = (int16_t) (MAX2(a->z + a->depth, b->z + b->depth) - z); dst->x = x; dst->y = y; dst->z = (int16_t)z; } static inline bool u_box_test_intersection_1d(const struct pipe_box *a, const struct pipe_box *b) { int ax[2], bx[2]; ax[0] = MIN2(a->x, a->x + a->width); ax[1] = MAX2(a->x, a->x + a->width - 1); bx[0] = MIN2(b->x, b->x + b->width); bx[1] = MAX2(b->x, b->x + b->width - 1); return ax[1] >= bx[0] && bx[1] >= ax[0]; } static inline bool u_box_test_intersection_2d(const struct pipe_box *a, const struct pipe_box *b) { unsigned i; int a_l[2], a_r[2], b_l[2], b_r[2]; a_l[0] = MIN2(a->x, a->x + a->width); a_r[0] = MAX2(a->x, a->x + a->width); a_l[1] = MIN2(a->y, a->y + a->height); a_r[1] = MAX2(a->y, a->y + a->height); b_l[0] = MIN2(b->x, b->x + b->width); b_r[0] = MAX2(b->x, b->x + b->width); b_l[1] = MIN2(b->y, b->y + b->height); b_r[1] = MAX2(b->y, b->y + b->height); for (i = 0; i < 2; ++i) { if (a_l[i] > b_r[i] || a_r[i] < b_l[i]) return false; } return true; } static inline bool u_box_test_intersection_3d(const struct pipe_box *a, const struct pipe_box *b) { int ax[2], ay[2], ad[2], bx[2], by[2], bd[2]; ax[0] = MIN2(a->x, a->x + a->width); ax[1] = MAX2(a->x, a->x + a->width - 1); ay[0] = MIN2(a->y, a->y + a->height); ay[1] = MAX2(a->y, a->y + a->height - 1); ad[0] = MIN2(a->z, a->z + a->depth); ad[1] = MAX2(a->z, a->z + a->depth - 1); bx[0] = MIN2(b->x, b->x + b->width); bx[1] = MAX2(b->x, b->x + b->width - 1); by[0] = MIN2(b->y, b->y + b->height); by[1] = MAX2(b->y, b->y + b->height - 1); bd[0] = MIN2(b->z, b->z + b->depth); bd[1] = MAX2(b->z, b->z + b->depth - 1); return ax[1] >= bx[0] && bx[1] >= ax[0] && ay[1] >= by[0] && by[1] >= ay[0] && ad[1] >= bd[0] && bd[1] >= ad[0]; } static inline void u_box_minify_2d(struct pipe_box *dst, const struct pipe_box *src, unsigned l) { dst->x = src->x >> l; dst->y = src->y >> l; dst->width = MAX2(src->width >> l, 1); dst->height = MAX2(src->height >> l, 1); } static inline void u_box_minify_3d(struct pipe_box *dst, const struct pipe_box *src, unsigned l) { dst->x = src->x >> l; dst->y = src->y >> l; dst->z = src->z >> l; dst->width = MAX2(src->width >> l, 1); dst->height = MAX2(src->height >> l, 1); dst->depth = MAX2(src->depth >> l, 1); } /* Converts a box specified in pixels to an equivalent box specified * in blocks, where the boxes represent a region-of-interest of an image with * the given format. This is trivial (a copy) for uncompressed formats. */ static inline void u_box_pixels_to_blocks(struct pipe_box *blocks, const struct pipe_box *pixels, enum pipe_format format) { u_box_3d( pixels->x / util_format_get_blockwidth(format), pixels->y / util_format_get_blockheight(format), pixels->z, DIV_ROUND_UP(pixels->width, util_format_get_blockwidth(format)), DIV_ROUND_UP(pixels->height, util_format_get_blockheight(format)), pixels->depth, blocks); } static inline bool util_is_box_sint16(const struct pipe_box *box) { return util_is_sint16(box->x) && util_is_sint16(box->y) && util_is_sint16(box->z) && util_is_sint16(box->width) && util_is_sint16(box->height) && util_is_sint16(box->depth) && util_is_sint16(box->x + box->width) && util_is_sint16(box->y + box->height) && util_is_sint16(box->z + box->depth); } static inline bool util_is_box_out_of_bounds(const struct pipe_box *src_box, unsigned coord_mask, unsigned width, unsigned height, unsigned mip_level) { int src_width = u_minify(width, mip_level); int src_height = u_minify(height, mip_level); struct pipe_box box = *src_box; /* Eliminate negative width/height/depth. */ if (box.width < 0) { box.x += box.width; box.width *= -1; } if (box.height < 0) { box.y += box.height; box.height *= -1; } bool x_in_bounds = box.x >= 0 && box.x < src_width && box.x + box.width > 0 && box.x + box.width <= src_width; bool y_in_bounds = box.y >= 0 && box.y < src_height && box.y + box.height > 0 && box.y + box.height <= src_height; /* Return if the box is not in bounds. */ if (coord_mask & BITFIELD_BIT(0) && !x_in_bounds) return true; if (coord_mask & BITFIELD_BIT(1) && !y_in_bounds) return true; return false; } #endif # 360 "../mesa/src/util/box.h" #endif /* box.h expanded by -frewrite-includes */ # 53 "../mesa/src/gallium/include/pipe/p_state.h" 2 #ifdef __cplusplus extern "C" { #endif # 58 "../mesa/src/gallium/include/pipe/p_state.h" struct nir_shader; /** * Implementation limits */ #define PIPE_MAX_ATTRIBS 32 #define PIPE_MAX_CLIP_PLANES 8 #define PIPE_MAX_COLOR_BUFS 8 #define PIPE_MAX_CONSTANT_BUFFERS 32 #define PIPE_MAX_SAMPLERS 32 #define PIPE_MAX_SHADER_INPUTS 80 /* 32 GENERIC + 32 PATCH + 16 others */ #define PIPE_MAX_SHADER_OUTPUTS 80 /* 32 GENERIC + 32 PATCH + 16 others */ #define PIPE_MAX_SHADER_SAMPLER_VIEWS 128 #define PIPE_MAX_SHADER_BUFFERS 32 #define PIPE_MAX_SHADER_IMAGES 64 #define PIPE_MAX_TEXTURE_LEVELS 16 #define PIPE_MAX_SO_BUFFERS 4 #define PIPE_MAX_SO_OUTPUTS 128 #define PIPE_MAX_VIEWPORTS 16 #define PIPE_MAX_CLIP_OR_CULL_DISTANCE_COUNT 8 #define PIPE_MAX_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT 2 #define PIPE_MAX_WINDOW_RECTANGLES 8 #define PIPE_MAX_SAMPLE_LOCATION_GRID_SIZE 4 #define PIPE_MAX_HW_ATOMIC_BUFFERS 32 #define PIPE_MAX_VERTEX_STREAMS 4 struct pipe_reference { int32_t count; /* atomic */ }; /** * Primitive (point/line/tri) rasterization info */ struct pipe_rasterizer_state { unsigned flatshade:1; unsigned light_twoside:1; unsigned clamp_vertex_color:1; unsigned clamp_fragment_color:1; unsigned front_ccw:1; unsigned cull_face:2; /**< PIPE_FACE_x */ unsigned fill_front:2; /**< PIPE_POLYGON_MODE_x */ unsigned fill_back:2; /**< PIPE_POLYGON_MODE_x */ unsigned offset_point:1; unsigned offset_line:1; unsigned offset_tri:1; unsigned scissor:1; unsigned poly_smooth:1; unsigned poly_stipple_enable:1; unsigned point_smooth:1; unsigned sprite_coord_mode:1; /**< PIPE_SPRITE_COORD_ */ unsigned point_quad_rasterization:1; /** points rasterized as quads or points */ unsigned point_line_tri_clip:1; /** large points/lines clipped as tris or points/lines */ unsigned point_size_per_vertex:1; /**< size computed in vertex shader */ unsigned multisample:1; /* XXX maybe more ms state in future */ unsigned no_ms_sample_mask_out:1; unsigned force_persample_interp:1; unsigned line_smooth:1; unsigned line_stipple_enable:1; unsigned line_last_pixel:1; unsigned line_rectangular:1; /** lines rasterized as rectangles or parallelograms */ unsigned conservative_raster_mode:2; /**< PIPE_CONSERVATIVE_RASTER_x */ /** * Use the first vertex of a primitive as the provoking vertex for * flat shading. */ unsigned flatshade_first:1; unsigned half_pixel_center:1; unsigned bottom_edge_rule:1; /* * Conservative rasterization subpixel precision bias in bits */ unsigned subpixel_precision_x:4; unsigned subpixel_precision_y:4; /** * When true, rasterization is disabled and no pixels are written. * This only makes sense with the Stream Out functionality. */ unsigned rasterizer_discard:1; /** * Exposed by pipe_caps.tile_raster_order. When true, * tile_raster_order_increasing_* indicate the order that the rasterizer * should render tiles, to meet the requirements of * GL_MESA_tile_raster_order. */ unsigned tile_raster_order_fixed:1; unsigned tile_raster_order_increasing_x:1; unsigned tile_raster_order_increasing_y:1; /** * When false, depth clipping is disabled and the depth value will be * clamped later at the per-pixel level before depth testing. * This depends on pipe_caps.depth_clip_disable. * * If pipe_caps.depth_clip_disable_separate is unsupported, depth_clip_near * is equal to depth_clip_far. */ unsigned depth_clip_near:1; unsigned depth_clip_far:1; /** * When true, depth clamp is enabled. * If pipe_caps.depth_clamp_enable is unsupported, this is always the inverse * of depth_clip_far. */ unsigned depth_clamp:1; /** * When true clip space in the z axis goes from [0..1] (D3D). When false * [-1, 1] (GL). * * NOTE: D3D will always use depth clamping. */ unsigned clip_halfz:1; /** * When true do not scale offset_units and use same rules for unorm and * float depth buffers (D3D9). When false use GL/D3D1X behaviour. * This depends on pipe_caps.polygon_offset_units_unscaled. */ unsigned offset_units_unscaled:1; /** * Depth values output from fragment shader may be outside 0..1. * These have to be clamped for use with UNORM buffers. * Vulkan can allow this with an extension, * GL could with NV_depth_buffer_float, but GLES doesn't. */ unsigned unclamped_fragment_depth_values:1; /** * Enable bits for clipping half-spaces. * This applies to both user clip planes and shader clip distances. * Note that if the bound shader exports any clip distances, these * replace all user clip planes, and clip half-spaces enabled here * but not written by the shader count as disabled. */ unsigned clip_plane_enable:PIPE_MAX_CLIP_PLANES; unsigned line_stipple_factor:8; /**< [1..256] actually */ unsigned line_stipple_pattern:16; /** * Replace the given TEXCOORD inputs with point coordinates, max. 8 inputs. * If TEXCOORD (including PCOORD) are unsupported, replace GENERIC inputs * instead. Max. 9 inputs: 8x GENERIC to emulate TEXCOORD, and 1x GENERIC * to emulate PCOORD. */ uint16_t sprite_coord_enable; /* 0-7: TEXCOORD/GENERIC, 8: PCOORD */ float line_width; float point_size; /**< used when no per-vertex size */ float offset_units; float offset_scale; float offset_clamp; float conservative_raster_dilate; }; struct pipe_poly_stipple { unsigned stipple[32]; }; struct pipe_viewport_state { float scale[3]; float translate[3]; enum pipe_viewport_swizzle swizzle_x:8; enum pipe_viewport_swizzle swizzle_y:8; enum pipe_viewport_swizzle swizzle_z:8; enum pipe_viewport_swizzle swizzle_w:8; }; struct pipe_scissor_state { unsigned minx:16; unsigned miny:16; unsigned maxx:16; unsigned maxy:16; }; struct pipe_clip_state { float ucp[PIPE_MAX_CLIP_PLANES][4]; }; /** * A single output for vertex transform feedback. */ struct pipe_stream_output { unsigned register_index:6; /**< 0 to 63 (OUT index) */ unsigned start_component:2; /** 0 to 3 */ unsigned num_components:3; /** 1 to 4 */ unsigned output_buffer:3; /**< 0 to PIPE_MAX_SO_BUFFERS */ unsigned dst_offset:16; /**< offset into the buffer in dwords */ unsigned stream:2; /**< 0 to 3 */ }; /** * Stream output for vertex transform feedback. */ struct pipe_stream_output_info { unsigned num_outputs; /** stride for an entire vertex for each buffer in dwords */ uint16_t stride[PIPE_MAX_SO_BUFFERS]; /** * Array of stream outputs, in the order they are to be written in. * Selected components are tightly packed into the output buffer. */ struct pipe_stream_output output[PIPE_MAX_SO_OUTPUTS]; }; /** * The 'type' parameter identifies whether the shader state contains NIR, TGSI * tokens, etc. * * TODO pipe_compute_state should probably get similar treatment to handle * multiple IR's in a cleaner way.. * * NOTE: since it is expected that the consumer will want to perform * additional passes on the nir_shader, the driver takes ownership of * the nir_shader. If gallium frontends need to hang on to the IR (for * example, variant management), it should use nir_shader_clone(). */ struct pipe_shader_state { enum pipe_shader_ir type; /* TODO move tokens into union. */ const struct tgsi_token *tokens; union { void *native; struct nir_shader *nir; } ir; struct pipe_stream_output_info stream_output; }; static inline void pipe_shader_state_from_tgsi(struct pipe_shader_state *state, const struct tgsi_token *tokens) { state->type = PIPE_SHADER_IR_TGSI; state->tokens = tokens; memset(&state->stream_output, 0, sizeof(state->stream_output)); } struct pipe_stencil_state { unsigned enabled:1; /**< stencil[0]: stencil enabled, stencil[1]: two-side enabled */ unsigned func:3; /**< PIPE_FUNC_x */ unsigned fail_op:3; /**< PIPE_STENCIL_OP_x */ unsigned zpass_op:3; /**< PIPE_STENCIL_OP_x */ unsigned zfail_op:3; /**< PIPE_STENCIL_OP_x */ unsigned valuemask:8; unsigned writemask:8; }; struct pipe_depth_stencil_alpha_state { struct pipe_stencil_state stencil[2]; /**< [0] = front, [1] = back */ unsigned alpha_enabled:1; /**< alpha test enabled? */ unsigned alpha_func:3; /**< PIPE_FUNC_x */ unsigned depth_enabled:1; /**< depth test enabled? */ unsigned depth_writemask:1; /**< allow depth buffer writes? */ unsigned depth_func:3; /**< depth test func (PIPE_FUNC_x) */ unsigned depth_bounds_test:1; /**< depth bounds test enabled? */ float alpha_ref_value; /**< reference value */ double depth_bounds_min; /**< minimum depth bound */ double depth_bounds_max; /**< maximum depth bound */ }; struct pipe_rt_blend_state { unsigned blend_enable:1; unsigned rgb_func:3; /**< PIPE_BLEND_x */ unsigned rgb_src_factor:5; /**< PIPE_BLENDFACTOR_x */ unsigned rgb_dst_factor:5; /**< PIPE_BLENDFACTOR_x */ unsigned alpha_func:3; /**< PIPE_BLEND_x */ unsigned alpha_src_factor:5; /**< PIPE_BLENDFACTOR_x */ unsigned alpha_dst_factor:5; /**< PIPE_BLENDFACTOR_x */ unsigned colormask:4; /**< bitmask of PIPE_MASK_R/G/B/A */ }; struct pipe_blend_state { unsigned independent_blend_enable:1; unsigned logicop_enable:1; unsigned logicop_func:4; /**< PIPE_LOGICOP_x */ unsigned dither:1; unsigned alpha_to_coverage:1; unsigned alpha_to_coverage_dither:1; unsigned alpha_to_one:1; unsigned max_rt:3; /* index of max rt, Ie. # of cbufs minus 1 */ unsigned advanced_blend_func:4; unsigned blend_coherent:1; struct pipe_rt_blend_state rt[PIPE_MAX_COLOR_BUFS]; }; struct pipe_blend_color { float color[4]; }; struct pipe_stencil_ref { uint8_t ref_value[2]; }; /** * Note that pipe_surfaces are "texture views for rendering" * and so in the case of ARB_framebuffer_no_attachment there * is no pipe_surface state available such that we may * extract the number of samples and layers. */ struct pipe_framebuffer_state { uint16_t width, height; uint16_t layers; /**< Number of layers in a no-attachment framebuffer */ uint8_t samples; /**< Number of samples in a no-attachment framebuffer */ /** multiple color buffers for multiple render targets */ uint8_t nr_cbufs; /** used for multiview */ uint8_t viewmask; struct pipe_surface *cbufs[PIPE_MAX_COLOR_BUFS]; struct pipe_surface *zsbuf; /**< Z/stencil buffer */ struct pipe_resource *resolve; }; /** * Texture sampler state. */ struct pipe_sampler_state { unsigned wrap_s:3; /**< PIPE_TEX_WRAP_x */ unsigned wrap_t:3; /**< PIPE_TEX_WRAP_x */ unsigned wrap_r:3; /**< PIPE_TEX_WRAP_x */ unsigned min_img_filter:1; /**< PIPE_TEX_FILTER_x */ unsigned min_mip_filter:2; /**< PIPE_TEX_MIPFILTER_x */ unsigned mag_img_filter:1; /**< PIPE_TEX_FILTER_x */ unsigned compare_mode:1; /**< PIPE_TEX_COMPARE_x */ unsigned compare_func:3; /**< PIPE_FUNC_x */ unsigned unnormalized_coords:1; /**< Are coords normalized to [0,1]? */ unsigned max_anisotropy:5; unsigned seamless_cube_map:1; unsigned border_color_is_integer:1; unsigned reduction_mode:2; /**< PIPE_TEX_REDUCTION_x */ unsigned pad:5; /**< take bits from this for new members */ float lod_bias; /**< LOD/lambda bias */ float min_lod, max_lod; /**< LOD clamp range, after bias */ union pipe_color_union border_color; enum pipe_format border_color_format; /**< only with PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_FREEDRENO, must be last */ }; union pipe_surface_desc { struct { unsigned level; unsigned first_layer:16; unsigned last_layer:16; } tex; struct { unsigned first_element; unsigned last_element; } buf; }; /** * A view into a texture that can be bound to a color render target / * depth stencil attachment point. */ struct pipe_surface { struct pipe_reference reference; enum pipe_format format:16; unsigned writable:1; /**< writable shader resource */ struct pipe_resource *texture; /**< resource into which this is a view */ struct pipe_context *context; /**< context this surface belongs to */ /* XXX width/height should be removed */ uint16_t width; /**< logical width in pixels */ uint16_t height; /**< logical height in pixels */ /** * Number of samples for the surface. This will be 0 if rendering * should use the resource's nr_samples, or another value if the resource * is bound using FramebufferTexture2DMultisampleEXT. */ unsigned nr_samples:8; union pipe_surface_desc u; }; /** * A view into a texture that can be bound to a shader stage. */ struct pipe_sampler_view { /* Put the refcount on its own cache line to prevent "False sharing". */ EXCLUSIVE_CACHELINE(struct pipe_reference reference); enum pipe_format format:12; /**< typed PIPE_FORMAT_x */ unsigned astc_decode_format:2; /**< intermediate format used for ASTC textures */ bool is_tex2d_from_buf:1; /**< true if union is tex2d_from_buf */ enum pipe_texture_target target:5; /**< PIPE_TEXTURE_x */ unsigned swizzle_r:3; /**< PIPE_SWIZZLE_x for red component */ unsigned swizzle_g:3; /**< PIPE_SWIZZLE_x for green component */ unsigned swizzle_b:3; /**< PIPE_SWIZZLE_x for blue component */ unsigned swizzle_a:3; /**< PIPE_SWIZZLE_x for alpha component */ struct pipe_resource *texture; /**< texture into which this is a view */ struct pipe_context *context; /**< context this view belongs to */ union { struct { unsigned first_layer:16; /**< first layer to use for array textures */ unsigned last_layer:16; /**< last layer to use for array textures */ unsigned first_level:8; /**< first mipmap level to use */ unsigned last_level:8; /**< last mipmap level to use */ } tex; struct { unsigned offset; /**< offset in bytes */ unsigned size; /**< size of the readable sub-range in bytes */ } buf; struct { unsigned offset; /**< offset in pixels */ uint16_t row_stride; /**< size of the image row_stride in pixels */ uint16_t width; /**< width of image provided by application */ uint16_t height; /**< height of image provided by application */ } tex2d_from_buf; /**< used in cl extension cl_khr_image2d_from_buffer */ } u; }; /** * A description of a buffer or texture image that can be bound to a shader * stage. * * Note that pipe_image_view::access comes from the frontend API, while * shader_access comes from the shader and may contain additional information * (ie. coherent/volatile may be set on shader_access but not on access) */ struct pipe_image_view { struct pipe_resource *resource; /**< resource into which this is a view */ enum pipe_format format; /**< typed PIPE_FORMAT_x */ uint16_t access; /**< PIPE_IMAGE_ACCESS_x */ uint16_t shader_access; /**< PIPE_IMAGE_ACCESS_x */ union { struct { unsigned first_layer:16; /**< first layer to use for array textures */ unsigned last_layer:16; /**< last layer to use for array textures */ unsigned level:8; /**< mipmap level to use */ bool single_layer_view; /**< single layer view of array */ bool is_2d_view_of_3d; } tex; struct { unsigned offset; /**< offset in bytes */ unsigned size; /**< size of the accessible sub-range in bytes */ } buf; struct { unsigned offset; /**< offset in pixels */ uint16_t row_stride; /**< size of the image row_stride in pixels */ uint16_t width; /**< width of image provided by application */ uint16_t height; /**< height of image provided by application */ } tex2d_from_buf; /**< used in cl extension cl_khr_image2d_from_buffer */ } u; }; /** * A memory object/resource such as a vertex buffer or texture. */ struct pipe_resource { /* Put the refcount on its own cache line to prevent "False sharing". */ EXCLUSIVE_CACHELINE(struct pipe_reference reference); uint32_t width0; /**< Used by both buffers and textures. */ uint16_t height0; /* Textures: The maximum height/depth/array_size is 16k. */ uint16_t depth0; uint16_t array_size; enum pipe_format format:16; /**< PIPE_FORMAT_x */ enum pipe_texture_target target:8; /**< PIPE_TEXTURE_x */ uint8_t last_level; /**< Index of last mipmap level present/defined */ /** Number of samples determining quality, driving rasterizer, shading, * and framebuffer. */ uint8_t nr_samples; /** Multiple samples within a pixel can have the same value. * nr_storage_samples determines how many slots for different values * there are per pixel. Only color buffers can set this lower than * nr_samples. */ uint8_t nr_storage_samples; uint8_t nr_sparse_levels; /**< Mipmap levels support partial resident */ unsigned compression_rate:4; /**< Fixed-rate compresion bitrate if any */ enum pipe_resource_usage usage:4; uint32_t bind; /**< bitmask of PIPE_BIND_x */ uint32_t flags; /**< bitmask of PIPE_RESOURCE_FLAG_x */ /** * For planar images, ie. YUV EGLImage external, etc, pointer to the * next plane. */ struct pipe_resource *next; /* The screen pointer should be last for optimal structure packing. * This pointer cannot be casted directly to a driver's screen. Use * screen::get_driver_pipe_screen instead if it's non-NULL. */ struct pipe_screen *screen; /**< screen that this texture belongs to */ }; /** * Opaque object used for separate resource/memory allocations. */ struct pipe_memory_allocation; /** * Transfer object. For data transfer to/from a resource. */ struct pipe_transfer { struct pipe_resource *resource; /**< resource to transfer to/from */ enum pipe_map_flags usage:24; unsigned level:8; /**< texture mipmap level */ struct pipe_box box; /**< region of the resource to access */ unsigned stride; /**< row stride in bytes */ uintptr_t layer_stride; /**< image/layer stride in bytes */ /* Offset into a driver-internal staging buffer to make use of unused * padding in this structure. */ unsigned offset; }; /** * A vertex buffer. Typically, all the vertex data/attributes for * drawing something will be in one buffer. But it's also possible, for * example, to put colors in one buffer and texcoords in another. */ struct pipe_vertex_buffer { bool is_user_buffer; unsigned buffer_offset; /**< offset to start of data in buffer, in bytes */ union { struct pipe_resource *resource; /**< the actual buffer */ const void *user; /**< pointer to a user buffer */ } buffer; }; /** * A constant buffer. A subrange of an existing buffer can be set * as a constant buffer. */ struct pipe_constant_buffer { struct pipe_resource *buffer; /**< the actual buffer */ unsigned buffer_offset; /**< offset to start of data in buffer, in bytes */ unsigned buffer_size; /**< how much data can be read in shader */ const void *user_buffer; /**< pointer to a user buffer if buffer == NULL */ }; /** * An untyped shader buffer supporting loads, stores, and atomics. */ struct pipe_shader_buffer { struct pipe_resource *buffer; /**< the actual buffer */ unsigned buffer_offset; /**< offset to start of data in buffer, in bytes */ unsigned buffer_size; /**< how much data can be read in shader */ }; /** * A stream output target. The structure specifies the range vertices can * be written to. * * In addition to that, the structure should internally maintain the offset * into the buffer, which should be incremented everytime something is written * (appended) to it. The internal offset is buffer_offset + how many bytes * have been written. The internal offset can be stored on the device * and the CPU actually doesn't have to query it. * * Note that the buffer_size variable is actually specifying the available * space in the buffer, not the size of the attached buffer. * In other words in majority of cases buffer_size would simply be * 'buffer->width0 - buffer_offset', so buffer_size refers to the size * of the buffer left, after accounting for buffer offset, for stream output * to write to. * * Use PIPE_QUERY_SO_STATISTICS to know how many primitives have * actually been written. */ struct pipe_stream_output_target { struct pipe_reference reference; struct pipe_resource *buffer; /**< the output buffer */ struct pipe_context *context; /**< context this SO target belongs to */ unsigned buffer_offset; /**< offset where data should be written, in bytes */ unsigned buffer_size; /**< how much data is allowed to be written */ }; /** * Information to describe a vertex attribute (position, color, etc) */ struct pipe_vertex_element { /** Offset of this attribute, in bytes, from the start of the vertex */ uint16_t src_offset; /** Which vertex_buffer (as given to pipe->set_vertex_buffer()) does * this attribute live in? */ uint8_t vertex_buffer_index:7; /** * Whether this element refers to a dual-slot vertex shader input. * The purpose of this field is to do dual-slot lowering when the CSO is * created instead of during every state change. * * It's lowered by util_lower_uint64_vertex_elements. */ bool dual_slot:1; /** * This has only 8 bits because all vertex formats should be <= 255. */ uint8_t src_format; /* low 8 bits of enum pipe_format. */ /**< stride to same attrib in next vertex, in bytes */ uint32_t src_stride; /* technically only uint16_t, expanded for struct padding */ /** Instance data rate divisor. 0 means this is per-vertex data, * n means per-instance data used for n consecutive instances (n > 0). */ unsigned instance_divisor; }; /** * Opaque refcounted constant state object encapsulating a vertex buffer, * index buffer, and vertex elements. Used by display lists to bind those * states and pass buffer references quickly. * * The state contains 1 index buffer, 0 or 1 vertex buffer, and 0 or more * vertex elements. * * Constraints on the buffers to get the fastest codepath: * - All buffer contents are considered immutable and read-only after * initialization. This implies the following things. * - No place is required to track whether these buffers are busy. * - All CPU mappings of these buffers can be forced to UNSYNCHRONIZED by * both drivers and common code unconditionally. * - Buffer invalidation can be skipped by both drivers and common code * unconditionally. */ struct pipe_vertex_state { struct pipe_reference reference; struct pipe_screen *screen; /* The following structure is used as a key for util_vertex_state_cache * to deduplicate identical state objects and thus enable more * opportunities for draw merging. */ struct { struct pipe_resource *indexbuf; struct pipe_vertex_buffer vbuffer; unsigned num_elements; struct pipe_vertex_element elements[PIPE_MAX_ATTRIBS]; uint32_t full_velem_mask; } input; }; struct pipe_draw_indirect_info { unsigned offset; /**< must be 4 byte aligned */ unsigned stride; /**< must be 4 byte aligned */ unsigned draw_count; /**< number of indirect draws */ unsigned indirect_draw_count_offset; /**< must be 4 byte aligned */ /* Indirect draw parameters resource is laid out as follows: * * if using indexed drawing: * struct { * uint32_t count; * uint32_t instance_count; * uint32_t start; * int32_t index_bias; * uint32_t start_instance; * }; * otherwise: * struct { * uint32_t count; * uint32_t instance_count; * uint32_t start; * uint32_t start_instance; * }; * * If NULL, count_from_stream_output != NULL. */ struct pipe_resource *buffer; /* Indirect draw count resource: If not NULL, contains a 32-bit value which * is to be used as the real draw_count. */ struct pipe_resource *indirect_draw_count; /** * Stream output target. If not NULL, it's used to provide the 'count' * parameter based on the number vertices captured by the stream output * stage. (or generally, based on the number of bytes captured) * * Only 'mode', 'start_instance', and 'instance_count' are taken into * account, all the other variables from pipe_draw_info are ignored. * * 'start' is implicitly 0 and 'count' is set as discussed above. * The draw command is non-indexed. * * Note that this only provides the count. The vertex buffers must * be set via set_vertex_buffers manually. */ struct pipe_stream_output_target *count_from_stream_output; }; struct pipe_draw_start_count_bias { unsigned start; unsigned count; int index_bias; /**< a bias to be added to each index */ }; /** * Draw vertex state description. It's translated to pipe_draw_info as follows: * - mode comes from this structure * - index_size is 4 * - instance_count is 1 * - index.resource comes from pipe_vertex_state * - everything else is 0 */ struct pipe_draw_vertex_state_info { #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 838 "../mesa/src/gallium/include/pipe/p_state.h" /* sizeof(mode) == 1 because it's a packed enum. */ enum mesa_prim mode; /**< the mode of the primitive */ #else # 841 "../mesa/src/gallium/include/pipe/p_state.h" /* sizeof(mode) == 1 is required by draw merging in u_threaded_context. */ uint8_t mode; /**< the mode of the primitive */ #endif # 844 "../mesa/src/gallium/include/pipe/p_state.h" bool take_vertex_state_ownership; /**< for skipping reference counting */ }; /** * Information to describe a draw_vbo call. */ struct pipe_draw_info { #if 0 /* disabled by -frewrite-includes */ #if defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 853 "../mesa/src/gallium/include/pipe/p_state.h" /* sizeof(mode) == 1 because it's a packed enum. */ enum mesa_prim mode; /**< the mode of the primitive */ #else # 856 "../mesa/src/gallium/include/pipe/p_state.h" /* sizeof(mode) == 1 is required by draw merging in u_threaded_context. */ uint8_t mode; /**< the mode of the primitive */ #endif # 859 "../mesa/src/gallium/include/pipe/p_state.h" uint16_t index_size; /**< if 0, the draw is not indexed. */ bool primitive_restart:1; bool has_user_indices:1; /**< if true, use index.user_buffer */ bool index_bounds_valid:1; /**< whether min_index and max_index are valid; they're always invalid if index_size == 0 */ bool increment_draw_id:1; /**< whether drawid increments for direct draws */ bool take_index_buffer_ownership:1; /**< callee inherits caller's refcount (no need to reference indexbuf, but still needs to unreference it) */ bool index_bias_varies:1; /**< true if index_bias varies between draws */ bool was_line_loop:1; /**< true if mesa_prim was LINE_LOOP before translation */ uint8_t _pad:1; unsigned start_instance; /**< first instance id */ unsigned instance_count; /**< number of instances */ /** * Primitive restart enable/index (only applies to indexed drawing) */ unsigned restart_index; /* Pointers must be placed appropriately for optimal structure packing on * 64-bit CPUs. */ /** * An index buffer. When an index buffer is bound, all indices to vertices * will be looked up from the buffer. * * If has_user_indices, use index.user, else use index.resource. */ union { struct pipe_resource *resource; /**< real buffer */ const void *user; /**< pointer to a user buffer */ } index; /* These must be last for better packing in u_threaded_context. */ unsigned min_index; /**< the min index */ unsigned max_index; /**< the max index */ }; /** * Information to describe a blit call. */ struct pipe_blit_info { struct { struct pipe_resource *resource; unsigned level; struct pipe_box box; /**< negative width, height only legal for src */ /* For pipe_surface-like format casting: */ enum pipe_format format; /**< must be supported for sampling (src) or rendering (dst), ZS is always supported */ } dst, src; unsigned mask; /**< bitmask of PIPE_MASK_R/G/B/A/Z/S */ unsigned filter; /**< PIPE_TEX_FILTER_* */ uint8_t dst_sample; /**< if non-zero, set sample_mask to (1 << (dst_sample - 1)) */ bool sample0_only; bool scissor_enable; struct pipe_scissor_state scissor; /* Swizzling during a blit typically forces a slower path, so it should be used only when necessary. It's there mainly to support blitting between different formats when one of them has been emulated (e.g. GL_ALPHA emulated by GL_RGBA) */ bool swizzle_enable; /**< swizzle is only applied if this is set */ uint8_t swizzle[4]; /**< map to be applied while blitting */ /* Window rectangles can either be inclusive or exclusive. */ bool window_rectangle_include; unsigned num_window_rectangles; struct pipe_scissor_state window_rectangles[PIPE_MAX_WINDOW_RECTANGLES]; bool render_condition_enable; /**< whether the blit should honor the current render condition */ bool alpha_blend; /* dst.rgb = src.rgb * src.a + dst.rgb * (1 - src.a) */ }; /** * Information to describe a launch_grid call. */ struct pipe_grid_info { /** * For drivers that use PIPE_SHADER_IR_NATIVE as their prefered IR, this * value will be the index of the kernel in the opencl.kernels metadata * list. */ uint32_t pc; /** * Will be used to initialize the INPUT resource, and it should point to a * buffer of at least pipe_compute_state::req_input_mem bytes. */ const void *input; /** * Variable shared memory used by this invocation. * * This comes on top of shader declared shared memory. */ uint32_t variable_shared_mem; /** * Grid number of dimensions, 1-3, e.g. the work_dim parameter passed to * clEnqueueNDRangeKernel. Note block[] and grid[] must be padded with * 1 for non-used dimensions. */ uint work_dim; /** * Determine the layout of the working block (in thread units) to be used. */ uint block[3]; /** * last_block allows disabling threads at the farthermost grid boundary. * Full blocks as specified by "block" are launched, but the threads * outside of "last_block" dimensions are disabled. * * If a block touches the grid boundary in the i-th axis, threads with * THREAD_ID[i] >= last_block[i] are disabled. * * If last_block[i] is 0, it has the same behavior as last_block[i] = block[i], * meaning no effect. * * It's equivalent to doing this at the beginning of the compute shader: * * for (i = 0; i < 3; i++) { * if (block_id[i] == grid[i] - 1 && * last_block[i] && thread_id[i] >= last_block[i]) * return; * } */ uint last_block[3]; /** * Determine the layout of the grid (in block units) to be used. */ uint grid[3]; /** * Base offsets to launch grids from */ uint grid_base[3]; /* Indirect compute parameters resource: If not NULL, block sizes are taken * from this buffer instead, which is laid out as follows: * * struct { * uint32_t num_blocks_x; * uint32_t num_blocks_y; * uint32_t num_blocks_z; * }; */ struct pipe_resource *indirect; unsigned indirect_offset; /**< must be 4 byte aligned */ unsigned indirect_stride; /* draw related members are for task/mesh shaders */ unsigned draw_count; unsigned indirect_draw_count_offset; struct pipe_resource *indirect_draw_count; }; /** * Encapsulates all info about a tensor. Only types supported are INT8 and UINT8. */ struct pipe_tensor { /** * Memory-backing for this tensor (use pipe_buffer_*). */ struct pipe_resource *resource; /** * Index of this tensor in the subgraph that contains it. */ unsigned index; /** * Dimensions of this tensor. */ unsigned dims[4]; /** * Scale used to quantize this tensor. Only per-tensor quantization is supported. */ float scale; /** * Zero-point used to quantize this tensor. */ int zero_point; /** * Whether the tensor contains data in INT8 or UINT8 format. */ bool is_signed; }; /** * Type of a pipe_ml_operation. */ enum pipe_ml_operation_type { PIPE_ML_OPERATION_TYPE_ADD, PIPE_ML_OPERATION_TYPE_CONVOLUTION, PIPE_ML_OPERATION_TYPE_POOLING, PIPE_ML_OPERATION_TYPE_CONCATENATION, PIPE_ML_OPERATION_TYPE_SPLIT, PIPE_ML_OPERATION_TYPE_PAD, PIPE_ML_OPERATION_TYPE_FULLY_CONNECTED, }; /** * Information about a single operation inside a ML subgraph. */ struct pipe_ml_operation { /** * Type of operation. */ enum pipe_ml_operation_type type; /** * Tensor used as input. */ struct pipe_tensor **input_tensors; unsigned input_count; /** * Tensor used as output. */ struct pipe_tensor **output_tensors; unsigned output_count; union { struct { /** * For convolutions, tensor containing the weights. */ struct pipe_tensor *weight_tensor; /** * For convolutions, tensor containing the biases. */ struct pipe_tensor *bias_tensor; /** * Stride used to access the input tensor on the x axis. */ unsigned stride_x; /** * Stride used to access the input tensor on the x axis. */ unsigned stride_y; /** * Whether to use padding of type same when accessing the input tensor. */ bool padding_same; /** * Whether this is a pointwise (1x1 kernels) convolution. */ bool pointwise; /** * Whether this is a depthwise convolution. */ bool depthwise; /** * Whether this convolution has fused ReLU activation. */ bool relu; } conv; struct { /** * Stride used to access the input tensor on the x axis. */ unsigned stride_x; /** * Stride used to access the input tensor on the x axis. */ unsigned stride_y; /** * Width of the area used for pooling. */ unsigned filter_width; /** * Height of the area used for pooling. */ unsigned filter_height; /** * Whether to use padding of type same when accessing the input tensor. */ bool padding_same; } pooling; struct { /** * Left padding. */ unsigned before_x; /** * Right padding. */ unsigned after_x; /** * Top padding. */ unsigned before_y; /** * Bottom padding. */ unsigned after_y; } pad; struct { /** * Tensor containing the weights. */ struct pipe_tensor *weight_tensor; /** * Tensor containing the biases. */ struct pipe_tensor *bias_tensor; /** * Whether a ReLU activation should be applied to the output. */ bool relu; } fcon; }; }; /** * Subgraph that drivers can subclass to keep the output of the subgraph * compilation process. */ struct pipe_ml_subgraph { /** * pipe_context that owns this subgraph. */ struct pipe_context *context; }; /** * Structure used as a header for serialized compute programs. */ struct pipe_binary_program_header { uint32_t num_bytes; /**< Number of bytes in the LLVM bytecode program. */ char blob[]; }; struct pipe_compute_state { enum pipe_shader_ir ir_type; /**< IR type contained in prog. */ const void *prog; /**< Compute program to be executed. */ unsigned static_shared_mem; /**< equal to info.shared_size, used for shaders passed as TGSI */ unsigned req_input_mem; /**< Required size of the INPUT resource. */ }; struct pipe_compute_state_object_info { /** * Max number of threads per block supported for the given cso. */ unsigned max_threads; /** * Which multiple should the block size be of for best performance. * * E.g. for 8 a block with n * 8 threads would result in optimal utilization * of the hardware. */ unsigned preferred_simd_size; /** * Bitmask of supported SIMD sizes. */ unsigned simd_sizes; /** * How much private memory does this CSO require per thread (a.k.a. NIR scratch memory). */ unsigned private_memory; }; /** * Structure that contains a callback for device reset messages from the driver * back to the gallium frontend. * * The callback must not be called from driver-created threads. */ struct pipe_device_reset_callback { /** * Callback for the driver to report when a device reset is detected. * * \param data user-supplied data pointer * \param status PIPE_*_RESET */ void (*reset)(void *data, enum pipe_reset_status status); void *data; }; /** * Information about memory usage. All sizes are in kilobytes. */ struct pipe_memory_info { unsigned total_device_memory; /**< size of device memory, e.g. VRAM */ unsigned avail_device_memory; /**< free device memory at the moment */ unsigned total_staging_memory; /**< size of staging memory, e.g. GART */ unsigned avail_staging_memory; /**< free staging memory at the moment */ unsigned device_memory_evicted; /**< size of memory evicted (monotonic counter) */ unsigned nr_device_memory_evictions; /**< # of evictions (monotonic counter) */ }; /** * Structure that contains information about external memory */ struct pipe_memory_object { bool dedicated; }; #ifdef __cplusplus } #endif # 1295 "../mesa/src/gallium/include/pipe/p_state.h" #endif # 1297 "../mesa/src/gallium/include/pipe/p_state.h" #endif /* p_state.h expanded by -frewrite-includes */ # 44 "../mesa/src/mesa/main/shader_types.h" 2 /** * Used by GL_ARB_explicit_uniform_location extension code in the linker * and glUniform* functions to identify inactive explicit uniform locations. */ #define INACTIVE_UNIFORM_EXPLICIT_LOCATION ((struct gl_uniform_storage *) -1) struct nir_shader; /** * Shader information needed by both gl_shader and gl_linked shader. */ struct gl_shader_info { /** * Tessellation Control shader state from layout qualifiers. */ struct { /** * 0 - vertices not declared in shader, or * 1 .. GL_MAX_PATCH_VERTICES */ GLint VerticesOut; } TessCtrl; /** * Tessellation Evaluation shader state from layout qualifiers. */ struct { enum tess_primitive_mode _PrimitiveMode; enum gl_tess_spacing Spacing; /** * GL_CW, GL_CCW, or 0 if it's not set in this shader. */ GLenum16 VertexOrder; /** * 1, 0, or -1 if it's not set in this shader. */ int PointMode; } TessEval; /** * Geometry shader state from GLSL 1.50 layout qualifiers. */ struct { GLint VerticesOut; /** * 0 - Invocations count not declared in shader, or * 1 .. Const.MaxGeometryShaderInvocations */ GLint Invocations; /** * GL_POINTS, GL_LINES, GL_LINES_ADJACENCY, GL_TRIANGLES, or * GL_TRIANGLES_ADJACENCY, or PRIM_UNKNOWN if it's not set in this * shader. */ enum mesa_prim InputType; /** * GL_POINTS, GL_LINE_STRIP or GL_TRIANGLE_STRIP, or PRIM_UNKNOWN if * it's not set in this shader. */ enum mesa_prim OutputType; } Geom; /** * Compute shader state from ARB_compute_shader and * ARB_compute_variable_group_size layout qualifiers. */ struct { /** * Size specified using local_size_{x,y,z}, or all 0's to indicate that * it's not set in this shader. */ unsigned LocalSize[3]; /** * Whether a variable work group size has been specified as defined by * ARB_compute_variable_group_size. */ bool LocalSizeVariable; /* * Arrangement of invocations used to calculate derivatives in a compute * shader. From NV_compute_shader_derivatives. */ enum gl_derivative_group DerivativeGroup; } Comp; }; /** * Compile status enum. COMPILE_SKIPPED is used to indicate the compile * was skipped due to the shader matching one that's been seen before by * the on-disk cache. */ enum gl_compile_status { COMPILE_FAILURE = 0, COMPILE_SUCCESS, COMPILE_SKIPPED }; /** * A GLSL shader object. */ struct gl_shader { /** GL_FRAGMENT_SHADER || GL_VERTEX_SHADER || GL_GEOMETRY_SHADER_ARB || * GL_TESS_CONTROL_SHADER || GL_TESS_EVALUATION_SHADER. * Must be the first field. */ GLenum16 Type; gl_shader_stage Stage; GLuint Name; /**< AKA the handle */ GLint RefCount; /**< Reference count */ GLchar *Label; /**< GL_KHR_debug */ GLboolean DeletePending; bool IsES; /**< True if this shader uses GLSL ES */ bool has_implicit_conversions; bool has_implicit_int_to_uint_conversion; enum gl_compile_status CompileStatus; /** SHA1 of the pre-processed source used by the disk cache. */ uint8_t disk_cache_sha1[SHA1_DIGEST_LENGTH]; /** BLAKE3 of the original source before replacement, set by glShaderSource. */ blake3_hash source_blake3; /** BLAKE3 of FallbackSource (a copy of some original source before replacement). */ blake3_hash fallback_source_blake3; /** BLAKE3 of the current compiled source, set by successful glCompileShader. */ blake3_hash compiled_source_blake3; const GLchar *Source; /**< Source code string */ const GLchar *FallbackSource; /**< Fallback string used by on-disk cache*/ GLchar *InfoLog; unsigned Version; /**< GLSL version used for linking */ /** * A bitmask of gl_advanced_blend_mode values */ GLbitfield BlendSupport; struct nir_shader *nir; struct exec_list *ir; /** * Whether early fragment tests are enabled as defined by * ARB_shader_image_load_store. */ bool EarlyFragmentTests; bool ARB_fragment_coord_conventions_enable; bool KHR_shader_subgroup_basic_enable; bool redeclares_gl_fragcoord; bool uses_gl_fragcoord; bool PostDepthCoverage; bool PixelInterlockOrdered; bool PixelInterlockUnordered; bool SampleInterlockOrdered; bool SampleInterlockUnordered; bool InnerCoverage; /** * Fragment shader state from GLSL 1.50 layout qualifiers. */ bool origin_upper_left; bool pixel_center_integer; /** * Whether bindless_sampler/bindless_image, and respectively * bound_sampler/bound_image are declared at global scope as defined by * ARB_bindless_texture. */ bool bindless_sampler; bool bindless_image; bool bound_sampler; bool bound_image; /** * Whether layer output is viewport-relative. */ bool redeclares_gl_layer; bool layer_viewport_relative; /** Global xfb_stride out qualifier if any */ GLuint TransformFeedbackBufferStride[MAX_FEEDBACK_BUFFERS]; /* for OVR_multiview */ uint32_t view_mask; struct gl_shader_info info; /* ARB_gl_spirv related data */ struct gl_shader_spirv_data *spirv_data; }; /** * A linked GLSL shader object. */ struct gl_linked_shader { gl_shader_stage Stage; struct gl_program *Program; /**< Post-compile assembly code */ /** * \name Sampler tracking * * \note Each of these fields is only set post-linking. */ /*@{*/ GLbitfield shadow_samplers; /**< Samplers used for shadow sampling. */ /*@}*/ /** * Number of default uniform block components used by this shader. * * This field is only set post-linking. */ unsigned num_uniform_components; /** * Number of combined uniform components used by this shader. * * This field is only set post-linking. It is the sum of the uniform block * sizes divided by sizeof(float), and num_uniform_compoennts. */ unsigned num_combined_uniform_components; /** * ARB_gl_spirv related data. * * This is actually a reference to the gl_shader::spirv_data, which * stores information that is also needed during linking. */ struct gl_shader_spirv_data *spirv_data; }; /** * Link status enum. LINKING_SKIPPED is used to indicate linking * was skipped due to the shader being loaded from the on-disk cache. */ enum gl_link_status { LINKING_FAILURE = 0, LINKING_SUCCESS, LINKING_SKIPPED }; /* All GLSL program resource types are next to each other, so we can use that * to make them 0-based like this: */ #define GET_PROGRAM_RESOURCE_TYPE_FROM_GLENUM(x) ((x) - GL_UNIFORM) #define NUM_PROGRAM_RESOURCE_TYPES (GL_TRANSFORM_FEEDBACK_VARYING - GL_UNIFORM + 1) /** * A data structure to be shared by gl_shader_program and gl_program. */ struct gl_shader_program_data { GLint RefCount; /**< Reference count */ /** SHA1 hash of linked shader program */ unsigned char sha1[20]; unsigned NumUniformStorage; unsigned NumHiddenUniforms; struct gl_uniform_storage *UniformStorage; unsigned NumUniformBlocks; unsigned NumShaderStorageBlocks; struct gl_uniform_block *UniformBlocks; struct gl_uniform_block *ShaderStorageBlocks; struct gl_active_atomic_buffer *AtomicBuffers; unsigned NumAtomicBuffers; /* Shader cache variables used during restore */ unsigned NumUniformDataSlots; union gl_constant_value *UniformDataSlots; /* Used to hold initial uniform values for program binary restores. * * From the ARB_get_program_binary spec: * * "A successful call to ProgramBinary will reset all uniform * variables to their initial values. The initial value is either * the value of the variable's initializer as specified in the * original shader source, or 0 if no initializer was present. */ union gl_constant_value *UniformDataDefaults; /** Hash for quick search by name. */ struct hash_table *ProgramResourceHash[NUM_PROGRAM_RESOURCE_TYPES]; GLboolean Validated; /** List of all active resources after linking. */ struct gl_program_resource *ProgramResourceList; unsigned NumProgramResourceList; enum gl_link_status LinkStatus; /**< GL_LINK_STATUS */ GLchar *InfoLog; /* Mask of stages this program was linked against */ unsigned linked_stages; /* Whether the shaders of this program are loaded from SPIR-V binaries * (all have the SPIR_V_BINARY_ARB state). This was introduced by the * ARB_gl_spirv extension. */ bool spirv; }; /** * A GLSL program object. * Basically a linked collection of vertex and fragment shaders. */ struct gl_shader_program { GLenum16 Type; /**< Always GL_SHADER_PROGRAM (internal token) */ GLuint Name; /**< aka handle or ID */ GLchar *Label; /**< GL_KHR_debug */ GLint RefCount; /**< Reference count */ GLboolean DeletePending; /** * Is the application intending to glGetProgramBinary this program? * * BinaryRetrievableHint is the currently active hint that gets set * during initialization and after linking and BinaryRetrievableHintPending * is the hint set by the user to be active when program is linked next time. */ GLboolean BinaryRetrievableHint; GLboolean BinaryRetrievableHintPending; /** * Indicates whether program can be bound for individual pipeline stages * using UseProgramStages after it is next linked. */ GLboolean SeparateShader; GLuint NumShaders; /**< number of attached shaders */ struct gl_shader **Shaders; /**< List of attached the shaders */ /** * User-defined attribute bindings * * These are set via \c glBindAttribLocation and are used to direct the * GLSL linker. These are \b not the values used in the compiled shader, * and they are \b not the values returned by \c glGetAttribLocation. */ struct string_to_uint_map *AttributeBindings; /** * User-defined fragment data bindings * * These are set via \c glBindFragDataLocation and are used to direct the * GLSL linker. These are \b not the values used in the compiled shader, * and they are \b not the values returned by \c glGetFragDataLocation. */ struct string_to_uint_map *FragDataBindings; struct string_to_uint_map *FragDataIndexBindings; /** * Transform feedback varyings last specified by * glTransformFeedbackVaryings(). * * For the current set of transform feedback varyings used for transform * feedback output, see LinkedTransformFeedback. */ struct { GLenum16 BufferMode; /** Global xfb_stride out qualifier if any */ GLuint BufferStride[MAX_FEEDBACK_BUFFERS]; GLuint NumVarying; GLchar **VaryingNames; /**< Array [NumVarying] of char * */ } TransformFeedback; struct gl_program *last_vert_prog; /** Data shared by gl_program and gl_shader_program */ struct gl_shader_program_data *data; /** * Mapping from GL uniform locations returned by \c glUniformLocation to * UniformStorage entries. Arrays will have multiple contiguous slots * in the UniformRemapTable, all pointing to the same UniformStorage entry. */ unsigned NumUniformRemapTable; struct gl_uniform_storage **UniformRemapTable; /** * Sometimes there are empty slots left over in UniformRemapTable after we * allocate slots to explicit locations. This list stores the blocks of * continuous empty slots inside UniformRemapTable. */ struct exec_list EmptyUniformLocations; /** * Total number of explicit uniform location including inactive uniforms. */ unsigned NumExplicitUniformLocations; GLboolean SamplersValidated; /**< Samplers validated against texture units? */ bool IsES; /**< True if this program uses GLSL ES */ /** * Per-stage shaders resulting from the first stage of linking. * * Set of linked shaders for this program. The array is accessed using the * \c MESA_SHADER_* defines. Entries for non-existent stages will be * \c NULL. */ struct gl_linked_shader *_LinkedShaders[MESA_SHADER_STAGES]; unsigned GLSL_Version; /**< GLSL version used for linking */ }; /** * Base class for any kind of program object */ struct gl_program { /** FIXME: This must be first until we split shader_info from nir_shader */ struct shader_info info; GLuint Id; GLint RefCount; GLubyte *String; /**< Null-terminated program text */ /** GL_VERTEX/FRAGMENT_PROGRAM_ARB, GL_GEOMETRY_PROGRAM_NV */ GLenum16 Target; GLenum16 Format; /**< String encoding format */ GLboolean _Used; /**< Ever used for drawing? Used for debugging */ struct nir_shader *nir; void *base_serialized_nir; size_t base_serialized_nir_size; /* Saved and restored with metadata. Freed with ralloc. */ void *driver_cache_blob; size_t driver_cache_blob_size; /** whether to skip VARYING_SLOT_PSIZ in st_translate_stream_output_info() */ bool skip_pointsize_xfb; /** A bitfield indicating which vertex shader inputs consume two slots * * This is used for mapping from single-slot input locations in the GL API * to dual-slot double input locations in the shader. This field is set * once as part of linking and never updated again to ensure the mapping * remains consistent. * * Note: There may be dual-slot variables in the original shader source * which do not appear in this bitfield due to having been eliminated by * the compiler prior to DualSlotInputs being calculated. There may also * be bits set in this bitfield which are set but which the shader never * reads due to compiler optimizations eliminating such variables after * DualSlotInputs is calculated. */ GLbitfield64 DualSlotInputs; /** Subset of OutputsWritten outputs written with non-zero index. */ GLbitfield64 SecondaryOutputsWritten; /** TEXTURE_x_BIT bitmask */ GLbitfield16 TexturesUsed[MAX_COMBINED_TEXTURE_IMAGE_UNITS]; /** Bitfield of which samplers are used */ GLbitfield SamplersUsed; /** Texture units used for shadow sampling. */ GLbitfield ShadowSamplers; /** Texture units used for samplerExternalOES */ GLbitfield ExternalSamplersUsed; /** Named parameters, constants, etc. from program text */ struct gl_program_parameter_list *Parameters; /** Map from sampler unit to texture unit (set by glUniform1i()) */ GLubyte SamplerUnits[MAX_SAMPLERS]; struct pipe_shader_state state; struct ati_fragment_shader *ati_fs; uint64_t affected_states; /**< ST_NEW_* flags to mark dirty when binding */ void *serialized_nir; unsigned serialized_nir_size; struct gl_shader_program *shader_program; struct st_variant *variants; union { /** Fields used by GLSL programs */ struct { /** Data shared by gl_program and gl_shader_program */ struct gl_shader_program_data *data; struct gl_active_atomic_buffer **AtomicBuffers; /** Post-link transform feedback info. */ struct gl_transform_feedback_info *LinkedTransformFeedback; /** * Number of types for subroutine uniforms. */ GLuint NumSubroutineUniformTypes; /** * Subroutine uniform remap table * based on the program level uniform remap table. */ GLuint NumSubroutineUniforms; /* non-sparse total */ GLuint NumSubroutineUniformRemapTable; struct gl_uniform_storage **SubroutineUniformRemapTable; /** * Num of subroutine functions for this stage and storage for them. */ GLuint NumSubroutineFunctions; GLuint MaxSubroutineFunctionIndex; struct gl_subroutine_function *SubroutineFunctions; /** * Map from image uniform index to image unit (set by glUniform1i()) * * An image uniform index is associated with each image uniform by * the linker. The image index associated with each uniform is * stored in the \c gl_uniform_storage::image field. */ GLubyte ImageUnits[MAX_IMAGE_UNIFORMS]; /** Access qualifier from linked shader */ enum gl_access_qualifier image_access[MAX_IMAGE_UNIFORMS]; GLuint NumUniformBlocks; struct gl_uniform_block **UniformBlocks; struct gl_uniform_block **ShaderStorageBlocks; /** * Bitmask of shader storage blocks not declared as read-only. */ unsigned ShaderStorageBlocksWriteAccess; /** Which texture target is being sampled * (TEXTURE_1D/2D/3D/etc_INDEX) */ GLubyte SamplerTargets[MAX_SAMPLERS]; /** * Number of samplers declared with the bindless_sampler layout * qualifier as specified by ARB_bindless_texture. */ GLuint NumBindlessSamplers; GLboolean HasBoundBindlessSampler; struct gl_bindless_sampler *BindlessSamplers; /** * Number of images declared with the bindless_image layout qualifier * as specified by ARB_bindless_texture. */ GLuint NumBindlessImages; GLboolean HasBoundBindlessImage; struct gl_bindless_image *BindlessImages; } sh; /** ARB assembly-style program fields */ struct { struct prog_instruction *Instructions; /** * Local parameters used by the program. * * It's dynamically allocated because it is rarely used (just * assembly-style programs), and MAX_PROGRAM_LOCAL_PARAMS entries * once it's allocated. */ GLfloat (*LocalParams)[4]; unsigned MaxLocalParams; /** Bitmask of which register files are read/written with indirect * addressing. Mask of (1 << PROGRAM_x) bits. */ GLbitfield IndirectRegisterFiles; /** Logical counts */ /*@{*/ GLuint NumInstructions; GLuint NumTemporaries; GLuint NumParameters; GLuint NumAttributes; GLuint NumAddressRegs; GLuint NumAluInstructions; GLuint NumTexInstructions; GLuint NumTexIndirections; /*@}*/ /** Used by ARB assembly-style programs. Can only be true for vertex * programs. */ GLboolean IsPositionInvariant; /** Used by ARB_fp programs, enum gl_fog_mode */ unsigned Fog; } arb; }; }; /* * State/IR translators needs to store some extra vp info. */ struct gl_vertex_program { struct gl_program Base; uint32_t vert_attrib_mask; /**< mask of sourced vertex attribs */ uint8_t num_inputs; /** Maps VARYING_SLOT_x to slot */ uint8_t result_to_output[VARYING_SLOT_MAX]; }; /** * Structure that represents a reference to an atomic buffer from some * shader program. */ struct gl_active_atomic_buffer { /** Uniform indices of the atomic counters declared within it. */ GLuint *Uniforms; GLuint NumUniforms; /** Binding point index associated with it. */ GLuint Binding; /** Minimum reasonable size it is expected to have. */ GLuint MinimumSize; /** Shader stages making use of it. */ GLboolean StageReferences[MESA_SHADER_STAGES]; }; struct gl_resource_name { char *string; int length; /* strlen(string) or 0 */ int last_square_bracket; /* (strrchr(name, '[') - name) or -1 */ bool suffix_is_zero_square_bracketed; /* suffix is [0] */ }; struct gl_transform_feedback_varying_info { struct gl_resource_name name; GLenum16 Type; GLint BufferIndex; GLint Size; GLint Offset; }; /** * Per-output info vertex shaders for transform feedback. */ struct gl_transform_feedback_output { uint32_t OutputRegister; uint32_t OutputBuffer; uint32_t NumComponents; uint32_t StreamId; /** offset (in DWORDs) of this output within the interleaved structure */ uint32_t DstOffset; /** * Offset into the output register of the data to output. For example, * if NumComponents is 2 and ComponentOffset is 1, then the data to * offset is in the y and z components of the output register. */ uint32_t ComponentOffset; }; enum ENUM_PACKED gl_uniform_driver_format { uniform_native = 0, /**< Store data in the native format. */ uniform_int_float, /**< Store integer data as floats. */ }; struct gl_uniform_driver_storage { /** * Number of bytes from one array element to the next. */ uint8_t element_stride; /** * Number of bytes from one vector in a matrix to the next. */ uint8_t vector_stride; /** * Base format of the stored data. */ enum gl_uniform_driver_format format; /** * Pointer to the base of the data. */ void *data; }; struct gl_opaque_uniform_index { /** * Base opaque uniform index * * If \c gl_uniform_storage::base_type is an opaque type, this * represents its uniform index. If \c * gl_uniform_storage::array_elements is not zero, the array will * use opaque uniform indices \c index through \c index + \c * gl_uniform_storage::array_elements - 1, inclusive. * * Note that the index may be different in each shader stage. */ uint8_t index; /** * Whether this opaque uniform is used in this shader stage. */ bool active; }; struct gl_uniform_storage { struct gl_resource_name name; /** Type of this uniform data stored. * * In the case of an array, it's the type of a single array element. */ const struct glsl_type *type; /** * The number of elements in this uniform. * * For non-arrays, this is always 0. For arrays, the value is the size of * the array. */ unsigned array_elements; struct gl_opaque_uniform_index opaque[MESA_SHADER_STAGES]; /** * Mask of shader stages (1 << MESA_SHADER_xxx) where this uniform is used. */ unsigned active_shader_mask; /** * Storage used by the driver for the uniform */ unsigned num_driver_storage; struct gl_uniform_driver_storage *driver_storage; /** * Storage used by Mesa for the uniform * * This form of the uniform is used by Mesa's implementation of \c * glGetUniform. It can also be used by drivers to obtain the value of the * uniform if the \c ::driver_storage interface is not used. */ union gl_constant_value *storage; /** Fields for GL_ARB_uniform_buffer_object * @{ */ /** * GL_UNIFORM_BLOCK_INDEX: index of the uniform block containing * the uniform, or -1 for the default uniform block. Note that the * index is into the linked program's UniformBlocks[] array, not * the linked shader's. */ int block_index; /** GL_UNIFORM_OFFSET: byte offset within the uniform block, or -1. */ int offset; /** * GL_UNIFORM_MATRIX_STRIDE: byte stride between columns or rows of * a matrix. Set to 0 for non-matrices in UBOs, or -1 for uniforms * in the default uniform block. */ int matrix_stride; /** * GL_UNIFORM_ARRAY_STRIDE: byte stride between elements of the * array. Set to zero for non-arrays in UBOs, or -1 for uniforms * in the default uniform block. */ int array_stride; /** GL_UNIFORM_ROW_MAJOR: true iff it's a row-major matrix in a UBO */ bool row_major; /** @} */ /** * This is a compiler-generated uniform that should not be advertised * via the API. */ bool hidden; /** * This is a built-in uniform that should not be modified through any gl API. */ bool builtin; /** * This is a shader storage buffer variable, not an uniform. */ bool is_shader_storage; /** * Index within gl_shader_program::AtomicBuffers[] of the atomic * counter buffer this uniform is stored in, or -1 if this is not * an atomic counter. */ int atomic_buffer_index; /** * The 'base location' for this uniform in the uniform remap table. For * arrays this is the first element in the array. * for subroutines this is in shader subroutine uniform remap table. */ unsigned remap_location; /** * The number of compatible subroutines with this subroutine uniform. */ unsigned num_compatible_subroutines; /** * A single integer identifying the number of active array elements of * the top-level shader storage block member (GL_TOP_LEVEL_ARRAY_SIZE). */ unsigned top_level_array_size; /** * A single integer identifying the stride between array elements of the * top-level shader storage block member. (GL_TOP_LEVEL_ARRAY_STRIDE). */ unsigned top_level_array_stride; /** * Whether this uniform variable has the bindless_sampler or bindless_image * layout qualifier as specified by ARB_bindless_texture. */ bool is_bindless; }; struct gl_transform_feedback_buffer { uint32_t Binding; uint32_t NumVaryings; /** * Total number of components stored in each buffer. This may be used by * hardware back-ends to determine the correct stride when interleaving * multiple transform feedback outputs in the same buffer. */ uint32_t Stride; /** * Which transform feedback stream this buffer binding is associated with. */ uint32_t Stream; }; /** Post-link transform feedback info. */ struct gl_transform_feedback_info { unsigned NumOutputs; /* Bitmask of active buffer indices. */ unsigned ActiveBuffers; struct gl_transform_feedback_output *Outputs; /** Transform feedback varyings used for the linking of this shader program. * * Use for glGetTransformFeedbackVarying(). */ struct gl_transform_feedback_varying_info *Varyings; GLint NumVarying; struct gl_transform_feedback_buffer Buffers[MAX_FEEDBACK_BUFFERS]; }; /** * Shader subroutine function definition */ struct gl_subroutine_function { struct gl_resource_name name; int index; int num_compat_types; const struct glsl_type **types; }; /** * Active resource in a gl_shader_program */ struct gl_program_resource { GLenum16 Type; /** Program interface type. */ const void *Data; /** Pointer to resource associated data structure. */ uint8_t StageReferences; /** Bitmask of shader stage references. */ }; struct gl_uniform_buffer_variable { char *Name; /** * Name of the uniform as seen by glGetUniformIndices. * * glGetUniformIndices requires that the block instance index \b not be * present in the name of queried uniforms. * * \note * \c gl_uniform_buffer_variable::IndexName and * \c gl_uniform_buffer_variable::Name may point to identical storage. */ char *IndexName; const struct glsl_type *Type; unsigned int Offset; GLboolean RowMajor; }; struct gl_uniform_block { /** Declared name of the uniform block */ struct gl_resource_name name; /** Array of supplemental information about UBO ir_variables. */ struct gl_uniform_buffer_variable *Uniforms; GLuint NumUniforms; /** * Index (GL_UNIFORM_BLOCK_BINDING) into ctx->UniformBufferBindings[] to use * with glBindBufferBase to bind a buffer object to this uniform block. */ GLuint Binding; /** * Minimum size (in bytes) of a buffer object to back this uniform buffer * (GL_UNIFORM_BLOCK_DATA_SIZE). */ GLuint UniformBufferSize; /** Stages that reference this block */ uint8_t stageref; /** * Linearized array index for uniform block instance arrays * * Given a uniform block instance array declared with size * blk[s_0][s_1]..[s_m], the block referenced by blk[i_0][i_1]..[i_m] will * have the linearized array index * * m-1 m * i_m + ∑ i_j * ∏ s_k * j=0 k=j+1 * * For a uniform block instance that is not an array, this is always 0. */ uint8_t linearized_array_index; /** * Layout specified in the shader * * This isn't accessible through the API, but it is used while * cross-validating uniform blocks. */ enum glsl_interface_packing _Packing; GLboolean _RowMajor; }; /** * A bindless sampler object. */ struct gl_bindless_sampler { /** Texture unit (set by glUniform1()). */ GLubyte unit; /** Whether this bindless sampler is bound to a unit. */ GLboolean bound; /** Texture Target (TEXTURE_1D/2D/3D/etc_INDEX). */ gl_texture_index target; /** Pointer to the base of the data. */ GLvoid *data; }; /** * A bindless image object. */ struct gl_bindless_image { /** Image unit (set by glUniform1()). */ GLubyte unit; /** Whether this bindless image is bound to a unit. */ GLboolean bound; /** Access qualifier from linked shader */ enum gl_access_qualifier image_access; /** Pointer to the base of the data. */ GLvoid *data; }; /** * Data container for shader queries. This holds only the minimal * amount of required information for resource queries to work. */ struct gl_shader_variable { /** * Declared type of the variable */ const struct glsl_type *type; /** * If the variable is in an interface block, this is the type of the block. */ const struct glsl_type *interface_type; /** * For variables inside structs (possibly recursively), this is the * outermost struct type. */ const struct glsl_type *outermost_struct_type; /** * Declared name of the variable */ struct gl_resource_name name; /** * Storage location of the base of this variable * * The precise meaning of this field depends on the nature of the variable. * * - Vertex shader input: one of the values from \c gl_vert_attrib. * - Vertex shader output: one of the values from \c gl_varying_slot. * - Geometry shader input: one of the values from \c gl_varying_slot. * - Geometry shader output: one of the values from \c gl_varying_slot. * - Fragment shader input: one of the values from \c gl_varying_slot. * - Fragment shader output: one of the values from \c gl_frag_result. * - Uniforms: Per-stage uniform slot number for default uniform block. * - Uniforms: Index within the uniform block definition for UBO members. * - Non-UBO Uniforms: explicit location until linking then reused to * store uniform slot number. * - Other: This field is not currently used. * * If the variable is a uniform, shader input, or shader output, and the * slot has not been assigned, the value will be -1. */ int location; /** * Specifies the first component the variable is stored in as per * ARB_enhanced_layouts. */ unsigned component:2; /** * Output index for dual source blending. * * \note * The GLSL spec only allows the values 0 or 1 for the index in \b dual * source blending. */ unsigned index:1; /** * Specifies whether a shader input/output is per-patch in tessellation * shader stages. */ unsigned patch:1; /** * Storage class of the variable. * * \sa (n)ir_variable_mode */ unsigned mode:4; /** * Interpolation mode for shader inputs / outputs * * \sa glsl_interp_mode */ unsigned interpolation:2; /** * Was the location explicitly set in the shader? * * If the location is explicitly set in the shader, it \b cannot be changed * by the linker or by the API (e.g., calls to \c glBindAttribLocation have * no effect). */ unsigned explicit_location:1; /** * Precision qualifier. */ unsigned precision:2; }; #endif # 1177 "../mesa/src/mesa/main/shader_types.h" #endif /* shader_types.h expanded by -frewrite-includes */ # 45 "../mesa/src/mesa/main/mtypes.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* glconfig.h expanded by -frewrite-includes */ #include "main/glconfig.h" #else /* glconfig.h expanded by -frewrite-includes */ # 45 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/main/glconfig.h" 1 #ifndef __GL_CONFIG_H__ #define __GL_CONFIG_H__ #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 4 "../mesa/src/mesa/main/glconfig.h" # 5 "../mesa/src/mesa/main/glconfig.h" #if 0 /* expanded by -frewrite-includes */ #include "util/format/u_format.h" #endif /* expanded by -frewrite-includes */ # 5 "../mesa/src/mesa/main/glconfig.h" # 6 "../mesa/src/mesa/main/glconfig.h" /** * Framebuffer configuration (aka visual / pixelformat) * Note: some of these fields should be boolean, but it appears that * code in drivers/dri/common/util.c requires int-sized fields. */ struct gl_config { /* if color_format is not PIPE_FORMAT_NONE, then all the properties of the * gl_config must match the pipe_formats; if it is PIPE_FORMAT_NONE then * the config properties are the only ones which can be trusted */ enum pipe_format color_format; enum pipe_format zs_format; enum pipe_format accum_format; GLboolean floatMode; GLuint doubleBufferMode; GLuint stereoMode; GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */ GLuint redMask, greenMask, blueMask, alphaMask; GLint redShift, greenShift, blueShift, alphaShift; GLint rgbBits; /* total bits for rgb */ GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits; GLint depthBits; GLint stencilBits; /* ARB_multisample / SGIS_multisample */ GLuint samples; /* EXT_framebuffer_sRGB */ GLint sRGBCapable; }; #endif # 43 "../mesa/src/mesa/main/glconfig.h" #endif /* glconfig.h expanded by -frewrite-includes */ # 46 "../mesa/src/mesa/main/mtypes.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "main/menums.h" #endif /* expanded by -frewrite-includes */ # 46 "../mesa/src/mesa/main/mtypes.h" # 47 "../mesa/src/mesa/main/mtypes.h" #if 0 /* expanded by -frewrite-includes */ #include "main/config.h" #endif /* expanded by -frewrite-includes */ # 47 "../mesa/src/mesa/main/mtypes.h" # 48 "../mesa/src/mesa/main/mtypes.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* glapi.h expanded by -frewrite-includes */ #include "glapi/glapi.h" #else /* glapi.h expanded by -frewrite-includes */ # 48 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mapi/glapi/glapi.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \mainpage Mesa GL API Module * * \section GLAPIIntroduction Introduction * * The Mesa GL API module is responsible for dispatching all the * gl*() functions. All GL functions are dispatched by jumping through * the current dispatch table (basically a struct full of function * pointers.) * * A per-thread current dispatch table and per-thread current context * pointer are managed by this module too. * * This module is intended to be non-Mesa-specific so it can be used * with the X/DRI libGL also. */ #ifndef _GLAPI_H #define _GLAPI_H #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 47 "../mesa/src/mapi/glapi/glapi.h" # 48 "../mesa/src/mapi/glapi/glapi.h" #if 0 /* expanded by -frewrite-includes */ #include "util/u_thread.h" #endif /* expanded by -frewrite-includes */ # 48 "../mesa/src/mapi/glapi/glapi.h" # 49 "../mesa/src/mapi/glapi/glapi.h" #if 0 /* expanded by -frewrite-includes */ #include "util/detect_os.h" #endif /* expanded by -frewrite-includes */ # 49 "../mesa/src/mapi/glapi/glapi.h" # 50 "../mesa/src/mapi/glapi/glapi.h" #ifdef __cplusplus extern "C" { #endif # 55 "../mesa/src/mapi/glapi/glapi.h" #ifdef _GLAPI_NO_EXPORTS # define _GLAPI_EXPORT #else /* _GLAPI_NO_EXPORTS */ # 60 "../mesa/src/mapi/glapi/glapi.h" # ifdef _WIN32 # ifdef _GLAPI_DLL_EXPORTS # define _GLAPI_EXPORT __declspec(dllexport) # else # 64 "../mesa/src/mapi/glapi/glapi.h" # define _GLAPI_EXPORT __declspec(dllimport) # endif # 66 "../mesa/src/mapi/glapi/glapi.h" #if 0 /* disabled by -frewrite-includes */ #if 0 # elif defined(__GNUC__) #endif #endif /* disabled by -frewrite-includes */ #elif 1 /* evaluated by -frewrite-includes */ # 67 "../mesa/src/mapi/glapi/glapi.h" # define _GLAPI_EXPORT __attribute__((visibility("default"))) # else # 69 "../mesa/src/mapi/glapi/glapi.h" # define _GLAPI_EXPORT # endif # 71 "../mesa/src/mapi/glapi/glapi.h" #endif /* _GLAPI_NO_EXPORTS */ # 72 "../mesa/src/mapi/glapi/glapi.h" typedef void (*_glapi_proc)(void); typedef void (*_glapi_nop_handler_proc)(const char *name); struct _glapi_table; #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_WINDOWS #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 81 "../mesa/src/mapi/glapi/glapi.h" extern __THREAD_INITIAL_EXEC struct _glapi_table * _glapi_tls_Dispatch; extern __THREAD_INITIAL_EXEC void * _glapi_tls_Context; #else # 84 "../mesa/src/mapi/glapi/glapi.h" _GLAPI_EXPORT extern __THREAD_INITIAL_EXEC struct _glapi_table * _glapi_tls_Dispatch; _GLAPI_EXPORT extern __THREAD_INITIAL_EXEC void * _glapi_tls_Context; #endif # 87 "../mesa/src/mapi/glapi/glapi.h" _GLAPI_EXPORT extern const struct _glapi_table *_glapi_Dispatch; _GLAPI_EXPORT extern const void *_glapi_Context; #if 0 /* disabled by -frewrite-includes */ #if DETECT_OS_WINDOWS && !defined(MAPI_MODE_UTIL) && !defined(MAPI_MODE_GLAPI) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 92 "../mesa/src/mapi/glapi/glapi.h" # define GET_DISPATCH() _glapi_get_dispatch() # define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_get_context() #else # 95 "../mesa/src/mapi/glapi/glapi.h" # define GET_DISPATCH() _glapi_tls_Dispatch # define GET_CURRENT_CONTEXT(C) struct gl_context *C = (struct gl_context *) _glapi_tls_Context #endif # 98 "../mesa/src/mapi/glapi/glapi.h" _GLAPI_EXPORT void _glapi_destroy_multithread(void); _GLAPI_EXPORT void _glapi_check_multithread(void); _GLAPI_EXPORT void _glapi_set_context(void *context); _GLAPI_EXPORT void * _glapi_get_context(void); _GLAPI_EXPORT void _glapi_set_dispatch(struct _glapi_table *dispatch); _GLAPI_EXPORT struct _glapi_table * _glapi_get_dispatch(void); _GLAPI_EXPORT unsigned int _glapi_get_dispatch_table_size(void); _GLAPI_EXPORT int _glapi_add_dispatch( const char * function_name ); _GLAPI_EXPORT int _glapi_get_proc_offset(const char *funcName); _GLAPI_EXPORT _glapi_proc _glapi_get_proc_address(const char *funcName); _GLAPI_EXPORT const char * _glapi_get_proc_name(unsigned int offset); #if 0 /* disabled by -frewrite-includes */ #if defined(GLX_USE_APPLEGL) || defined(GLX_USE_WINDOWSGL) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 143 "../mesa/src/mapi/glapi/glapi.h" _GLAPI_EXPORT struct _glapi_table * _glapi_create_table_from_handle(void *handle, const char *symbol_prefix); _GLAPI_EXPORT void _glapi_table_patch(struct _glapi_table *, const char *name, void *wrapper); #endif # 149 "../mesa/src/mapi/glapi/glapi.h" _GLAPI_EXPORT void _glapi_set_nop_handler(_glapi_nop_handler_proc func); /** Return pointer to new dispatch table filled with no-op functions */ _GLAPI_EXPORT struct _glapi_table * _glapi_new_nop_table(unsigned num_entries); /** Deprecated function */ _GLAPI_EXPORT unsigned long _glthread_GetID(void); /* * These stubs are kept so that the old DRI drivers still load. */ _GLAPI_EXPORT void _glapi_noop_enable_warnings(unsigned char enable); _GLAPI_EXPORT void _glapi_set_warning_func(_glapi_proc func); #ifdef __cplusplus } #endif # 178 "../mesa/src/mapi/glapi/glapi.h" #endif /* _GLAPI_H */ # 180 "../mesa/src/mapi/glapi/glapi.h" #endif /* glapi.h expanded by -frewrite-includes */ # 49 "../mesa/src/mesa/main/mtypes.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* m_matrix.h expanded by -frewrite-includes */ #include "math/m_matrix.h" /* GLmatrix */ #else /* m_matrix.h expanded by -frewrite-includes */ # 49 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/math/m_matrix.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file math/m_matrix.h * Defines basic structures for matrix-handling. */ #ifndef _M_MATRIX_H #define _M_MATRIX_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/math/m_matrix.h" # 36 "../mesa/src/mesa/math/m_matrix.h" #ifdef __cplusplus extern "C" { #endif # 41 "../mesa/src/mesa/math/m_matrix.h" /** * Different kinds of 4x4 transformation matrices. * We use these to select specific optimized vertex transformation routines. */ enum GLmatrixtype { MATRIX_GENERAL, /**< general 4x4 matrix */ MATRIX_IDENTITY, /**< identity matrix */ MATRIX_3D_NO_ROT, /**< orthogonal projection and others... */ MATRIX_PERSPECTIVE, /**< perspective projection matrix */ MATRIX_2D, /**< 2-D transformation */ MATRIX_2D_NO_ROT, /**< 2-D scale & translate only */ MATRIX_3D /**< 3-D transformation */ } ; /** * Matrix type to represent 4x4 transformation matrices. */ typedef struct { alignas(16) GLfloat m[16]; /**< 16 matrix elements (16-byte aligned) */ alignas(16) GLfloat inv[16]; /**< 16-element inverse (16-byte aligned) */ GLuint flags; /**< possible values determined by (of \link * MatFlags MAT_FLAG_* flags\endlink) */ enum GLmatrixtype type; } GLmatrix; extern void _math_matrix_ctr( GLmatrix *m ); extern void _math_matrix_mul_matrix( GLmatrix *dest, const GLmatrix *a, const GLmatrix *b ); extern void _math_matrix_mul_floats( GLmatrix *dest, const GLfloat *b ); extern void _math_matrix_loadf( GLmatrix *mat, const GLfloat *m ); extern void _math_matrix_translate( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z ); extern void _math_matrix_rotate( GLmatrix *m, GLfloat angle, GLfloat x, GLfloat y, GLfloat z ); extern void _math_matrix_scale( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z ); extern void _math_float_ortho(float *m, float left, float right, float bottom, float top, float nearval, float farval); extern void _math_matrix_ortho( GLmatrix *mat, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat nearval, GLfloat farval ); extern void _math_matrix_frustum( GLmatrix *mat, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat nearval, GLfloat farval ); extern void _math_matrix_viewport( GLmatrix *m, const float scale[3], const float translate[3], double depthMax ); extern void _math_matrix_set_identity( GLmatrix *dest ); extern void _math_matrix_copy( GLmatrix *to, const GLmatrix *from ); extern void _math_matrix_push_copy(GLmatrix *to, GLmatrix *from); extern void _math_matrix_analyse( GLmatrix *mat ); extern GLboolean _math_matrix_is_length_preserving( const GLmatrix *m ); extern GLboolean _math_matrix_is_general_scale( const GLmatrix *m ); extern GLboolean _math_matrix_is_dirty( const GLmatrix *m ); /** * \name Related functions that don't actually operate on GLmatrix structs */ /*@{*/ extern void _math_transposef( GLfloat to[16], const GLfloat from[16] ); extern void _math_transposed( GLdouble to[16], const GLdouble from[16] ); extern void _math_transposefd( GLfloat to[16], const GLdouble from[16] ); /* * Transform a point (column vector) by a matrix: Q = M * P */ #define TRANSFORM_POINT( Q, M, P ) \ Q[0] = M[0] * P[0] + M[4] * P[1] + M[8] * P[2] + M[12] * P[3]; \ Q[1] = M[1] * P[0] + M[5] * P[1] + M[9] * P[2] + M[13] * P[3]; \ Q[2] = M[2] * P[0] + M[6] * P[1] + M[10] * P[2] + M[14] * P[3]; \ Q[3] = M[3] * P[0] + M[7] * P[1] + M[11] * P[2] + M[15] * P[3]; #define TRANSFORM_POINT3( Q, M, P ) \ Q[0] = M[0] * P[0] + M[4] * P[1] + M[8] * P[2] + M[12]; \ Q[1] = M[1] * P[0] + M[5] * P[1] + M[9] * P[2] + M[13]; \ Q[2] = M[2] * P[0] + M[6] * P[1] + M[10] * P[2] + M[14]; \ Q[3] = M[3] * P[0] + M[7] * P[1] + M[11] * P[2] + M[15]; /* * Transform a normal (row vector) by a matrix: [NX NY NZ] = N * MAT */ #define TRANSFORM_NORMAL( TO, N, MAT ) \ do { \ TO[0] = N[0] * MAT[0] + N[1] * MAT[1] + N[2] * MAT[2]; \ TO[1] = N[0] * MAT[4] + N[1] * MAT[5] + N[2] * MAT[6]; \ TO[2] = N[0] * MAT[8] + N[1] * MAT[9] + N[2] * MAT[10]; \ } while (0) /** * Transform a direction by a matrix. */ #define TRANSFORM_DIRECTION( TO, DIR, MAT ) \ do { \ TO[0] = DIR[0] * MAT[0] + DIR[1] * MAT[4] + DIR[2] * MAT[8]; \ TO[1] = DIR[0] * MAT[1] + DIR[1] * MAT[5] + DIR[2] * MAT[9]; \ TO[2] = DIR[0] * MAT[2] + DIR[1] * MAT[6] + DIR[2] * MAT[10]; \ } while (0) extern void _mesa_transform_vector(GLfloat u[4], const GLfloat v[4], const GLfloat m[16]); /*@}*/ #ifdef __cplusplus } #endif # 202 "../mesa/src/mesa/math/m_matrix.h" #endif # 204 "../mesa/src/mesa/math/m_matrix.h" #endif /* m_matrix.h expanded by -frewrite-includes */ # 50 "../mesa/src/mesa/main/mtypes.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_enums.h" #endif /* expanded by -frewrite-includes */ # 50 "../mesa/src/mesa/main/mtypes.h" # 51 "../mesa/src/mesa/main/mtypes.h" #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_info.h" #endif /* expanded by -frewrite-includes */ # 51 "../mesa/src/mesa/main/mtypes.h" # 52 "../mesa/src/mesa/main/mtypes.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* formats.h expanded by -frewrite-includes */ #include "main/formats.h" /* MESA_FORMAT_COUNT */ #else /* formats.h expanded by -frewrite-includes */ # 52 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/main/formats.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * Copyright (c) 2008-2009 VMware, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /* * Authors: * Brian Paul */ #ifndef FORMATS_H #define FORMATS_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/formats.h" # 37 "../mesa/src/mesa/main/formats.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/formats.h" # 38 "../mesa/src/mesa/main/formats.h" #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/formats.h" # 40 "../mesa/src/mesa/main/formats.h" #if 0 /* expanded by -frewrite-includes */ #include "util/format/u_formats.h" #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/formats.h" # 41 "../mesa/src/mesa/main/formats.h" #if 0 /* expanded by -frewrite-includes */ #include "util/u_endian.h" #endif /* expanded by -frewrite-includes */ # 41 "../mesa/src/mesa/main/formats.h" # 42 "../mesa/src/mesa/main/formats.h" #ifdef __cplusplus extern "C" { #endif # 46 "../mesa/src/mesa/main/formats.h" /** * OpenGL doesn't have GL_UNSIGNED_BYTE_4_4, so we must define our own type * for GL_LUMINANCE4_ALPHA4. */ #define MESA_UNSIGNED_BYTE_4_4 (GL_UNSIGNED_BYTE<<1) /** * Max number of bytes for any non-compressed pixel format below, or for * intermediate pixel storage in Mesa. This should never be less than * 16. Maybe 32 someday? */ #define MAX_PIXEL_BYTES 16 /** * Specifies the layout of a pixel format. See the MESA_FORMAT * documentation below. */ enum mesa_format_layout { MESA_FORMAT_LAYOUT_ARRAY, MESA_FORMAT_LAYOUT_PACKED, MESA_FORMAT_LAYOUT_S3TC, MESA_FORMAT_LAYOUT_RGTC, MESA_FORMAT_LAYOUT_LATC, MESA_FORMAT_LAYOUT_FXT1, MESA_FORMAT_LAYOUT_ETC1, MESA_FORMAT_LAYOUT_ETC2, MESA_FORMAT_LAYOUT_BPTC, MESA_FORMAT_LAYOUT_ASTC, MESA_FORMAT_LAYOUT_ATC, MESA_FORMAT_LAYOUT_OTHER, }; /** * An enum representing different possible swizzling values. This is used * to interpret the output of _mesa_get_format_swizzle */ enum { MESA_FORMAT_SWIZZLE_X = 0, MESA_FORMAT_SWIZZLE_Y = 1, MESA_FORMAT_SWIZZLE_Z = 2, MESA_FORMAT_SWIZZLE_W = 3, MESA_FORMAT_SWIZZLE_ZERO = 4, MESA_FORMAT_SWIZZLE_ONE = 5, MESA_FORMAT_SWIZZLE_NONE = 6, }; /** * An uint32_t that encodes the information necessary to represent an * array format */ typedef uint32_t mesa_array_format; /** * Encoding for valid array format data types */ enum mesa_array_format_datatype { MESA_ARRAY_FORMAT_TYPE_UBYTE = 0x0, MESA_ARRAY_FORMAT_TYPE_USHORT = 0x1, MESA_ARRAY_FORMAT_TYPE_UINT = 0x2, MESA_ARRAY_FORMAT_TYPE_BYTE = 0x4, MESA_ARRAY_FORMAT_TYPE_SHORT = 0x5, MESA_ARRAY_FORMAT_TYPE_INT = 0x6, MESA_ARRAY_FORMAT_TYPE_HALF = 0xd, MESA_ARRAY_FORMAT_TYPE_FLOAT = 0xe, }; enum mesa_array_format_base_format { MESA_ARRAY_FORMAT_BASE_FORMAT_RGBA_VARIANTS = 0x0, MESA_ARRAY_FORMAT_BASE_FORMAT_DEPTH = 0x1, MESA_ARRAY_FORMAT_BASE_FORMAT_STENCIL = 0x2, }; /** * An enum useful to encode/decode information stored in a mesa_array_format */ enum { MESA_ARRAY_FORMAT_TYPE_IS_SIGNED = 0x4, MESA_ARRAY_FORMAT_TYPE_IS_FLOAT = 0x8, MESA_ARRAY_FORMAT_TYPE_NORMALIZED = 0x10, MESA_ARRAY_FORMAT_DATATYPE_MASK = 0xf, MESA_ARRAY_FORMAT_TYPE_MASK = 0x1f, MESA_ARRAY_FORMAT_TYPE_SIZE_MASK = 0x3, MESA_ARRAY_FORMAT_NUM_CHANS_MASK = 0xe0, MESA_ARRAY_FORMAT_SWIZZLE_X_MASK = 0x00700, MESA_ARRAY_FORMAT_SWIZZLE_Y_MASK = 0x03800, MESA_ARRAY_FORMAT_SWIZZLE_Z_MASK = 0x1c000, MESA_ARRAY_FORMAT_SWIZZLE_W_MASK = 0xe0000, MESA_ARRAY_FORMAT_BASE_FORMAT_MASK = 0x300000, MESA_ARRAY_FORMAT_BIT = 0x80000000 }; #define MESA_ARRAY_FORMAT(BASE_FORMAT, SIZE, SIGNED, IS_FLOAT, NORM, NUM_CHANS, \ SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W) ( \ (((SIZE >> 1) ) & MESA_ARRAY_FORMAT_TYPE_SIZE_MASK) | \ (((SIGNED) << 2 ) & MESA_ARRAY_FORMAT_TYPE_IS_SIGNED) | \ (((IS_FLOAT) << 3 ) & MESA_ARRAY_FORMAT_TYPE_IS_FLOAT) | \ (((NORM) << 4 ) & MESA_ARRAY_FORMAT_TYPE_NORMALIZED) | \ (((NUM_CHANS) << 5 ) & MESA_ARRAY_FORMAT_NUM_CHANS_MASK) | \ (((SWIZZLE_X) << 8 ) & MESA_ARRAY_FORMAT_SWIZZLE_X_MASK) | \ (((SWIZZLE_Y) << 11) & MESA_ARRAY_FORMAT_SWIZZLE_Y_MASK) | \ (((SWIZZLE_Z) << 14) & MESA_ARRAY_FORMAT_SWIZZLE_Z_MASK) | \ (((SWIZZLE_W) << 17) & MESA_ARRAY_FORMAT_SWIZZLE_W_MASK) | \ (((BASE_FORMAT) << 20) & MESA_ARRAY_FORMAT_BASE_FORMAT_MASK) | \ MESA_ARRAY_FORMAT_BIT) /** * Various helpers to access the data encoded in a mesa_array_format */ static inline bool _mesa_array_format_is_signed(mesa_array_format f) { return (f & MESA_ARRAY_FORMAT_TYPE_IS_SIGNED) != 0; } static inline bool _mesa_array_format_is_float(mesa_array_format f) { return (f & MESA_ARRAY_FORMAT_TYPE_IS_FLOAT) != 0; } static inline bool _mesa_array_format_is_normalized(mesa_array_format f) { return (f & MESA_ARRAY_FORMAT_TYPE_NORMALIZED) !=0; } static inline enum mesa_array_format_base_format _mesa_array_format_get_base_format(mesa_array_format f) { return (enum mesa_array_format_base_format) ((f & MESA_ARRAY_FORMAT_BASE_FORMAT_MASK) >> 20); } static inline enum mesa_array_format_datatype _mesa_array_format_get_datatype(mesa_array_format f) { return (enum mesa_array_format_datatype) (f & MESA_ARRAY_FORMAT_DATATYPE_MASK); } static inline int _mesa_array_format_datatype_get_size(enum mesa_array_format_datatype type) { return 1 << (type & MESA_ARRAY_FORMAT_TYPE_SIZE_MASK); } static inline int _mesa_array_format_get_type_size(mesa_array_format f) { return 1 << (f & MESA_ARRAY_FORMAT_TYPE_SIZE_MASK); } static inline int _mesa_array_format_get_num_channels(mesa_array_format f) { return (f & MESA_ARRAY_FORMAT_NUM_CHANS_MASK) >> 5; } static inline void _mesa_array_format_get_swizzle(mesa_array_format f, uint8_t *swizzle) { swizzle[0] = (f & MESA_ARRAY_FORMAT_SWIZZLE_X_MASK) >> 8; swizzle[1] = (f & MESA_ARRAY_FORMAT_SWIZZLE_Y_MASK) >> 11; swizzle[2] = (f & MESA_ARRAY_FORMAT_SWIZZLE_Z_MASK) >> 14; swizzle[3] = (f & MESA_ARRAY_FORMAT_SWIZZLE_W_MASK) >> 17; } static inline void _mesa_array_format_set_swizzle(mesa_array_format *f, int32_t x, int32_t y, int32_t z, int32_t w) { *f &= ~(MESA_ARRAY_FORMAT_SWIZZLE_X_MASK | MESA_ARRAY_FORMAT_SWIZZLE_Y_MASK | MESA_ARRAY_FORMAT_SWIZZLE_Z_MASK | MESA_ARRAY_FORMAT_SWIZZLE_W_MASK); *f |= ((x << 8 ) & MESA_ARRAY_FORMAT_SWIZZLE_X_MASK) | ((y << 11) & MESA_ARRAY_FORMAT_SWIZZLE_Y_MASK) | ((z << 14) & MESA_ARRAY_FORMAT_SWIZZLE_Z_MASK) | ((w << 17) & MESA_ARRAY_FORMAT_SWIZZLE_W_MASK); } /** * A helper to know if the format stored in a uint32_t is a mesa_format * or a mesa_array_format */ static inline bool _mesa_format_is_mesa_array_format(uint32_t f) { return (f & MESA_ARRAY_FORMAT_BIT) != 0; } /** * Mesa texture/renderbuffer image formats. These are just other names of the * util/format/u_formats.h formats. */ typedef enum pipe_format mesa_format; /** * \name Basic hardware formats * * The mesa format name specification is as follows: * * There shall be 3 naming format base types: those for component array * formats (type A); those for compressed formats (type C); and those for * packed component formats (type P). With type A formats, color component * order does not change with endianess. Each format name shall begin with * MESA_FORMAT_, followed by a component label (from the Component Label * list below) for each component in the order that the component(s) occur * in the format, except for non-linear color formats where the first * letter shall be 'S'. For type P formats, each component label is * followed by the number of bits that represent it in the fundamental * data type used by the format. * * Following the listing of the component labels shall be an underscore; a * compression type followed by an underscore for Type C formats only; a * storage type from the list below; and a bit with for type A formats, * which is the bit width for each array element. * * * ---------- Format Base Type A: Array ---------- * MESA_FORMAT_[component list]_[storage type][array element bit width] * * examples: * MESA_FORMAT_A_SNORM8 - uchar[i] = A * MESA_FORMAT_RGBA_16 - ushort[i * 4 + 0] = R, ushort[i * 4 + 1] = G, * ushort[i * 4 + 2] = B, ushort[i * 4 + 3] = A * MESA_FORMAT_Z_UNORM32 - float[i] = Z * * * * ---------- Format Base Type C: Compressed ---------- * MESA_FORMAT_[component list*][_*][compression type][storage type*] * * where required * * examples: * MESA_FORMAT_RGB_ETC1 * MESA_FORMAT_RGBA_ETC2 * MESA_FORMAT_LATC1_UNORM * MESA_FORMAT_RGBA_FXT1 * * * * ---------- Format Base Type P: Packed ---------- * MESA_FORMAT_[[component list,bit width][storage type*][_]][_][storage type**] * * when type differs between component * ** when type applies to all components * * examples: msb <------ TEXEL BITS -----------> lsb * MESA_FORMAT_A8B8G8R8_UNORM, RRRR RRRR GGGG GGGG BBBB BBBB AAAA AAAA * MESA_FORMAT_R5G6B5_UNORM BBBB BGGG GGGR RRRR * MESA_FORMAT_B4G4R4X4_UNORM XXXX RRRR GGGG BBBB * MESA_FORMAT_Z32_FLOAT_S8X24_UINT * MESA_FORMAT_R10G10B10A2_UINT * MESA_FORMAT_R9G9B9E5_FLOAT * * * * ---------- Component Labels: ---------- * A - Alpha * B - Blue * DU - Delta U * DV - Delta V * E - Shared Exponent * G - Green * I - Intensity * L - Luminance * R - Red * S - Stencil (when not followed by RGB or RGBA) * U - Chrominance * V - Chrominance * Y - Luma * X - Packing bits * Z - Depth * * * * ---------- Type C Compression Types: ---------- * DXT1 - Color component labels shall be given * DXT3 - Color component labels shall be given * DXT5 - Color component labels shall be given * ETC1 - No other information required * ETC2 - No other information required * FXT1 - Color component labels shall be given * FXT3 - Color component labels shall be given * LATC1 - Fundamental data type shall be given * LATC2 - Fundamental data type shall be given * RGTC1 - Color component labels and data type shall be given * RGTC2 - Color component labels and data type shall be given * * * * ---------- Storage Types: ---------- * FLOAT * SINT * UINT * SNORM * UNORM * SRGB - RGB components, or L are UNORMs in sRGB color space. * Alpha, if present is linear. * */ #define MESA_FORMAT_NONE PIPE_FORMAT_NONE #define MESA_FORMAT_A8B8G8R8_UNORM PIPE_FORMAT_ABGR8888_UNORM #define MESA_FORMAT_X8B8G8R8_UNORM PIPE_FORMAT_XBGR8888_UNORM #define MESA_FORMAT_R8G8B8A8_UNORM PIPE_FORMAT_RGBA8888_UNORM #define MESA_FORMAT_R8G8B8X8_UNORM PIPE_FORMAT_RGBX8888_UNORM #define MESA_FORMAT_B8G8R8A8_UNORM PIPE_FORMAT_BGRA8888_UNORM #define MESA_FORMAT_B8G8R8X8_UNORM PIPE_FORMAT_BGRX8888_UNORM #define MESA_FORMAT_A8R8G8B8_UNORM PIPE_FORMAT_ARGB8888_UNORM #define MESA_FORMAT_X8R8G8B8_UNORM PIPE_FORMAT_XRGB8888_UNORM #define MESA_FORMAT_B5G6R5_UNORM PIPE_FORMAT_B5G6R5_UNORM #define MESA_FORMAT_R5G6B5_UNORM PIPE_FORMAT_R5G6B5_UNORM #define MESA_FORMAT_B4G4R4A4_UNORM PIPE_FORMAT_B4G4R4A4_UNORM #define MESA_FORMAT_B4G4R4X4_UNORM PIPE_FORMAT_B4G4R4X4_UNORM #define MESA_FORMAT_A4R4G4B4_UNORM PIPE_FORMAT_A4R4G4B4_UNORM #define MESA_FORMAT_A1B5G5R5_UNORM PIPE_FORMAT_A1B5G5R5_UNORM #define MESA_FORMAT_X1B5G5R5_UNORM PIPE_FORMAT_X1B5G5R5_UNORM #define MESA_FORMAT_B5G5R5A1_UNORM PIPE_FORMAT_B5G5R5A1_UNORM #define MESA_FORMAT_B5G5R5X1_UNORM PIPE_FORMAT_B5G5R5X1_UNORM #define MESA_FORMAT_A1R5G5B5_UNORM PIPE_FORMAT_A1R5G5B5_UNORM #define MESA_FORMAT_L4A4_UNORM PIPE_FORMAT_L4A4_UNORM #define MESA_FORMAT_B2G3R3_UNORM PIPE_FORMAT_B2G3R3_UNORM #define MESA_FORMAT_B10G10R10A2_UNORM PIPE_FORMAT_B10G10R10A2_UNORM #define MESA_FORMAT_B10G10R10X2_UNORM PIPE_FORMAT_B10G10R10X2_UNORM #define MESA_FORMAT_R10G10B10A2_UNORM PIPE_FORMAT_R10G10B10A2_UNORM #define MESA_FORMAT_R10G10B10X2_UNORM PIPE_FORMAT_R10G10B10X2_UNORM #define MESA_FORMAT_S8_UINT_Z24_UNORM PIPE_FORMAT_S8_UINT_Z24_UNORM #define MESA_FORMAT_X8_UINT_Z24_UNORM PIPE_FORMAT_X8Z24_UNORM #define MESA_FORMAT_Z24_UNORM_S8_UINT PIPE_FORMAT_Z24_UNORM_S8_UINT #define MESA_FORMAT_Z24_UNORM_X8_UINT PIPE_FORMAT_Z24X8_UNORM #define MESA_FORMAT_R3G3B2_UNORM PIPE_FORMAT_R3G3B2_UNORM #define MESA_FORMAT_A4B4G4R4_UNORM PIPE_FORMAT_A4B4G4R4_UNORM #define MESA_FORMAT_R4G4B4A4_UNORM PIPE_FORMAT_R4G4B4A4_UNORM #define MESA_FORMAT_R5G5B5A1_UNORM PIPE_FORMAT_R5G5B5A1_UNORM #define MESA_FORMAT_A2B10G10R10_UNORM PIPE_FORMAT_A2B10G10R10_UNORM #define MESA_FORMAT_A2R10G10B10_UNORM PIPE_FORMAT_A2R10G10B10_UNORM #define MESA_FORMAT_YCBCR PIPE_FORMAT_UYVY #define MESA_FORMAT_YCBCR_REV PIPE_FORMAT_YUYV #define MESA_FORMAT_RG_RB_UNORM8 PIPE_FORMAT_R8G8_R8B8_UNORM #define MESA_FORMAT_RB_RG_UNORM8 PIPE_FORMAT_R8B8_R8G8_UNORM #define MESA_FORMAT_GR_BR_UNORM8 PIPE_FORMAT_G8R8_B8R8_UNORM #define MESA_FORMAT_BR_GR_UNORM8 PIPE_FORMAT_B8R8_G8R8_UNORM #define MESA_FORMAT_A_UNORM8 PIPE_FORMAT_A8_UNORM #define MESA_FORMAT_A_UNORM16 PIPE_FORMAT_A16_UNORM #define MESA_FORMAT_L_UNORM8 PIPE_FORMAT_L8_UNORM #define MESA_FORMAT_L_UNORM16 PIPE_FORMAT_L16_UNORM #define MESA_FORMAT_LA_UNORM8 PIPE_FORMAT_L8A8_UNORM #define MESA_FORMAT_LA_UNORM16 PIPE_FORMAT_L16A16_UNORM #define MESA_FORMAT_I_UNORM8 PIPE_FORMAT_I8_UNORM #define MESA_FORMAT_I_UNORM16 PIPE_FORMAT_I16_UNORM #define MESA_FORMAT_R_UNORM8 PIPE_FORMAT_R8_UNORM #define MESA_FORMAT_R_UNORM16 PIPE_FORMAT_R16_UNORM #define MESA_FORMAT_RG_UNORM8 PIPE_FORMAT_R8G8_UNORM #define MESA_FORMAT_RG_UNORM16 PIPE_FORMAT_R16G16_UNORM #define MESA_FORMAT_BGR_UNORM8 PIPE_FORMAT_B8G8R8_UNORM #define MESA_FORMAT_RGB_UNORM8 PIPE_FORMAT_R8G8B8_UNORM #define MESA_FORMAT_RGBA_UNORM16 PIPE_FORMAT_R16G16B16A16_UNORM #define MESA_FORMAT_RGBX_UNORM16 PIPE_FORMAT_R16G16B16X16_UNORM #define MESA_FORMAT_Z_UNORM16 PIPE_FORMAT_Z16_UNORM #define MESA_FORMAT_Z_UNORM32 PIPE_FORMAT_Z32_UNORM #define MESA_FORMAT_S_UINT8 PIPE_FORMAT_S8_UINT #define MESA_FORMAT_A8B8G8R8_SNORM PIPE_FORMAT_ABGR8888_SNORM #define MESA_FORMAT_X8B8G8R8_SNORM PIPE_FORMAT_XBGR8888_SNORM #define MESA_FORMAT_R8G8B8A8_SNORM PIPE_FORMAT_RGBA8888_SNORM #define MESA_FORMAT_R8G8B8X8_SNORM PIPE_FORMAT_RGBX8888_SNORM #define MESA_FORMAT_A_SNORM8 PIPE_FORMAT_A8_SNORM #define MESA_FORMAT_A_SNORM16 PIPE_FORMAT_A16_SNORM #define MESA_FORMAT_L_SNORM8 PIPE_FORMAT_L8_SNORM #define MESA_FORMAT_L_SNORM16 PIPE_FORMAT_L16_SNORM #define MESA_FORMAT_I_SNORM8 PIPE_FORMAT_I8_SNORM #define MESA_FORMAT_I_SNORM16 PIPE_FORMAT_I16_SNORM #define MESA_FORMAT_R_SNORM8 PIPE_FORMAT_R8_SNORM #define MESA_FORMAT_R_SNORM16 PIPE_FORMAT_R16_SNORM #define MESA_FORMAT_LA_SNORM8 PIPE_FORMAT_L8A8_SNORM #define MESA_FORMAT_LA_SNORM16 PIPE_FORMAT_L16A16_SNORM #define MESA_FORMAT_RG_SNORM8 PIPE_FORMAT_R8G8_SNORM #define MESA_FORMAT_RG_SNORM16 PIPE_FORMAT_R16G16_SNORM #define MESA_FORMAT_RGB_SNORM16 PIPE_FORMAT_R16G16B16_SNORM #define MESA_FORMAT_RGBA_SNORM16 PIPE_FORMAT_R16G16B16A16_SNORM #define MESA_FORMAT_RGBX_SNORM16 PIPE_FORMAT_R16G16B16X16_SNORM #define MESA_FORMAT_A8B8G8R8_SRGB PIPE_FORMAT_ABGR8888_SRGB #define MESA_FORMAT_B8G8R8A8_SRGB PIPE_FORMAT_BGRA8888_SRGB #define MESA_FORMAT_A8R8G8B8_SRGB PIPE_FORMAT_ARGB8888_SRGB #define MESA_FORMAT_B8G8R8X8_SRGB PIPE_FORMAT_BGRX8888_SRGB #define MESA_FORMAT_X8R8G8B8_SRGB PIPE_FORMAT_XRGB8888_SRGB #define MESA_FORMAT_R8G8B8A8_SRGB PIPE_FORMAT_RGBA8888_SRGB #define MESA_FORMAT_R8G8B8X8_SRGB PIPE_FORMAT_RGBX8888_SRGB #define MESA_FORMAT_X8B8G8R8_SRGB PIPE_FORMAT_XBGR8888_SRGB #define MESA_FORMAT_R_SRGB8 PIPE_FORMAT_R8_SRGB #define MESA_FORMAT_RG_SRGB8 PIPE_FORMAT_R8G8_SRGB #define MESA_FORMAT_L_SRGB8 PIPE_FORMAT_L8_SRGB #define MESA_FORMAT_LA_SRGB8 PIPE_FORMAT_L8A8_SRGB #define MESA_FORMAT_BGR_SRGB8 PIPE_FORMAT_R8G8B8_SRGB #define MESA_FORMAT_R9G9B9E5_FLOAT PIPE_FORMAT_R9G9B9E5_FLOAT #define MESA_FORMAT_R11G11B10_FLOAT PIPE_FORMAT_R11G11B10_FLOAT #define MESA_FORMAT_Z32_FLOAT_S8X24_UINT PIPE_FORMAT_Z32_FLOAT_S8X24_UINT #define MESA_FORMAT_A_FLOAT16 PIPE_FORMAT_A16_FLOAT #define MESA_FORMAT_A_FLOAT32 PIPE_FORMAT_A32_FLOAT #define MESA_FORMAT_L_FLOAT16 PIPE_FORMAT_L16_FLOAT #define MESA_FORMAT_L_FLOAT32 PIPE_FORMAT_L32_FLOAT #define MESA_FORMAT_LA_FLOAT16 PIPE_FORMAT_L16A16_FLOAT #define MESA_FORMAT_LA_FLOAT32 PIPE_FORMAT_L32A32_FLOAT #define MESA_FORMAT_I_FLOAT16 PIPE_FORMAT_I16_FLOAT #define MESA_FORMAT_I_FLOAT32 PIPE_FORMAT_I32_FLOAT #define MESA_FORMAT_R_FLOAT16 PIPE_FORMAT_R16_FLOAT #define MESA_FORMAT_R_FLOAT32 PIPE_FORMAT_R32_FLOAT #define MESA_FORMAT_RG_FLOAT16 PIPE_FORMAT_R16G16_FLOAT #define MESA_FORMAT_RG_FLOAT32 PIPE_FORMAT_R32G32_FLOAT #define MESA_FORMAT_RGB_FLOAT16 PIPE_FORMAT_R16G16B16_FLOAT #define MESA_FORMAT_RGB_FLOAT32 PIPE_FORMAT_R32G32B32_FLOAT #define MESA_FORMAT_RGBA_FLOAT16 PIPE_FORMAT_R16G16B16A16_FLOAT #define MESA_FORMAT_RGBA_FLOAT32 PIPE_FORMAT_R32G32B32A32_FLOAT #define MESA_FORMAT_RGBX_FLOAT16 PIPE_FORMAT_R16G16B16X16_FLOAT #define MESA_FORMAT_RGBX_FLOAT32 PIPE_FORMAT_R32G32B32X32_FLOAT #define MESA_FORMAT_Z_FLOAT32 PIPE_FORMAT_Z32_FLOAT #define MESA_FORMAT_A8B8G8R8_UINT PIPE_FORMAT_ABGR8888_UINT #define MESA_FORMAT_A8R8G8B8_UINT PIPE_FORMAT_ARGB8888_UINT #define MESA_FORMAT_R8G8B8A8_UINT PIPE_FORMAT_RGBA8888_UINT #define MESA_FORMAT_B8G8R8A8_UINT PIPE_FORMAT_BGRA8888_UINT #define MESA_FORMAT_B10G10R10A2_UINT PIPE_FORMAT_B10G10R10A2_UINT #define MESA_FORMAT_R10G10B10A2_UINT PIPE_FORMAT_R10G10B10A2_UINT #define MESA_FORMAT_A2B10G10R10_UINT PIPE_FORMAT_A2B10G10R10_UINT #define MESA_FORMAT_A2R10G10B10_UINT PIPE_FORMAT_A2R10G10B10_UINT #define MESA_FORMAT_B5G6R5_UINT PIPE_FORMAT_B5G6R5_UINT #define MESA_FORMAT_R5G6B5_UINT PIPE_FORMAT_R5G6B5_UINT #define MESA_FORMAT_B2G3R3_UINT PIPE_FORMAT_B2G3R3_UINT #define MESA_FORMAT_R3G3B2_UINT PIPE_FORMAT_R3G3B2_UINT #define MESA_FORMAT_A4B4G4R4_UINT PIPE_FORMAT_A4B4G4R4_UINT #define MESA_FORMAT_R4G4B4A4_UINT PIPE_FORMAT_R4G4B4A4_UINT #define MESA_FORMAT_B4G4R4A4_UINT PIPE_FORMAT_B4G4R4A4_UINT #define MESA_FORMAT_A4R4G4B4_UINT PIPE_FORMAT_A4R4G4B4_UINT #define MESA_FORMAT_A1B5G5R5_UINT PIPE_FORMAT_A1B5G5R5_UINT #define MESA_FORMAT_B5G5R5A1_UINT PIPE_FORMAT_B5G5R5A1_UINT #define MESA_FORMAT_A1R5G5B5_UINT PIPE_FORMAT_A1R5G5B5_UINT #define MESA_FORMAT_R5G5B5A1_UINT PIPE_FORMAT_R5G5B5A1_UINT #define MESA_FORMAT_A_UINT8 PIPE_FORMAT_A8_UINT #define MESA_FORMAT_A_UINT16 PIPE_FORMAT_A16_UINT #define MESA_FORMAT_A_UINT32 PIPE_FORMAT_A32_UINT #define MESA_FORMAT_A_SINT8 PIPE_FORMAT_A8_SINT #define MESA_FORMAT_A_SINT16 PIPE_FORMAT_A16_SINT #define MESA_FORMAT_A_SINT32 PIPE_FORMAT_A32_SINT #define MESA_FORMAT_I_UINT8 PIPE_FORMAT_I8_UINT #define MESA_FORMAT_I_UINT16 PIPE_FORMAT_I16_UINT #define MESA_FORMAT_I_UINT32 PIPE_FORMAT_I32_UINT #define MESA_FORMAT_I_SINT8 PIPE_FORMAT_I8_SINT #define MESA_FORMAT_I_SINT16 PIPE_FORMAT_I16_SINT #define MESA_FORMAT_I_SINT32 PIPE_FORMAT_I32_SINT #define MESA_FORMAT_L_UINT8 PIPE_FORMAT_L8_UINT #define MESA_FORMAT_L_UINT16 PIPE_FORMAT_L16_UINT #define MESA_FORMAT_L_UINT32 PIPE_FORMAT_L32_UINT #define MESA_FORMAT_L_SINT8 PIPE_FORMAT_L8_SINT #define MESA_FORMAT_L_SINT16 PIPE_FORMAT_L16_SINT #define MESA_FORMAT_L_SINT32 PIPE_FORMAT_L32_SINT #define MESA_FORMAT_LA_UINT8 PIPE_FORMAT_L8A8_UINT #define MESA_FORMAT_LA_UINT16 PIPE_FORMAT_L16A16_UINT #define MESA_FORMAT_LA_UINT32 PIPE_FORMAT_L32A32_UINT #define MESA_FORMAT_LA_SINT8 PIPE_FORMAT_L8A8_SINT #define MESA_FORMAT_LA_SINT16 PIPE_FORMAT_L16A16_SINT #define MESA_FORMAT_LA_SINT32 PIPE_FORMAT_L32A32_SINT #define MESA_FORMAT_R_UINT8 PIPE_FORMAT_R8_UINT #define MESA_FORMAT_R_UINT16 PIPE_FORMAT_R16_UINT #define MESA_FORMAT_R_UINT32 PIPE_FORMAT_R32_UINT #define MESA_FORMAT_R_SINT8 PIPE_FORMAT_R8_SINT #define MESA_FORMAT_R_SINT16 PIPE_FORMAT_R16_SINT #define MESA_FORMAT_R_SINT32 PIPE_FORMAT_R32_SINT #define MESA_FORMAT_RG_UINT8 PIPE_FORMAT_R8G8_UINT #define MESA_FORMAT_RG_UINT16 PIPE_FORMAT_R16G16_UINT #define MESA_FORMAT_RG_UINT32 PIPE_FORMAT_R32G32_UINT #define MESA_FORMAT_RG_SINT8 PIPE_FORMAT_R8G8_SINT #define MESA_FORMAT_RG_SINT16 PIPE_FORMAT_R16G16_SINT #define MESA_FORMAT_RG_SINT32 PIPE_FORMAT_R32G32_SINT #define MESA_FORMAT_RGB_UINT8 PIPE_FORMAT_R8G8B8_UINT #define MESA_FORMAT_RGB_UINT16 PIPE_FORMAT_R16G16B16_UINT #define MESA_FORMAT_RGB_UINT32 PIPE_FORMAT_R32G32B32_UINT #define MESA_FORMAT_RGB_SINT8 PIPE_FORMAT_R8G8B8_SINT #define MESA_FORMAT_RGB_SINT16 PIPE_FORMAT_R16G16B16_SINT #define MESA_FORMAT_RGB_SINT32 PIPE_FORMAT_R32G32B32_SINT #define MESA_FORMAT_RGBA_UINT16 PIPE_FORMAT_R16G16B16A16_UINT #define MESA_FORMAT_RGBA_UINT32 PIPE_FORMAT_R32G32B32A32_UINT #define MESA_FORMAT_RGBA_SINT8 PIPE_FORMAT_R8G8B8A8_SINT #define MESA_FORMAT_RGBA_SINT16 PIPE_FORMAT_R16G16B16A16_SINT #define MESA_FORMAT_RGBA_SINT32 PIPE_FORMAT_R32G32B32A32_SINT #define MESA_FORMAT_RGBX_UINT8 PIPE_FORMAT_R8G8B8X8_UINT #define MESA_FORMAT_RGBX_UINT16 PIPE_FORMAT_R16G16B16X16_UINT #define MESA_FORMAT_RGBX_UINT32 PIPE_FORMAT_R32G32B32X32_UINT #define MESA_FORMAT_RGBX_SINT8 PIPE_FORMAT_R8G8B8X8_SINT #define MESA_FORMAT_RGBX_SINT16 PIPE_FORMAT_R16G16B16X16_SINT #define MESA_FORMAT_RGBX_SINT32 PIPE_FORMAT_R32G32B32X32_SINT #define MESA_FORMAT_RGB_DXT1 PIPE_FORMAT_DXT1_RGB #define MESA_FORMAT_RGBA_DXT1 PIPE_FORMAT_DXT1_RGBA #define MESA_FORMAT_RGBA_DXT3 PIPE_FORMAT_DXT3_RGBA #define MESA_FORMAT_RGBA_DXT5 PIPE_FORMAT_DXT5_RGBA #define MESA_FORMAT_SRGB_DXT1 PIPE_FORMAT_DXT1_SRGB #define MESA_FORMAT_SRGBA_DXT1 PIPE_FORMAT_DXT1_SRGBA #define MESA_FORMAT_SRGBA_DXT3 PIPE_FORMAT_DXT3_SRGBA #define MESA_FORMAT_SRGBA_DXT5 PIPE_FORMAT_DXT5_SRGBA #define MESA_FORMAT_RGB_FXT1 PIPE_FORMAT_FXT1_RGB #define MESA_FORMAT_RGBA_FXT1 PIPE_FORMAT_FXT1_RGBA #define MESA_FORMAT_R_RGTC1_UNORM PIPE_FORMAT_RGTC1_UNORM #define MESA_FORMAT_R_RGTC1_SNORM PIPE_FORMAT_RGTC1_SNORM #define MESA_FORMAT_RG_RGTC2_UNORM PIPE_FORMAT_RGTC2_UNORM #define MESA_FORMAT_RG_RGTC2_SNORM PIPE_FORMAT_RGTC2_SNORM #define MESA_FORMAT_L_LATC1_UNORM PIPE_FORMAT_LATC1_UNORM #define MESA_FORMAT_L_LATC1_SNORM PIPE_FORMAT_LATC1_SNORM #define MESA_FORMAT_LA_LATC2_UNORM PIPE_FORMAT_LATC2_UNORM #define MESA_FORMAT_LA_LATC2_SNORM PIPE_FORMAT_LATC2_SNORM #define MESA_FORMAT_ETC1_RGB8 PIPE_FORMAT_ETC1_RGB8 #define MESA_FORMAT_ETC2_RGB8 PIPE_FORMAT_ETC2_RGB8 #define MESA_FORMAT_ETC2_SRGB8 PIPE_FORMAT_ETC2_SRGB8 #define MESA_FORMAT_ETC2_RGBA8_EAC PIPE_FORMAT_ETC2_RGBA8 #define MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC PIPE_FORMAT_ETC2_SRGBA8 #define MESA_FORMAT_ETC2_R11_EAC PIPE_FORMAT_ETC2_R11_UNORM #define MESA_FORMAT_ETC2_RG11_EAC PIPE_FORMAT_ETC2_RG11_UNORM #define MESA_FORMAT_ETC2_SIGNED_R11_EAC PIPE_FORMAT_ETC2_R11_SNORM #define MESA_FORMAT_ETC2_SIGNED_RG11_EAC PIPE_FORMAT_ETC2_RG11_SNORM #define MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1 PIPE_FORMAT_ETC2_RGB8A1 #define MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1 PIPE_FORMAT_ETC2_SRGB8A1 #define MESA_FORMAT_BPTC_RGBA_UNORM PIPE_FORMAT_BPTC_RGBA_UNORM #define MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM PIPE_FORMAT_BPTC_SRGBA #define MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT PIPE_FORMAT_BPTC_RGB_FLOAT #define MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT PIPE_FORMAT_BPTC_RGB_UFLOAT #define MESA_FORMAT_RGBA_ASTC_4x4 PIPE_FORMAT_ASTC_4x4 #define MESA_FORMAT_RGBA_ASTC_5x4 PIPE_FORMAT_ASTC_5x4 #define MESA_FORMAT_RGBA_ASTC_5x5 PIPE_FORMAT_ASTC_5x5 #define MESA_FORMAT_RGBA_ASTC_6x5 PIPE_FORMAT_ASTC_6x5 #define MESA_FORMAT_RGBA_ASTC_6x6 PIPE_FORMAT_ASTC_6x6 #define MESA_FORMAT_RGBA_ASTC_8x5 PIPE_FORMAT_ASTC_8x5 #define MESA_FORMAT_RGBA_ASTC_8x6 PIPE_FORMAT_ASTC_8x6 #define MESA_FORMAT_RGBA_ASTC_8x8 PIPE_FORMAT_ASTC_8x8 #define MESA_FORMAT_RGBA_ASTC_10x5 PIPE_FORMAT_ASTC_10x5 #define MESA_FORMAT_RGBA_ASTC_10x6 PIPE_FORMAT_ASTC_10x6 #define MESA_FORMAT_RGBA_ASTC_10x8 PIPE_FORMAT_ASTC_10x8 #define MESA_FORMAT_RGBA_ASTC_10x10 PIPE_FORMAT_ASTC_10x10 #define MESA_FORMAT_RGBA_ASTC_12x10 PIPE_FORMAT_ASTC_12x10 #define MESA_FORMAT_RGBA_ASTC_12x12 PIPE_FORMAT_ASTC_12x12 #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4 PIPE_FORMAT_ASTC_4x4_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4 PIPE_FORMAT_ASTC_5x4_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5 PIPE_FORMAT_ASTC_5x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5 PIPE_FORMAT_ASTC_6x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6 PIPE_FORMAT_ASTC_6x6_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x5 PIPE_FORMAT_ASTC_8x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x6 PIPE_FORMAT_ASTC_8x6_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_8x8 PIPE_FORMAT_ASTC_8x8_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x5 PIPE_FORMAT_ASTC_10x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x6 PIPE_FORMAT_ASTC_10x6_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x8 PIPE_FORMAT_ASTC_10x8_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_10x10 PIPE_FORMAT_ASTC_10x10_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x10 PIPE_FORMAT_ASTC_12x10_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_12x12 PIPE_FORMAT_ASTC_12x12_SRGB #define MESA_FORMAT_RGBA_ASTC_3x3x3 PIPE_FORMAT_ASTC_3x3x3 #define MESA_FORMAT_RGBA_ASTC_4x3x3 PIPE_FORMAT_ASTC_4x3x3 #define MESA_FORMAT_RGBA_ASTC_4x4x3 PIPE_FORMAT_ASTC_4x4x3 #define MESA_FORMAT_RGBA_ASTC_4x4x4 PIPE_FORMAT_ASTC_4x4x4 #define MESA_FORMAT_RGBA_ASTC_5x4x4 PIPE_FORMAT_ASTC_5x4x4 #define MESA_FORMAT_RGBA_ASTC_5x5x4 PIPE_FORMAT_ASTC_5x5x4 #define MESA_FORMAT_RGBA_ASTC_5x5x5 PIPE_FORMAT_ASTC_5x5x5 #define MESA_FORMAT_RGBA_ASTC_6x5x5 PIPE_FORMAT_ASTC_6x5x5 #define MESA_FORMAT_RGBA_ASTC_6x6x5 PIPE_FORMAT_ASTC_6x6x5 #define MESA_FORMAT_RGBA_ASTC_6x6x6 PIPE_FORMAT_ASTC_6x6x6 #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_3x3x3 PIPE_FORMAT_ASTC_3x3x3_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x3x3 PIPE_FORMAT_ASTC_4x3x3_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x3 PIPE_FORMAT_ASTC_4x4x3_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_4x4x4 PIPE_FORMAT_ASTC_4x4x4_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x4x4 PIPE_FORMAT_ASTC_5x4x4_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x4 PIPE_FORMAT_ASTC_5x5x4_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_5x5x5 PIPE_FORMAT_ASTC_5x5x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x5x5 PIPE_FORMAT_ASTC_6x5x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x5 PIPE_FORMAT_ASTC_6x6x5_SRGB #define MESA_FORMAT_SRGB8_ALPHA8_ASTC_6x6x6 PIPE_FORMAT_ASTC_6x6x6_SRGB #define MESA_FORMAT_ATC_RGB PIPE_FORMAT_ATC_RGB #define MESA_FORMAT_ATC_RGBA_EXPLICIT PIPE_FORMAT_ATC_RGBA_EXPLICIT #define MESA_FORMAT_ATC_RGBA_INTERPOLATED PIPE_FORMAT_ATC_RGBA_INTERPOLATED #define MESA_FORMAT_COUNT PIPE_FORMAT_COUNT /* Packed to array format adapters */ #if 0 /* disabled by -frewrite-includes */ #if UTIL_ARCH_LITTLE_ENDIAN #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 627 "../mesa/src/mesa/main/formats.h" #define MESA_FORMAT_RGBA_UINT8 MESA_FORMAT_R8G8B8A8_UINT #define MESA_FORMAT_RGBA_UNORM8 MESA_FORMAT_R8G8B8A8_UNORM #define MESA_FORMAT_RGBA_SNORM8 MESA_FORMAT_R8G8B8A8_SNORM #else # 631 "../mesa/src/mesa/main/formats.h" #define MESA_FORMAT_RGBA_UINT8 MESA_FORMAT_A8B8G8R8_UINT #define MESA_FORMAT_RGBA_UNORM8 MESA_FORMAT_A8B8G8R8_UNORM #define MESA_FORMAT_RGBA_SNORM8 MESA_FORMAT_A8B8G8R8_SNORM #endif # 635 "../mesa/src/mesa/main/formats.h" extern const char * _mesa_get_format_name(mesa_format format); extern int _mesa_get_format_bytes(mesa_format format); extern GLint _mesa_get_format_bits(mesa_format format, GLenum pname); extern unsigned int _mesa_get_format_max_bits(mesa_format format); extern enum mesa_format_layout _mesa_get_format_layout(mesa_format format); extern GLenum _mesa_get_format_datatype(mesa_format format); extern GLenum _mesa_get_format_base_format(uint32_t format); extern void _mesa_get_format_block_size(mesa_format format, unsigned int *bw, unsigned int *bh); extern void _mesa_get_format_block_size_3d(mesa_format format, unsigned int *bw, unsigned int *bh, unsigned int *bd); extern mesa_array_format _mesa_array_format_flip_channels(mesa_array_format format); extern void _mesa_get_format_swizzle(mesa_format format, uint8_t swizzle_out[4]); extern uint32_t _mesa_format_to_array_format(mesa_format format); extern mesa_format _mesa_format_from_array_format(uint32_t array_format); extern bool _mesa_is_format_compressed(mesa_format format); extern bool _mesa_is_format_packed_depth_stencil(mesa_format format); extern bool _mesa_is_format_integer_color(mesa_format format); extern bool _mesa_is_format_unsigned(mesa_format format); extern bool _mesa_is_format_signed(mesa_format format); extern bool _mesa_is_format_integer(mesa_format format); extern bool _mesa_is_format_etc2(mesa_format format); bool _mesa_is_format_astc_2d(mesa_format format); bool _mesa_is_format_s3tc(mesa_format format); bool _mesa_is_format_rgtc(mesa_format format); bool _mesa_is_format_latc(mesa_format format); bool _mesa_is_format_bptc(mesa_format format); bool _mesa_is_format_color_format(mesa_format format); bool _mesa_is_format_srgb(mesa_format format); extern uint32_t _mesa_format_image_size(mesa_format format, int width, int height, int depth); extern uint64_t _mesa_format_image_size64(mesa_format format, int width, int height, int depth); extern int32_t _mesa_format_row_stride(mesa_format format, int width); extern GLenum _mesa_uncompressed_format_to_type(mesa_format format); extern mesa_format _mesa_get_srgb_format_linear(mesa_format format); extern mesa_format _mesa_get_intensity_format_red(mesa_format format); extern mesa_format _mesa_get_uncompressed_format(mesa_format format); extern unsigned int _mesa_format_num_components(mesa_format format); extern bool _mesa_format_has_color_component(mesa_format format, int component); bool _mesa_format_matches_format_and_type(mesa_format mesa_format, GLenum format, GLenum type, bool swapBytes, GLenum *error); #ifdef __cplusplus } #endif # 756 "../mesa/src/mesa/main/formats.h" #endif /* FORMATS_H */ # 758 "../mesa/src/mesa/main/formats.h" #endif /* formats.h expanded by -frewrite-includes */ # 53 "../mesa/src/mesa/main/mtypes.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "compiler/glsl/list.h" #endif /* expanded by -frewrite-includes */ # 53 "../mesa/src/mesa/main/mtypes.h" # 54 "../mesa/src/mesa/main/mtypes.h" #if 0 /* expanded by -frewrite-includes */ #include "util/u_idalloc.h" #endif /* expanded by -frewrite-includes */ # 54 "../mesa/src/mesa/main/mtypes.h" # 55 "../mesa/src/mesa/main/mtypes.h" #if 0 /* expanded by -frewrite-includes */ #include "util/simple_mtx.h" #endif /* expanded by -frewrite-includes */ # 55 "../mesa/src/mesa/main/mtypes.h" # 56 "../mesa/src/mesa/main/mtypes.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* u_dynarray.h expanded by -frewrite-includes */ #include "util/u_dynarray.h" #else /* u_dynarray.h expanded by -frewrite-includes */ # 56 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/util/u_dynarray.h" 1 /************************************************************************** * * Copyright 2010 Luca Barbieri * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * **************************************************************************/ #ifndef U_DYNARRAY_H #define U_DYNARRAY_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/util/u_dynarray.h" # 31 "../mesa/src/util/u_dynarray.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/util/u_dynarray.h" # 32 "../mesa/src/util/u_dynarray.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 32 "../mesa/src/util/u_dynarray.h" # 33 "../mesa/src/util/u_dynarray.h" #if 0 /* expanded by -frewrite-includes */ #include "ralloc.h" #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/util/u_dynarray.h" # 34 "../mesa/src/util/u_dynarray.h" #ifdef __cplusplus extern "C" { #endif # 38 "../mesa/src/util/u_dynarray.h" extern unsigned util_dynarray_is_data_stack_allocated; /* A zero-initialized version of this is guaranteed to represent an * empty array. * * Also, size <= capacity and data != 0 if and only if capacity != 0 * capacity will always be the allocation size of data */ struct util_dynarray { void *mem_ctx; void *data; unsigned size; unsigned capacity; }; static inline void util_dynarray_init(struct util_dynarray *buf, void *mem_ctx) { memset(buf, 0, sizeof(*buf)); buf->mem_ctx = mem_ctx; } static inline void util_dynarray_init_from_stack(struct util_dynarray *buf, void *data, unsigned capacity) { memset(buf, 0, sizeof(*buf)); buf->mem_ctx = &util_dynarray_is_data_stack_allocated; buf->data = data; buf->capacity = capacity; } static inline void util_dynarray_fini(struct util_dynarray *buf) { if (buf->data) { if (buf->mem_ctx == &util_dynarray_is_data_stack_allocated) { } else if (buf->mem_ctx) { ralloc_free(buf->data); } else { free(buf->data); } util_dynarray_init(buf, buf->mem_ctx); } } static inline void util_dynarray_clear(struct util_dynarray *buf) { buf->size = 0; } #define DYN_ARRAY_INITIAL_SIZE 64 MUST_CHECK static inline void * util_dynarray_ensure_cap(struct util_dynarray *buf, unsigned newcap) { if (newcap > buf->capacity) { unsigned capacity = MAX3(DYN_ARRAY_INITIAL_SIZE, buf->capacity * 2, newcap); void *data; if (buf->mem_ctx == &util_dynarray_is_data_stack_allocated) { data = malloc(capacity); if (data) { memcpy(data, buf->data, buf->size); buf->mem_ctx = NULL; } } else if (buf->mem_ctx) { data = reralloc_size(buf->mem_ctx, buf->data, capacity); } else { data = realloc(buf->data, capacity); } if (!data) return NULL; buf->data = data; buf->capacity = capacity; } return (void *)((char *)buf->data + buf->size); } /* use util_dynarray_trim to reduce the allocated storage */ MUST_CHECK static inline void * util_dynarray_resize_bytes(struct util_dynarray *buf, unsigned nelts, size_t eltsize) { if (unlikely(nelts > UINT_MAX / eltsize)) return NULL; unsigned newsize = nelts * (unsigned)eltsize; void *p = util_dynarray_ensure_cap(buf, newsize); if (!p) return NULL; buf->size = newsize; return p; } static inline void util_dynarray_clone(struct util_dynarray *buf, void *mem_ctx, struct util_dynarray *from_buf) { util_dynarray_init(buf, mem_ctx); if (util_dynarray_resize_bytes(buf, from_buf->size, 1)) memcpy(buf->data, from_buf->data, from_buf->size); } MUST_CHECK static inline void * util_dynarray_grow_bytes(struct util_dynarray *buf, unsigned ngrow, size_t eltsize) { unsigned growbytes = ngrow * (unsigned)eltsize; if (unlikely(ngrow > (UINT_MAX / eltsize) || growbytes > UINT_MAX - buf->size)) return NULL; unsigned newsize = buf->size + growbytes; void *p = util_dynarray_ensure_cap(buf, newsize); if (!p) return NULL; buf->size = newsize; return p; } static inline void util_dynarray_trim(struct util_dynarray *buf) { if (buf->mem_ctx == &util_dynarray_is_data_stack_allocated) return; if (buf->size != buf->capacity) { if (buf->size) { if (buf->mem_ctx) { buf->data = reralloc_size(buf->mem_ctx, buf->data, buf->size); } else { buf->data = realloc(buf->data, buf->size); } buf->capacity = buf->size; } else { if (buf->mem_ctx) { ralloc_free(buf->data); } else { free(buf->data); } buf->data = NULL; buf->capacity = 0; } } } static inline void util_dynarray_append_dynarray(struct util_dynarray *buf, const struct util_dynarray *other) { if (other->size > 0) { void *p = util_dynarray_grow_bytes(buf, 1, other->size); memcpy(p, other->data, other->size); } } #define util_dynarray_append(buf, type, v) do {type __v = (v); memcpy(util_dynarray_grow_bytes((buf), 1, sizeof(type)), &__v, sizeof(type));} while(0) #define util_dynarray_append_array(buf, type, v, count) do {memcpy(util_dynarray_grow_bytes((buf), count, sizeof(type)), v, sizeof(type) * count);} while(0) /* Returns a pointer to the space of the first new element (in case of growth) or NULL on failure. */ #define util_dynarray_resize(buf, type, nelts) util_dynarray_resize_bytes(buf, (nelts), sizeof(type)) #define util_dynarray_grow(buf, type, ngrow) util_dynarray_grow_bytes(buf, (ngrow), sizeof(type)) #define util_dynarray_top_ptr(buf, type) ((type*)((char*)(buf)->data + (buf)->size - sizeof(type))) #define util_dynarray_top(buf, type) *util_dynarray_top_ptr(buf, type) #define util_dynarray_pop_ptr(buf, type) ((type*)((char*)(buf)->data + ((buf)->size -= sizeof(type)))) #define util_dynarray_pop(buf, type) *util_dynarray_pop_ptr(buf, type) #define util_dynarray_contains(buf, type) ((buf)->size >= sizeof(type)) #define util_dynarray_element(buf, type, idx) ((type*)(buf)->data + (idx)) #define util_dynarray_begin(buf) ((buf)->data) #define util_dynarray_end(buf) ((void*)util_dynarray_element((buf), char, (buf)->size)) #define util_dynarray_num_elements(buf, type) ((buf)->size / sizeof(type)) #define util_dynarray_foreach(buf, type, elem) \ for (type *elem = (type *)(buf)->data; \ elem < (type *)((char *)(buf)->data + (buf)->size); elem++) #define util_dynarray_foreach_reverse(buf, type, elem) \ if ((buf)->size > 0) \ for (type *elem = util_dynarray_top_ptr(buf, type); \ elem; \ elem = elem > (type *)(buf)->data ? elem - 1 : NULL) #define util_dynarray_delete_unordered(buf, type, v) \ do { \ unsigned num_elements = (buf)->size / sizeof(type); \ unsigned i; \ for (i = 0; i < num_elements; i++) { \ type __v = *util_dynarray_element((buf), type, (i)); \ if (v == __v) { \ memcpy(util_dynarray_element((buf), type, (i)), \ util_dynarray_pop_ptr((buf), type), sizeof(type)); \ break; \ } \ } \ } while (0) #ifdef __cplusplus } #endif # 244 "../mesa/src/util/u_dynarray.h" #endif /* U_DYNARRAY_H */ # 246 "../mesa/src/util/u_dynarray.h" #endif /* u_dynarray.h expanded by -frewrite-includes */ # 57 "../mesa/src/mesa/main/mtypes.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vbo.h expanded by -frewrite-includes */ #include "vbo/vbo.h" #else /* vbo.h expanded by -frewrite-includes */ # 57 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/mesa/vbo/vbo.h" 1 /* * mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \brief Public interface to the VBO module * \author Keith Whitwell */ #ifndef _VBO_H #define _VBO_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/vbo/vbo.h" # 35 "../mesa/src/mesa/vbo/vbo.h" #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/vbo/vbo.h" # 36 "../mesa/src/mesa/vbo/vbo.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* dd.h expanded by -frewrite-includes */ #include "main/dd.h" #else /* dd.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/vbo/vbo.h" # 1 "../mesa/src/mesa/main/dd.h" 1 /** * \file dd.h * Device driver interfaces. */ /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef DD_INCLUDED #define DD_INCLUDED #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/dd.h" # 35 "../mesa/src/mesa/main/dd.h" #if 0 /* expanded by -frewrite-includes */ #include "formats.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/dd.h" # 36 "../mesa/src/mesa/main/dd.h" #if 0 /* expanded by -frewrite-includes */ #include "menums.h" #endif /* expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/dd.h" # 37 "../mesa/src/mesa/main/dd.h" #if 0 /* expanded by -frewrite-includes */ #include "compiler/shader_enums.h" #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/dd.h" # 38 "../mesa/src/mesa/main/dd.h" #if 0 /* disabled by -frewrite-includes */ #if defined(_WIN32) && defined(_WINDOWS_) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 40 "../mesa/src/mesa/main/dd.h" #error "Should not include here" #endif # 42 "../mesa/src/mesa/main/dd.h" struct gl_buffer_object; struct gl_context; struct gl_display_list; struct gl_framebuffer; struct gl_image_unit; struct gl_pixelstore_attrib; struct gl_program; struct gl_renderbuffer; struct gl_renderbuffer_attachment; struct gl_shader; struct gl_shader_program; struct gl_texture_image; struct gl_texture_object; struct gl_memory_info; struct gl_memory_object; struct gl_query_object; struct gl_sampler_object; struct gl_transform_feedback_object; struct gl_vertex_array_object; struct ati_fragment_shader; struct util_queue_monitoring; struct pipe_draw_info; struct pipe_draw_indirect_info; struct pipe_draw_start_count_bias; struct pipe_vertex_state; struct pipe_draw_vertex_state_info; struct pipe_vertex_buffer; struct pipe_vertex_element; /* GL_ARB_vertex_buffer_object */ /* Modifies GL_MAP_UNSYNCHRONIZED_BIT to allow driver to fail (return * NULL) if buffer is unavailable for immediate mapping. * * Does GL_MAP_INVALIDATE_RANGE_BIT do this? It seems so, but it * would require more book-keeping in the driver than seems necessary * at this point. * * Does GL_MAP_INVALIDATE_BUFFER_BIT do this? Not really -- we don't * want to provoke the driver to throw away the old storage, we will * respect the contents of already referenced data. */ #define MESA_MAP_NOWAIT_BIT 0x4000 /* Mapping a buffer is allowed from any thread. */ #define MESA_MAP_THREAD_SAFE_BIT 0x8000 /* This buffer will only be mapped/unmapped once */ #define MESA_MAP_ONCE 0x10000 /* This BufferStorage flag indicates that the buffer will be used * by pipe_vertex_state, which doesn't track buffer busyness and doesn't * support invalidations. */ #define MESA_GALLIUM_VERTEX_STATE_STORAGE 0x20000 /** * Device driver function table. * Core Mesa uses these function pointers to call into device drivers. * Most of these functions directly correspond to OpenGL state commands. * Core Mesa will call these functions after error checking has been done * so that the drivers don't have to worry about error testing. * * Vertex transformation/clipping/lighting is patched into the T&L module. * Rasterization functions are patched into the swrast module. * * Note: when new functions are added here, the drivers/common/driverfuncs.c * file should be updated too!!! */ struct dd_function_table { /** * \name Vertex/fragment program functions */ /** Allocate a new program */ struct gl_program * (*NewProgram)(struct gl_context *ctx, gl_shader_stage stage, GLuint id, bool is_arb_asm); /** * \name Draw functions. */ /*@{*/ /** * For indirect array drawing: * * typedef struct { * GLuint count; * GLuint primCount; * GLuint first; * GLuint baseInstance; // in GL 4.2 and later, must be zero otherwise * } DrawArraysIndirectCommand; * * For indirect indexed drawing: * * typedef struct { * GLuint count; * GLuint primCount; * GLuint firstIndex; * GLint baseVertex; * GLuint baseInstance; // in GL 4.2 and later, must be zero otherwise * } DrawElementsIndirectCommand; */ /** * The basic draw function used to implement glDrawArrays, glDrawElements, * multidraws, and instancing. * * The interface is identical to pipe_context::draw_vbo. */ void (*DrawGallium)(struct gl_context *ctx, const struct pipe_draw_info *info, unsigned drawid_offset, const struct pipe_draw_indirect_info *indirect, const struct pipe_draw_start_count_bias *draws, unsigned num_draws); /** * Same as DrawGallium, but mode can also change between draws. * * "info" is not const and the following fields can be changed by * the callee in addition to the fields listed by DrawGallium: * - info->mode * * This function exists to decrease complexity of DrawGallium. */ void (*DrawGalliumMultiMode)(struct gl_context *ctx, struct pipe_draw_info *info, const struct pipe_draw_start_count_bias *draws, const unsigned char *mode, unsigned num_draws); /*@}*/ /** * \name Support for multiple T&L engines */ /*@{*/ /** * Set by the driver-supplied T&L engine. * * Set to PRIM_OUTSIDE_BEGIN_END when outside glBegin()/glEnd(). */ GLuint CurrentExecPrimitive; /** * Current glBegin state of an in-progress compilation. May be * GL_POINTS, GL_TRIANGLE_STRIP, etc. or PRIM_OUTSIDE_BEGIN_END * or PRIM_UNKNOWN. */ GLuint CurrentSavePrimitive; #define FLUSH_STORED_VERTICES 0x1 #define FLUSH_UPDATE_CURRENT 0x2 /** * Set by the driver-supplied T&L engine whenever vertices are buffered * between glBegin()/glEnd() objects or __struct gl_contextRec::Current * is not updated. A bitmask of the FLUSH_x values above. * * The dd_function_table::FlushVertices call below may be used to resolve * these conditions. */ GLbitfield NeedFlush; /** Need to call vbo_save_SaveFlushVertices() upon state change? */ GLboolean SaveNeedFlush; /**@}*/ /** * Query reset status for GL_ARB_robustness * * Per \c glGetGraphicsResetStatusARB, this function should return a * non-zero value once after a reset. If a reset is non-atomic, the * non-zero status should be returned for the duration of the reset. */ GLenum (*GetGraphicsResetStatus)(struct gl_context *ctx); /** * \name GL_ARB_get_program_binary */ /*@{*/ /** * Calls to retrieve/store a binary serialized copy of the current program. */ void (*ProgramBinarySerializeDriverBlob)(struct gl_context *ctx, struct gl_shader_program *shProg, struct gl_program *prog); void (*ProgramBinaryDeserializeDriverBlob)(struct gl_context *ctx, struct gl_shader_program *shProg, struct gl_program *prog); /*@}*/ /** * \name Disk shader cache functions */ /*@{*/ /** * Called to initialize gl_program::driver_cache_blob (and size) with a * ralloc allocated buffer. * * This buffer will be saved and restored as part of the gl_program * serialization and deserialization. */ void (*ShaderCacheSerializeDriverBlob)(struct gl_context *ctx, struct gl_program *prog); /*@}*/ }; #endif /* DD_INCLUDED */ # 253 "../mesa/src/mesa/main/dd.h" #endif /* dd.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/vbo/vbo.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* draw.h expanded by -frewrite-includes */ #include "main/draw.h" #else /* draw.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/vbo/vbo.h" # 1 "../mesa/src/mesa/main/draw.h" 1 /* * mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \brief Array type draw functions, the main workhorse of any OpenGL API * \author Keith Whitwell */ #ifndef DRAW_H #define DRAW_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/draw.h" # 35 "../mesa/src/mesa/main/draw.h" #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/draw.h" # 36 "../mesa/src/mesa/main/draw.h" #ifdef __cplusplus extern "C" { #endif # 40 "../mesa/src/mesa/main/draw.h" struct gl_context; struct gl_vertex_array_object; struct _mesa_prim { GLubyte mode; /**< GL_POINTS, GL_LINES, GL_QUAD_STRIP, etc */ /** * tnl: If true, line stipple emulation will reset the pattern walker. * vbo: If false and the primitive is a line loop, the first vertex is * the beginning of the line loop and it won't be drawn. * Instead, it will be moved to the end. */ bool begin; /** * tnl: If true and the primitive is a line loop, it will be closed. * vbo: Same as tnl. */ bool end; GLuint start; GLuint count; GLint basevertex; GLuint draw_id; }; /* Would like to call this a "vbo_index_buffer", but this would be * confusing as the indices are not neccessarily yet in a non-null * buffer object. */ struct _mesa_index_buffer { GLuint count; uint8_t index_size_shift; /* logbase2(index_size) */ struct gl_buffer_object *obj; const void *ptr; }; void _mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield varying_inputs); void _mesa_set_draw_vao(struct gl_context *ctx, struct gl_vertex_array_object *vao); void _mesa_save_and_set_draw_vao(struct gl_context *ctx, struct gl_vertex_array_object *vao, GLbitfield vp_input_filter, struct gl_vertex_array_object **old_vao, GLbitfield *old_vp_input_filter); void _mesa_restore_draw_vao(struct gl_context *ctx, struct gl_vertex_array_object *saved, GLbitfield saved_vp_input_filter); void _mesa_bitmap(struct gl_context *ctx, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap, struct pipe_resource *tex); static inline unsigned _mesa_get_index_size_shift(GLenum type) { /* The type is already validated, so use a fast conversion. * * GL_UNSIGNED_BYTE - GL_UNSIGNED_BYTE = 0 * GL_UNSIGNED_SHORT - GL_UNSIGNED_BYTE = 2 * GL_UNSIGNED_INT - GL_UNSIGNED_BYTE = 4 * * Divide by 2 to get 0,1,2. */ return (type - GL_UNSIGNED_BYTE) >> 1; } static inline bool _mesa_is_index_type_valid(GLenum type) { /* GL_UNSIGNED_BYTE = 0x1401 * GL_UNSIGNED_SHORT = 0x1403 * GL_UNSIGNED_INT = 0x1405 * * The trick is that bit 1 and bit 2 mean USHORT and UINT, respectively. * After clearing those two bits (with ~6), we should get UBYTE. * Both bits can't be set, because the enum would be greater than UINT. */ return type <= GL_UNSIGNED_INT && (type & ~6) == GL_UNSIGNED_BYTE; } #ifdef __cplusplus } // extern "C" #endif # 134 "../mesa/src/mesa/main/draw.h" #endif # 136 "../mesa/src/mesa/main/draw.h" #endif /* draw.h expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/vbo/vbo.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* macros.h expanded by -frewrite-includes */ #include "main/macros.h" #else /* macros.h expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/vbo/vbo.h" # 1 "../mesa/src/mesa/main/macros.h" 1 /** * \file macros.h * A collection of useful macros. */ /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef MACROS_H #define MACROS_H #if 0 /* expanded by -frewrite-includes */ #include "util/macros.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/macros.h" # 35 "../mesa/src/mesa/main/macros.h" #if 0 /* expanded by -frewrite-includes */ #include "util/u_math.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/macros.h" # 36 "../mesa/src/mesa/main/macros.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* rounding.h expanded by -frewrite-includes */ #include "util/rounding.h" #else /* rounding.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/macros.h" # 1 "../mesa/src/util/rounding.h" 1 /* * Copyright © 2015 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. */ #ifndef _ROUNDING_H #define _ROUNDING_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 27 "../mesa/src/util/rounding.h" # 28 "../mesa/src/util/rounding.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 28 "../mesa/src/util/rounding.h" # 29 "../mesa/src/util/rounding.h" #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/util/rounding.h" # 30 "../mesa/src/util/rounding.h" #if 0 /* disabled by -frewrite-includes */ #if defined(__SSE__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) || (defined(_M_X64) && !defined(_M_ARM64EC)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 32 "../mesa/src/util/rounding.h" #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* xmmintrin.h expanded by -frewrite-includes */ #include #else /* xmmintrin.h expanded by -frewrite-includes */ # 32 "../mesa/src/util/rounding.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 1 3 /*===---- xmmintrin.h - SSE intrinsics -------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __XMMINTRIN_H #define __XMMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mmintrin.h expanded by -frewrite-includes */ #include #else /* mmintrin.h expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 1 3 /*===---- mmintrin.h - MMX intrinsics --------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __MMINTRIN_H #define __MMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 typedef long long __m64 __attribute__((__vector_size__(8), __aligned__(8))); typedef long long __v1di __attribute__((__vector_size__(8))); typedef int __v2si __attribute__((__vector_size__(8))); typedef short __v4hi __attribute__((__vector_size__(8))); typedef char __v8qi __attribute__((__vector_size__(8))); /* Unsigned types */ typedef unsigned long long __v1du __attribute__ ((__vector_size__ (8))); typedef unsigned int __v2su __attribute__ ((__vector_size__ (8))); typedef unsigned short __v4hu __attribute__((__vector_size__(8))); typedef unsigned char __v8qu __attribute__((__vector_size__(8))); /* We need an explicitly signed variant for char. Note that this shouldn't * appear in the interface though. */ typedef signed char __v8qs __attribute__((__vector_size__(8))); /* SSE/SSE2 types */ typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16))); typedef long long __v2di __attribute__ ((__vector_size__ (16))); typedef int __v4si __attribute__((__vector_size__(16))); typedef short __v8hi __attribute__((__vector_size__(16))); typedef char __v16qi __attribute__((__vector_size__(16))); /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #define __DEFAULT_FN_ATTRS_SSE2 \ __attribute__((__always_inline__, __nodebug__, \ __target__("sse2,no-evex512"), __min_vector_width__(128))) #else # 47 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #define __DEFAULT_FN_ATTRS_SSE2 \ __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \ __min_vector_width__(128))) #endif # 51 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && (__cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 53 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr #else # 55 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 #endif # 57 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #define __trunc64(x) \ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) #define __anyext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, -1, -1) /// Clears the MMX state by setting the state of the x87 stack registers /// to empty. /// /// \headerfile /// /// This intrinsic corresponds to the EMMS instruction. /// static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("mmx,no-evex512"))) _mm_empty(void) { __builtin_ia32_emms(); } /// Constructs a 64-bit integer vector, setting the lower 32 bits to the /// value of the 32-bit integer parameter and setting the upper 32 bits to 0. /// /// \headerfile /// /// This intrinsic corresponds to the MOVD instruction. /// /// \param __i /// A 32-bit integer value. /// \returns A 64-bit integer vector. The lower 32 bits contain the value of the /// parameter. The upper 32 bits are set to 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi32_si64(int __i) { return __extension__ (__m64)(__v2si){__i, 0}; } /// Returns the lower 32 bits of a 64-bit integer vector as a 32-bit /// signed integer. /// /// \headerfile /// /// This intrinsic corresponds to the MOVD instruction. /// /// \param __m /// A 64-bit integer vector. /// \returns A 32-bit signed integer value containing the lower 32 bits of the /// parameter. static __inline__ int __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi64_si32(__m64 __m) { return ((__v2si)__m)[0]; } /// Casts a 64-bit signed integer value into a 64-bit integer vector. /// /// \headerfile /// /// This intrinsic corresponds to the MOVQ instruction. /// /// \param __i /// A 64-bit signed integer. /// \returns A 64-bit integer vector containing the same bitwise pattern as the /// parameter. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtsi64_m64(long long __i) { return (__m64)__i; } /// Casts a 64-bit integer vector into a 64-bit signed integer value. /// /// \headerfile /// /// This intrinsic corresponds to the MOVQ instruction. /// /// \param __m /// A 64-bit integer vector. /// \returns A 64-bit signed integer containing the same bitwise pattern as the /// parameter. static __inline__ long long __DEFAULT_FN_ATTRS_SSE2 _mm_cvtm64_si64(__m64 __m) { return (long long)__m; } /// Converts, with saturation, 16-bit signed integers from both 64-bit integer /// vector parameters of [4 x i16] into 8-bit signed integer values, and /// constructs a 64-bit integer vector of [8 x i8] as the result. /// /// Positive values greater than 0x7F are saturated to 0x7F. Negative values /// less than 0x80 are saturated to 0x80. /// /// \headerfile /// /// This intrinsic corresponds to the PACKSSWB instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are /// written to the lower 32 bits of the result. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are /// written to the upper 32 bits of the result. /// \returns A 64-bit integer vector of [8 x i8] containing the converted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pi16(__m64 __m1, __m64 __m2) { return __trunc64(__builtin_ia32_packsswb128( (__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){})); } /// Converts, with saturation, 32-bit signed integers from both 64-bit integer /// vector parameters of [2 x i32] into 16-bit signed integer values, and /// constructs a 64-bit integer vector of [4 x i16] as the result. /// /// Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative /// values less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the PACKSSDW instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are /// written to the lower 32 bits of the result. /// \param __m2 /// A 64-bit integer vector of [2 x i32]. The converted [2 x i16] values are /// written to the upper 32 bits of the result. /// \returns A 64-bit integer vector of [4 x i16] containing the converted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pi32(__m64 __m1, __m64 __m2) { return __trunc64(__builtin_ia32_packssdw128( (__v4si)__builtin_shufflevector(__m1, __m2, 0, 1), (__v4si){})); } /// Converts, with saturation, 16-bit signed integers from both 64-bit integer /// vector parameters of [4 x i16] into 8-bit unsigned integer values, and /// constructs a 64-bit integer vector of [8 x i8] as the result. /// /// Values greater than 0xFF are saturated to 0xFF. Values less than 0 are /// saturated to 0. /// /// \headerfile /// /// This intrinsic corresponds to the PACKUSWB instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are /// written to the lower 32 bits of the result. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. The converted [4 x i8] values are /// written to the upper 32 bits of the result. /// \returns A 64-bit integer vector of [8 x i8] containing the converted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_packs_pu16(__m64 __m1, __m64 __m2) { return __trunc64(__builtin_ia32_packuswb128( (__v8hi)__builtin_shufflevector(__m1, __m2, 0, 1), (__v8hi){})); } /// Unpacks the upper 32 bits from two 64-bit integer vectors of [8 x i8] /// and interleaves them into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PUNPCKHBW instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. \n /// Bits [39:32] are written to bits [7:0] of the result. \n /// Bits [47:40] are written to bits [23:16] of the result. \n /// Bits [55:48] are written to bits [39:32] of the result. \n /// Bits [63:56] are written to bits [55:48] of the result. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// Bits [39:32] are written to bits [15:8] of the result. \n /// Bits [47:40] are written to bits [31:24] of the result. \n /// Bits [55:48] are written to bits [47:40] of the result. \n /// Bits [63:56] are written to bits [63:56] of the result. /// \returns A 64-bit integer vector of [8 x i8] containing the interleaved /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_shufflevector((__v8qi)__m1, (__v8qi)__m2, 4, 12, 5, 13, 6, 14, 7, 15); } /// Unpacks the upper 32 bits from two 64-bit integer vectors of /// [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PUNPCKHWD instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// Bits [47:32] are written to bits [15:0] of the result. \n /// Bits [63:48] are written to bits [47:32] of the result. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// Bits [47:32] are written to bits [31:16] of the result. \n /// Bits [63:48] are written to bits [63:48] of the result. /// \returns A 64-bit integer vector of [4 x i16] containing the interleaved /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2, 2, 6, 3, 7); } /// Unpacks the upper 32 bits from two 64-bit integer vectors of /// [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PUNPCKHDQ instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to /// the lower 32 bits of the result. /// \param __m2 /// A 64-bit integer vector of [2 x i32]. The upper 32 bits are written to /// the upper 32 bits of the result. /// \returns A 64-bit integer vector of [2 x i32] containing the interleaved /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpackhi_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 1, 3); } /// Unpacks the lower 32 bits from two 64-bit integer vectors of [8 x i8] /// and interleaves them into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PUNPCKLBW instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. /// Bits [7:0] are written to bits [7:0] of the result. \n /// Bits [15:8] are written to bits [23:16] of the result. \n /// Bits [23:16] are written to bits [39:32] of the result. \n /// Bits [31:24] are written to bits [55:48] of the result. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// Bits [7:0] are written to bits [15:8] of the result. \n /// Bits [15:8] are written to bits [31:24] of the result. \n /// Bits [23:16] are written to bits [47:40] of the result. \n /// Bits [31:24] are written to bits [63:56] of the result. /// \returns A 64-bit integer vector of [8 x i8] containing the interleaved /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_shufflevector((__v8qi)__m1, (__v8qi)__m2, 0, 8, 1, 9, 2, 10, 3, 11); } /// Unpacks the lower 32 bits from two 64-bit integer vectors of /// [4 x i16] and interleaves them into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PUNPCKLWD instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// Bits [15:0] are written to bits [15:0] of the result. \n /// Bits [31:16] are written to bits [47:32] of the result. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// Bits [15:0] are written to bits [31:16] of the result. \n /// Bits [31:16] are written to bits [63:48] of the result. /// \returns A 64-bit integer vector of [4 x i16] containing the interleaved /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_shufflevector((__v4hi)__m1, (__v4hi)__m2, 0, 4, 1, 5); } /// Unpacks the lower 32 bits from two 64-bit integer vectors of /// [2 x i32] and interleaves them into a 64-bit integer vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PUNPCKLDQ instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to /// the lower 32 bits of the result. /// \param __m2 /// A 64-bit integer vector of [2 x i32]. The lower 32 bits are written to /// the upper 32 bits of the result. /// \returns A 64-bit integer vector of [2 x i32] containing the interleaved /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_unpacklo_pi32(__m64 __m1, __m64 __m2) { return (__m64)__builtin_shufflevector((__v2si)__m1, (__v2si)__m2, 0, 2); } /// Adds each 8-bit integer element of the first 64-bit integer vector /// of [8 x i8] to the corresponding 8-bit integer element of the second /// 64-bit integer vector of [8 x i8]. The lower 8 bits of the results are /// packed into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the sums of both /// parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi8(__m64 __m1, __m64 __m2) { return (__m64)(((__v8qu)__m1) + ((__v8qu)__m2)); } /// Adds each 16-bit integer element of the first 64-bit integer vector /// of [4 x i16] to the corresponding 16-bit integer element of the second /// 64-bit integer vector of [4 x i16]. The lower 16 bits of the results are /// packed into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the sums of both /// parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi16(__m64 __m1, __m64 __m2) { return (__m64)(((__v4hu)__m1) + ((__v4hu)__m2)); } /// Adds each 32-bit integer element of the first 64-bit integer vector /// of [2 x i32] to the corresponding 32-bit integer element of the second /// 64-bit integer vector of [2 x i32]. The lower 32 bits of the results are /// packed into a 64-bit integer vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDD instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32]. /// \param __m2 /// A 64-bit integer vector of [2 x i32]. /// \returns A 64-bit integer vector of [2 x i32] containing the sums of both /// parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_add_pi32(__m64 __m1, __m64 __m2) { return (__m64)(((__v2su)__m1) + ((__v2su)__m2)); } /// Adds, with saturation, each 8-bit signed integer element of the first /// 64-bit integer vector of [8 x i8] to the corresponding 8-bit signed /// integer element of the second 64-bit integer vector of [8 x i8]. /// /// Positive sums greater than 0x7F are saturated to 0x7F. Negative sums /// less than 0x80 are saturated to 0x80. The results are packed into a /// 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDSB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated sums /// of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_add_sat((__v8qs)__m1, (__v8qs)__m2); } /// Adds, with saturation, each 16-bit signed integer element of the first /// 64-bit integer vector of [4 x i16] to the corresponding 16-bit signed /// integer element of the second 64-bit integer vector of [4 x i16]. /// /// Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums /// less than 0x8000 are saturated to 0x8000. The results are packed into a /// 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDSW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated sums /// of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_add_sat((__v4hi)__m1, (__v4hi)__m2); } /// Adds, with saturation, each 8-bit unsigned integer element of the first /// 64-bit integer vector of [8 x i8] to the corresponding 8-bit unsigned /// integer element of the second 64-bit integer vector of [8 x i8]. /// /// Sums greater than 0xFF are saturated to 0xFF. The results are packed /// into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDUSB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated /// unsigned sums of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_add_sat((__v8qu)__m1, (__v8qu)__m2); } /// Adds, with saturation, each 16-bit unsigned integer element of the first /// 64-bit integer vector of [4 x i16] to the corresponding 16-bit unsigned /// integer element of the second 64-bit integer vector of [4 x i16]. /// /// Sums greater than 0xFFFF are saturated to 0xFFFF. The results are packed /// into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PADDUSW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated /// unsigned sums of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_adds_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_add_sat((__v4hu)__m1, (__v4hu)__m2); } /// Subtracts each 8-bit integer element of the second 64-bit integer /// vector of [8 x i8] from the corresponding 8-bit integer element of the /// first 64-bit integer vector of [8 x i8]. The lower 8 bits of the results /// are packed into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [8 x i8] containing the subtrahends. /// \returns A 64-bit integer vector of [8 x i8] containing the differences of /// both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi8(__m64 __m1, __m64 __m2) { return (__m64)(((__v8qu)__m1) - ((__v8qu)__m2)); } /// Subtracts each 16-bit integer element of the second 64-bit integer /// vector of [4 x i16] from the corresponding 16-bit integer element of the /// first 64-bit integer vector of [4 x i16]. The lower 16 bits of the /// results are packed into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [4 x i16] containing the subtrahends. /// \returns A 64-bit integer vector of [4 x i16] containing the differences of /// both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi16(__m64 __m1, __m64 __m2) { return (__m64)(((__v4hu)__m1) - ((__v4hu)__m2)); } /// Subtracts each 32-bit integer element of the second 64-bit integer /// vector of [2 x i32] from the corresponding 32-bit integer element of the /// first 64-bit integer vector of [2 x i32]. The lower 32 bits of the /// results are packed into a 64-bit integer vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBD instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [2 x i32] containing the subtrahends. /// \returns A 64-bit integer vector of [2 x i32] containing the differences of /// both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sub_pi32(__m64 __m1, __m64 __m2) { return (__m64)(((__v2su)__m1) - ((__v2su)__m2)); } /// Subtracts, with saturation, each 8-bit signed integer element of the second /// 64-bit integer vector of [8 x i8] from the corresponding 8-bit signed /// integer element of the first 64-bit integer vector of [8 x i8]. /// /// Positive results greater than 0x7F are saturated to 0x7F. Negative /// results less than 0x80 are saturated to 0x80. The results are packed /// into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBSB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [8 x i8] containing the subtrahends. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated /// differences of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pi8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_sub_sat((__v8qs)__m1, (__v8qs)__m2); } /// Subtracts, with saturation, each 16-bit signed integer element of the /// second 64-bit integer vector of [4 x i16] from the corresponding 16-bit /// signed integer element of the first 64-bit integer vector of [4 x i16]. /// /// Positive results greater than 0x7FFF are saturated to 0x7FFF. Negative /// results less than 0x8000 are saturated to 0x8000. The results are packed /// into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBSW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [4 x i16] containing the subtrahends. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated /// differences of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pi16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_sub_sat((__v4hi)__m1, (__v4hi)__m2); } /// Subtracts each 8-bit unsigned integer element of the second 64-bit /// integer vector of [8 x i8] from the corresponding 8-bit unsigned integer /// element of the first 64-bit integer vector of [8 x i8]. /// /// If an element of the first vector is less than the corresponding element /// of the second vector, the result is saturated to 0. The results are /// packed into a 64-bit integer vector of [8 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBUSB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [8 x i8] containing the subtrahends. /// \returns A 64-bit integer vector of [8 x i8] containing the saturated /// differences of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pu8(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_sub_sat((__v8qu)__m1, (__v8qu)__m2); } /// Subtracts each 16-bit unsigned integer element of the second 64-bit /// integer vector of [4 x i16] from the corresponding 16-bit unsigned /// integer element of the first 64-bit integer vector of [4 x i16]. /// /// If an element of the first vector is less than the corresponding element /// of the second vector, the result is saturated to 0. The results are /// packed into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBUSW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16] containing the minuends. /// \param __m2 /// A 64-bit integer vector of [4 x i16] containing the subtrahends. /// \returns A 64-bit integer vector of [4 x i16] containing the saturated /// differences of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_subs_pu16(__m64 __m1, __m64 __m2) { return (__m64)__builtin_elementwise_sub_sat((__v4hu)__m1, (__v4hu)__m2); } /// Multiplies each 16-bit signed integer element of the first 64-bit /// integer vector of [4 x i16] by the corresponding 16-bit signed integer /// element of the second 64-bit integer vector of [4 x i16] and get four /// 32-bit products. Adds adjacent pairs of products to get two 32-bit sums. /// The lower 32 bits of these two sums are packed into a 64-bit integer /// vector of [2 x i32]. /// /// For example, bits [15:0] of both parameters are multiplied, bits [31:16] /// of both parameters are multiplied, and the sum of both results is written /// to bits [31:0] of the result. /// /// \headerfile /// /// This intrinsic corresponds to the PMADDWD instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [2 x i32] containing the sums of /// products of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_madd_pi16(__m64 __m1, __m64 __m2) { return __trunc64(__builtin_ia32_pmaddwd128((__v8hi)__anyext128(__m1), (__v8hi)__anyext128(__m2))); } /// Multiplies each 16-bit signed integer element of the first 64-bit /// integer vector of [4 x i16] by the corresponding 16-bit signed integer /// element of the second 64-bit integer vector of [4 x i16]. Packs the upper /// 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PMULHW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the upper 16 bits /// of the products of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mulhi_pi16(__m64 __m1, __m64 __m2) { return __trunc64(__builtin_ia32_pmulhw128((__v8hi)__anyext128(__m1), (__v8hi)__anyext128(__m2))); } /// Multiplies each 16-bit signed integer element of the first 64-bit /// integer vector of [4 x i16] by the corresponding 16-bit signed integer /// element of the second 64-bit integer vector of [4 x i16]. Packs the lower /// 16 bits of the 32-bit products into a 64-bit integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PMULLW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the lower 16 bits /// of the products of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mullo_pi16(__m64 __m1, __m64 __m2) { return (__m64)(((__v4hu)__m1) * ((__v4hu)__m2)); } /// Left-shifts each 16-bit signed integer element of the first /// parameter, which is a 64-bit integer vector of [4 x i16], by the number /// of bits specified by the second parameter, which is a 64-bit integer. The /// lower 16 bits of the results are packed into a 64-bit integer vector of /// [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSLLW instruction. /// /// \param __m /// A 64-bit integer vector of [4 x i16]. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted /// values. If \a __count is greater or equal to 16, the result is set to all /// 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_pi16(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psllw128((__v8hi)__anyext128(__m), (__v8hi)__anyext128(__count))); } /// Left-shifts each 16-bit signed integer element of a 64-bit integer /// vector of [4 x i16] by the number of bits specified by a 32-bit integer. /// The lower 16 bits of the results are packed into a 64-bit integer vector /// of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSLLW instruction. /// /// \param __m /// A 64-bit integer vector of [4 x i16]. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector of [4 x i16] containing the left-shifted /// values. If \a __count is greater or equal to 16, the result is set to all /// 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_pi16(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psllwi128((__v8hi)__anyext128(__m), __count)); } /// Left-shifts each 32-bit signed integer element of the first /// parameter, which is a 64-bit integer vector of [2 x i32], by the number /// of bits specified by the second parameter, which is a 64-bit integer. The /// lower 32 bits of the results are packed into a 64-bit integer vector of /// [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSLLD instruction. /// /// \param __m /// A 64-bit integer vector of [2 x i32]. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted /// values. If \a __count is greater or equal to 32, the result is set to all /// 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_pi32(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_pslld128((__v4si)__anyext128(__m), (__v4si)__anyext128(__count))); } /// Left-shifts each 32-bit signed integer element of a 64-bit integer /// vector of [2 x i32] by the number of bits specified by a 32-bit integer. /// The lower 32 bits of the results are packed into a 64-bit integer vector /// of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSLLD instruction. /// /// \param __m /// A 64-bit integer vector of [2 x i32]. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector of [2 x i32] containing the left-shifted /// values. If \a __count is greater or equal to 32, the result is set to all /// 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_pi32(__m64 __m, int __count) { return __trunc64(__builtin_ia32_pslldi128((__v4si)__anyext128(__m), __count)); } /// Left-shifts the first 64-bit integer parameter by the number of bits /// specified by the second 64-bit integer parameter. The lower 64 bits of /// result are returned. /// /// \headerfile /// /// This intrinsic corresponds to the PSLLQ instruction. /// /// \param __m /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector containing the left-shifted value. If /// \a __count is greater or equal to 64, the result is set to 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sll_si64(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psllq128((__v2di)__anyext128(__m), (__v2di)__anyext128(__count))); } /// Left-shifts the first parameter, which is a 64-bit integer, by the /// number of bits specified by the second parameter, which is a 32-bit /// integer. The lower 64 bits of result are returned. /// /// \headerfile /// /// This intrinsic corresponds to the PSLLQ instruction. /// /// \param __m /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector containing the left-shifted value. If /// \a __count is greater or equal to 64, the result is set to 0. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_slli_si64(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psllqi128((__v2di)__anyext128(__m), __count)); } /// Right-shifts each 16-bit integer element of the first parameter, /// which is a 64-bit integer vector of [4 x i16], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// /// High-order bits are filled with the sign bit of the initial value of each /// 16-bit element. The 16-bit results are packed into a 64-bit integer /// vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRAW instruction. /// /// \param __m /// A 64-bit integer vector of [4 x i16]. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sra_pi16(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psraw128((__v8hi)__anyext128(__m), (__v8hi)__anyext128(__count))); } /// Right-shifts each 16-bit integer element of a 64-bit integer vector /// of [4 x i16] by the number of bits specified by a 32-bit integer. /// /// High-order bits are filled with the sign bit of the initial value of each /// 16-bit element. The 16-bit results are packed into a 64-bit integer /// vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRAW instruction. /// /// \param __m /// A 64-bit integer vector of [4 x i16]. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srai_pi16(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psrawi128((__v8hi)__anyext128(__m), __count)); } /// Right-shifts each 32-bit integer element of the first parameter, /// which is a 64-bit integer vector of [2 x i32], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// /// High-order bits are filled with the sign bit of the initial value of each /// 32-bit element. The 32-bit results are packed into a 64-bit integer /// vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRAD instruction. /// /// \param __m /// A 64-bit integer vector of [2 x i32]. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sra_pi32(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psrad128((__v4si)__anyext128(__m), (__v4si)__anyext128(__count))); } /// Right-shifts each 32-bit integer element of a 64-bit integer vector /// of [2 x i32] by the number of bits specified by a 32-bit integer. /// /// High-order bits are filled with the sign bit of the initial value of each /// 32-bit element. The 32-bit results are packed into a 64-bit integer /// vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRAD instruction. /// /// \param __m /// A 64-bit integer vector of [2 x i32]. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srai_pi32(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psradi128((__v4si)__anyext128(__m), __count)); } /// Right-shifts each 16-bit integer element of the first parameter, /// which is a 64-bit integer vector of [4 x i16], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// /// High-order bits are cleared. The 16-bit results are packed into a 64-bit /// integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRLW instruction. /// /// \param __m /// A 64-bit integer vector of [4 x i16]. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_pi16(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psrlw128((__v8hi)__anyext128(__m), (__v8hi)__anyext128(__count))); } /// Right-shifts each 16-bit integer element of a 64-bit integer vector /// of [4 x i16] by the number of bits specified by a 32-bit integer. /// /// High-order bits are cleared. The 16-bit results are packed into a 64-bit /// integer vector of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRLW instruction. /// /// \param __m /// A 64-bit integer vector of [4 x i16]. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector of [4 x i16] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_pi16(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psrlwi128((__v8hi)__anyext128(__m), __count)); } /// Right-shifts each 32-bit integer element of the first parameter, /// which is a 64-bit integer vector of [2 x i32], by the number of bits /// specified by the second parameter, which is a 64-bit integer. /// /// High-order bits are cleared. The 32-bit results are packed into a 64-bit /// integer vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRLD instruction. /// /// \param __m /// A 64-bit integer vector of [2 x i32]. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_pi32(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psrld128((__v4si)__anyext128(__m), (__v4si)__anyext128(__count))); } /// Right-shifts each 32-bit integer element of a 64-bit integer vector /// of [2 x i32] by the number of bits specified by a 32-bit integer. /// /// High-order bits are cleared. The 32-bit results are packed into a 64-bit /// integer vector of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the PSRLD instruction. /// /// \param __m /// A 64-bit integer vector of [2 x i32]. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector of [2 x i32] containing the right-shifted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_pi32(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psrldi128((__v4si)__anyext128(__m), __count)); } /// Right-shifts the first 64-bit integer parameter by the number of bits /// specified by the second 64-bit integer parameter. /// /// High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the PSRLQ instruction. /// /// \param __m /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \param __count /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \returns A 64-bit integer vector containing the right-shifted value. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srl_si64(__m64 __m, __m64 __count) { return __trunc64(__builtin_ia32_psrlq128((__v2di)__anyext128(__m), (__v2di)__anyext128(__count))); } /// Right-shifts the first parameter, which is a 64-bit integer, by the /// number of bits specified by the second parameter, which is a 32-bit /// integer. /// /// High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the PSRLQ instruction. /// /// \param __m /// A 64-bit integer vector interpreted as a single 64-bit integer. /// \param __count /// A 32-bit integer value. /// \returns A 64-bit integer vector containing the right-shifted value. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_srli_si64(__m64 __m, int __count) { return __trunc64(__builtin_ia32_psrlqi128((__v2di)__anyext128(__m), __count)); } /// Performs a bitwise AND of two 64-bit integer vectors. /// /// \headerfile /// /// This intrinsic corresponds to the PAND instruction. /// /// \param __m1 /// A 64-bit integer vector. /// \param __m2 /// A 64-bit integer vector. /// \returns A 64-bit integer vector containing the bitwise AND of both /// parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_and_si64(__m64 __m1, __m64 __m2) { return (__m64)(((__v1du)__m1) & ((__v1du)__m2)); } /// Performs a bitwise NOT of the first 64-bit integer vector, and then /// performs a bitwise AND of the intermediate result and the second 64-bit /// integer vector. /// /// \headerfile /// /// This intrinsic corresponds to the PANDN instruction. /// /// \param __m1 /// A 64-bit integer vector. The one's complement of this parameter is used /// in the bitwise AND. /// \param __m2 /// A 64-bit integer vector. /// \returns A 64-bit integer vector containing the bitwise AND of the second /// parameter and the one's complement of the first parameter. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_andnot_si64(__m64 __m1, __m64 __m2) { return (__m64)(~((__v1du)__m1) & ((__v1du)__m2)); } /// Performs a bitwise OR of two 64-bit integer vectors. /// /// \headerfile /// /// This intrinsic corresponds to the POR instruction. /// /// \param __m1 /// A 64-bit integer vector. /// \param __m2 /// A 64-bit integer vector. /// \returns A 64-bit integer vector containing the bitwise OR of both /// parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_or_si64(__m64 __m1, __m64 __m2) { return (__m64)(((__v1du)__m1) | ((__v1du)__m2)); } /// Performs a bitwise exclusive OR of two 64-bit integer vectors. /// /// \headerfile /// /// This intrinsic corresponds to the PXOR instruction. /// /// \param __m1 /// A 64-bit integer vector. /// \param __m2 /// A 64-bit integer vector. /// \returns A 64-bit integer vector containing the bitwise exclusive OR of both /// parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_xor_si64(__m64 __m1, __m64 __m2) { return (__m64)(((__v1du)__m1) ^ ((__v1du)__m2)); } /// Compares the 8-bit integer elements of two 64-bit integer vectors of /// [8 x i8] to determine if the element of the first vector is equal to the /// corresponding element of the second vector. /// /// Each comparison returns 0 for false, 0xFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the PCMPEQB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the comparison /// results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi8(__m64 __m1, __m64 __m2) { return (__m64)(((__v8qi)__m1) == ((__v8qi)__m2)); } /// Compares the 16-bit integer elements of two 64-bit integer vectors of /// [4 x i16] to determine if the element of the first vector is equal to the /// corresponding element of the second vector. /// /// Each comparison returns 0 for false, 0xFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the PCMPEQW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the comparison /// results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi16(__m64 __m1, __m64 __m2) { return (__m64)(((__v4hi)__m1) == ((__v4hi)__m2)); } /// Compares the 32-bit integer elements of two 64-bit integer vectors of /// [2 x i32] to determine if the element of the first vector is equal to the /// corresponding element of the second vector. /// /// Each comparison returns 0 for false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the PCMPEQD instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32]. /// \param __m2 /// A 64-bit integer vector of [2 x i32]. /// \returns A 64-bit integer vector of [2 x i32] containing the comparison /// results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpeq_pi32(__m64 __m1, __m64 __m2) { return (__m64)(((__v2si)__m1) == ((__v2si)__m2)); } /// Compares the 8-bit integer elements of two 64-bit integer vectors of /// [8 x i8] to determine if the element of the first vector is greater than /// the corresponding element of the second vector. /// /// Each comparison returns 0 for false, 0xFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the PCMPGTB instruction. /// /// \param __m1 /// A 64-bit integer vector of [8 x i8]. /// \param __m2 /// A 64-bit integer vector of [8 x i8]. /// \returns A 64-bit integer vector of [8 x i8] containing the comparison /// results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi8(__m64 __m1, __m64 __m2) { /* This function always performs a signed comparison, but __v8qi is a char which may be signed or unsigned, so use __v8qs. */ return (__m64)((__v8qs)__m1 > (__v8qs)__m2); } /// Compares the 16-bit integer elements of two 64-bit integer vectors of /// [4 x i16] to determine if the element of the first vector is greater than /// the corresponding element of the second vector. /// /// Each comparison returns 0 for false, 0xFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the PCMPGTW instruction. /// /// \param __m1 /// A 64-bit integer vector of [4 x i16]. /// \param __m2 /// A 64-bit integer vector of [4 x i16]. /// \returns A 64-bit integer vector of [4 x i16] containing the comparison /// results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi16(__m64 __m1, __m64 __m2) { return (__m64)((__v4hi)__m1 > (__v4hi)__m2); } /// Compares the 32-bit integer elements of two 64-bit integer vectors of /// [2 x i32] to determine if the element of the first vector is greater than /// the corresponding element of the second vector. /// /// Each comparison returns 0 for false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the PCMPGTD instruction. /// /// \param __m1 /// A 64-bit integer vector of [2 x i32]. /// \param __m2 /// A 64-bit integer vector of [2 x i32]. /// \returns A 64-bit integer vector of [2 x i32] containing the comparison /// results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cmpgt_pi32(__m64 __m1, __m64 __m2) { return (__m64)((__v2si)__m1 > (__v2si)__m2); } /// Constructs a 64-bit integer vector initialized to zero. /// /// \headerfile /// /// This intrinsic corresponds to the PXOR instruction. /// /// \returns An initialized 64-bit integer vector with all elements set to zero. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_setzero_si64(void) { return __extension__(__m64){0LL}; } /// Constructs a 64-bit integer vector initialized with the specified /// 32-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __i1 /// A 32-bit integer value used to initialize the upper 32 bits of the /// result. /// \param __i0 /// A 32-bit integer value used to initialize the lower 32 bits of the /// result. /// \returns An initialized 64-bit integer vector. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_set_pi32(int __i1, int __i0) { return __extension__(__m64)(__v2si){__i0, __i1}; } /// Constructs a 64-bit integer vector initialized with the specified /// 16-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __s3 /// A 16-bit integer value used to initialize bits [63:48] of the result. /// \param __s2 /// A 16-bit integer value used to initialize bits [47:32] of the result. /// \param __s1 /// A 16-bit integer value used to initialize bits [31:16] of the result. /// \param __s0 /// A 16-bit integer value used to initialize bits [15:0] of the result. /// \returns An initialized 64-bit integer vector. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_set_pi16(short __s3, short __s2, short __s1, short __s0) { return __extension__(__m64)(__v4hi){__s0, __s1, __s2, __s3}; } /// Constructs a 64-bit integer vector initialized with the specified /// 8-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __b7 /// An 8-bit integer value used to initialize bits [63:56] of the result. /// \param __b6 /// An 8-bit integer value used to initialize bits [55:48] of the result. /// \param __b5 /// An 8-bit integer value used to initialize bits [47:40] of the result. /// \param __b4 /// An 8-bit integer value used to initialize bits [39:32] of the result. /// \param __b3 /// An 8-bit integer value used to initialize bits [31:24] of the result. /// \param __b2 /// An 8-bit integer value used to initialize bits [23:16] of the result. /// \param __b1 /// An 8-bit integer value used to initialize bits [15:8] of the result. /// \param __b0 /// An 8-bit integer value used to initialize bits [7:0] of the result. /// \returns An initialized 64-bit integer vector. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_set_pi8(char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { return __extension__(__m64)(__v8qi){__b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7}; } /// Constructs a 64-bit integer vector of [2 x i32], with each of the /// 32-bit integer vector elements set to the specified 32-bit integer /// value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __i /// A 32-bit integer value used to initialize each vector element of the /// result. /// \returns An initialized 64-bit integer vector of [2 x i32]. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_set1_pi32(int __i) { return _mm_set_pi32(__i, __i); } /// Constructs a 64-bit integer vector of [4 x i16], with each of the /// 16-bit integer vector elements set to the specified 16-bit integer /// value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __w /// A 16-bit integer value used to initialize each vector element of the /// result. /// \returns An initialized 64-bit integer vector of [4 x i16]. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_set1_pi16(short __w) { return _mm_set_pi16(__w, __w, __w, __w); } /// Constructs a 64-bit integer vector of [8 x i8], with each of the /// 8-bit integer vector elements set to the specified 8-bit integer value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __b /// An 8-bit integer value used to initialize each vector element of the /// result. /// \returns An initialized 64-bit integer vector of [8 x i8]. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_set1_pi8(char __b) { return _mm_set_pi8(__b, __b, __b, __b, __b, __b, __b, __b); } /// Constructs a 64-bit integer vector, initialized in reverse order with /// the specified 32-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __i0 /// A 32-bit integer value used to initialize the lower 32 bits of the /// result. /// \param __i1 /// A 32-bit integer value used to initialize the upper 32 bits of the /// result. /// \returns An initialized 64-bit integer vector. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_setr_pi32(int __i0, int __i1) { return _mm_set_pi32(__i1, __i0); } /// Constructs a 64-bit integer vector, initialized in reverse order with /// the specified 16-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __w0 /// A 16-bit integer value used to initialize bits [15:0] of the result. /// \param __w1 /// A 16-bit integer value used to initialize bits [31:16] of the result. /// \param __w2 /// A 16-bit integer value used to initialize bits [47:32] of the result. /// \param __w3 /// A 16-bit integer value used to initialize bits [63:48] of the result. /// \returns An initialized 64-bit integer vector. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_setr_pi16(short __w0, short __w1, short __w2, short __w3) { return _mm_set_pi16(__w3, __w2, __w1, __w0); } /// Constructs a 64-bit integer vector, initialized in reverse order with /// the specified 8-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __b0 /// An 8-bit integer value used to initialize bits [7:0] of the result. /// \param __b1 /// An 8-bit integer value used to initialize bits [15:8] of the result. /// \param __b2 /// An 8-bit integer value used to initialize bits [23:16] of the result. /// \param __b3 /// An 8-bit integer value used to initialize bits [31:24] of the result. /// \param __b4 /// An 8-bit integer value used to initialize bits [39:32] of the result. /// \param __b5 /// An 8-bit integer value used to initialize bits [47:40] of the result. /// \param __b6 /// An 8-bit integer value used to initialize bits [55:48] of the result. /// \param __b7 /// An 8-bit integer value used to initialize bits [63:56] of the result. /// \returns An initialized 64-bit integer vector. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR _mm_setr_pi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7) { return _mm_set_pi8(__b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); } #undef __anyext128 #undef __trunc64 #undef __DEFAULT_FN_ATTRS_SSE2 /* Aliases for compatibility. */ #define _m_empty _mm_empty #define _m_from_int _mm_cvtsi32_si64 #define _m_from_int64 _mm_cvtsi64_m64 #define _m_to_int _mm_cvtsi64_si32 #define _m_to_int64 _mm_cvtm64_si64 #define _m_packsswb _mm_packs_pi16 #define _m_packssdw _mm_packs_pi32 #define _m_packuswb _mm_packs_pu16 #define _m_punpckhbw _mm_unpackhi_pi8 #define _m_punpckhwd _mm_unpackhi_pi16 #define _m_punpckhdq _mm_unpackhi_pi32 #define _m_punpcklbw _mm_unpacklo_pi8 #define _m_punpcklwd _mm_unpacklo_pi16 #define _m_punpckldq _mm_unpacklo_pi32 #define _m_paddb _mm_add_pi8 #define _m_paddw _mm_add_pi16 #define _m_paddd _mm_add_pi32 #define _m_paddsb _mm_adds_pi8 #define _m_paddsw _mm_adds_pi16 #define _m_paddusb _mm_adds_pu8 #define _m_paddusw _mm_adds_pu16 #define _m_psubb _mm_sub_pi8 #define _m_psubw _mm_sub_pi16 #define _m_psubd _mm_sub_pi32 #define _m_psubsb _mm_subs_pi8 #define _m_psubsw _mm_subs_pi16 #define _m_psubusb _mm_subs_pu8 #define _m_psubusw _mm_subs_pu16 #define _m_pmaddwd _mm_madd_pi16 #define _m_pmulhw _mm_mulhi_pi16 #define _m_pmullw _mm_mullo_pi16 #define _m_psllw _mm_sll_pi16 #define _m_psllwi _mm_slli_pi16 #define _m_pslld _mm_sll_pi32 #define _m_pslldi _mm_slli_pi32 #define _m_psllq _mm_sll_si64 #define _m_psllqi _mm_slli_si64 #define _m_psraw _mm_sra_pi16 #define _m_psrawi _mm_srai_pi16 #define _m_psrad _mm_sra_pi32 #define _m_psradi _mm_srai_pi32 #define _m_psrlw _mm_srl_pi16 #define _m_psrlwi _mm_srli_pi16 #define _m_psrld _mm_srl_pi32 #define _m_psrldi _mm_srli_pi32 #define _m_psrlq _mm_srl_si64 #define _m_psrlqi _mm_srli_si64 #define _m_pand _mm_and_si64 #define _m_pandn _mm_andnot_si64 #define _m_por _mm_or_si64 #define _m_pxor _mm_xor_si64 #define _m_pcmpeqb _mm_cmpeq_pi8 #define _m_pcmpeqw _mm_cmpeq_pi16 #define _m_pcmpeqd _mm_cmpeq_pi32 #define _m_pcmpgtb _mm_cmpgt_pi8 #define _m_pcmpgtw _mm_cmpgt_pi16 #define _m_pcmpgtd _mm_cmpgt_pi32 #endif /* __MMINTRIN_H */ # 1610 "/home/marcus/llvm20/lib/clang/20/include/mmintrin.h" 3 #endif /* mmintrin.h expanded by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 2 3 typedef int __v4si __attribute__((__vector_size__(16))); typedef float __v4sf __attribute__((__vector_size__(16))); typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16))); typedef float __m128_u __attribute__((__vector_size__(16), __aligned__(1))); /* Unsigned types */ typedef unsigned int __v4su __attribute__((__vector_size__(16))); /* This header should only be included in a hosted environment as it depends on * a standard library to provide allocation routines. */ #if 0 /* disabled by -frewrite-includes */ #if __STDC_HOSTED__ #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 31 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* mm_malloc.h expanded by -frewrite-includes */ #include #else /* mm_malloc.h expanded by -frewrite-includes */ # 31 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 1 3 /*===---- mm_malloc.h - Allocating and Freeing Aligned Memory Blocks -------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __MM_MALLOC_H #define __MM_MALLOC_H #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 13 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 # 14 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #ifdef _WIN32 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 16 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 # 17 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #else # 18 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #ifndef __cplusplus extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size); #else # 21 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 // Some systems (e.g. those with GNU libc) declare posix_memalign with an // exception specifier. Via an "egregious workaround" in // Sema::CheckEquivalentExceptionSpec, Clang accepts the following as a valid // redeclaration of glibc's declaration. extern "C" int posix_memalign(void **__memptr, size_t __alignment, size_t __size); #endif # 27 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #endif # 28 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #if 0 /* disabled by -frewrite-includes */ #if !(defined(_WIN32) && defined(_mm_malloc)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 30 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 static __inline__ void *__attribute__((__always_inline__, __nodebug__, __malloc__, __alloc_size__(1), __alloc_align__(2))) _mm_malloc(size_t __size, size_t __align) { if (__align == 1) { return malloc(__size); } if (!(__align & (__align - 1)) && __align < sizeof(void *)) __align = sizeof(void *); void *__mallocedMemory; #if 0 /* disabled by -frewrite-includes */ #if defined(__MINGW32__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 43 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 __mallocedMemory = __mingw_aligned_malloc(__size, __align); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN32) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 45 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 __mallocedMemory = _aligned_malloc(__size, __align); #else # 47 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 if (posix_memalign(&__mallocedMemory, __align, __size)) return 0; #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 return __mallocedMemory; } static __inline__ void __attribute__((__always_inline__, __nodebug__)) _mm_free(void *__p) { #if 0 /* disabled by -frewrite-includes */ #if defined(__MINGW32__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 58 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 __mingw_aligned_free(__p); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif defined(_WIN32) #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 60 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 _aligned_free(__p); #else # 62 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 free(__p); #endif # 64 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 } #endif # 66 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #endif /* __MM_MALLOC_H */ # 68 "/home/marcus/llvm20/lib/clang/20/include/mm_malloc.h" 3 #endif /* mm_malloc.h expanded by -frewrite-includes */ # 32 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 2 3 #endif # 33 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 36 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse,no-evex512"), \ __min_vector_width__(128))) #define __DEFAULT_FN_ATTRS_SSE2 \ __attribute__((__always_inline__, __nodebug__, \ __target__("sse2,no-evex512"), __min_vector_width__(128))) #else # 43 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse"), \ __min_vector_width__(128))) #define __DEFAULT_FN_ATTRS_SSE2 \ __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \ __min_vector_width__(128))) #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && (__cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr #else # 55 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 #endif # 58 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __trunc64(x) \ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) #define __zext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, 2, 3) #define __anyext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, -1, -1) #define __zeroupper64(x) \ (__m128i) __builtin_shufflevector((__v4si)(x), __extension__(__v4si){}, 0, \ 1, 4, 5) /// Adds the 32-bit float values in the low-order bits of the operands. /// /// \headerfile /// /// This intrinsic corresponds to the VADDSS / ADDSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the sum /// of the lower 32 bits of both operands. The upper 96 bits are copied from /// the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_ss(__m128 __a, __m128 __b) { __a[0] += __b[0]; return __a; } /// Adds two 128-bit vectors of [4 x float], and returns the results of /// the addition. /// /// \headerfile /// /// This intrinsic corresponds to the VADDPS / ADDPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the sums of both /// operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a + (__v4sf)__b); } /// Subtracts the 32-bit float value in the low-order bits of the second /// operand from the corresponding value in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VSUBSS / SUBSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the minuend. The lower 32 bits /// of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing the subtrahend. The lower 32 /// bits of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// difference of the lower 32 bits of both operands. The upper 96 bits are /// copied from the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_ss(__m128 __a, __m128 __b) { __a[0] -= __b[0]; return __a; } /// Subtracts each of the values of the second operand from the first /// operand, both of which are 128-bit vectors of [4 x float] and returns /// the results of the subtraction. /// /// \headerfile /// /// This intrinsic corresponds to the VSUBPS / SUBPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the minuend. /// \param __b /// A 128-bit vector of [4 x float] containing the subtrahend. /// \returns A 128-bit vector of [4 x float] containing the differences between /// both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a - (__v4sf)__b); } /// Multiplies two 32-bit float values in the low-order bits of the /// operands. /// /// \headerfile /// /// This intrinsic corresponds to the VMULSS / MULSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the product of the lower /// 32 bits of both operands. The upper 96 bits are copied from the upper 96 /// bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_ss(__m128 __a, __m128 __b) { __a[0] *= __b[0]; return __a; } /// Multiplies two 128-bit vectors of [4 x float] and returns the /// results of the multiplication. /// /// \headerfile /// /// This intrinsic corresponds to the VMULPS / MULPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the products of both /// operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a * (__v4sf)__b); } /// Divides the value in the low-order 32 bits of the first operand by /// the corresponding value in the second operand. /// /// \headerfile /// /// This intrinsic corresponds to the VDIVSS / DIVSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the dividend. The lower 32 /// bits of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing the divisor. The lower 32 bits /// of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the quotients of the /// lower 32 bits of both operands. The upper 96 bits are copied from the /// upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_ss(__m128 __a, __m128 __b) { __a[0] /= __b[0]; return __a; } /// Divides two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VDIVPS / DIVPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the dividend. /// \param __b /// A 128-bit vector of [4 x float] containing the divisor. /// \returns A 128-bit vector of [4 x float] containing the quotients of both /// operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a / (__v4sf)__b); } /// Calculates the square root of the value stored in the low-order bits /// of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VSQRTSS / SQRTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the square root of the /// value in the low-order bits of the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ss(__m128 __a) { return (__m128)__builtin_ia32_sqrtss((__v4sf)__a); } /// Calculates the square roots of the values stored in a 128-bit vector /// of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VSQRTPS / SQRTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the square roots of the /// values in the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ps(__m128 __a) { return __builtin_ia32_sqrtps((__v4sf)__a); } /// Calculates the approximate reciprocal of the value stored in the /// low-order bits of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRCPSS / RCPSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocal of the value in the low-order bits of the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ss(__m128 __a) { return (__m128)__builtin_ia32_rcpss((__v4sf)__a); } /// Calculates the approximate reciprocals of the values stored in a /// 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRCPPS / RCPPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocals of the values in the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ps(__m128 __a) { return (__m128)__builtin_ia32_rcpps((__v4sf)__a); } /// Calculates the approximate reciprocal of the square root of the value /// stored in the low-order bits of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRSQRTSS / RSQRTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocal of the square root of the value in the low-order bits of the /// operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ss(__m128 __a) { return __builtin_ia32_rsqrtss((__v4sf)__a); } /// Calculates the approximate reciprocals of the square roots of the /// values stored in a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRSQRTPS / RSQRTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocals of the square roots of the values in the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ps(__m128 __a) { return __builtin_ia32_rsqrtps((__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands and returns the lesser value in the low-order bits of the /// vector of [4 x float]. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMINSS / MINSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// minimum value between both operands. The upper 96 bits are copied from /// the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ss(__m128 __a, __m128 __b) { return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b); } /// Compares two 128-bit vectors of [4 x float] and returns the lesser /// of each pair of values. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMINPS / MINPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. /// \returns A 128-bit vector of [4 x float] containing the minimum values /// between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ps(__m128 __a, __m128 __b) { return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands and returns the greater value in the low-order bits of a 128-bit /// vector of [4 x float]. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMAXSS / MAXSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// maximum value between both operands. The upper 96 bits are copied from /// the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ss(__m128 __a, __m128 __b) { return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b); } /// Compares two 128-bit vectors of [4 x float] and returns the greater /// of each pair of values. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMAXPS / MAXPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. /// \returns A 128-bit vector of [4 x float] containing the maximum values /// between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ps(__m128 __a, __m128 __b) { return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b); } /// Performs a bitwise AND of two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VANDPS / ANDPS instructions. /// /// \param __a /// A 128-bit vector containing one of the source operands. /// \param __b /// A 128-bit vector containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the /// values between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_and_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a & (__v4su)__b); } /// Performs a bitwise AND of two 128-bit vectors of [4 x float], using /// the one's complement of the values contained in the first source /// operand. /// /// \headerfile /// /// This intrinsic corresponds to the VANDNPS / ANDNPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the first source operand. The /// one's complement of this value is used in the bitwise AND. /// \param __b /// A 128-bit vector of [4 x float] containing the second source operand. /// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the /// one's complement of the first operand and the values in the second /// operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_andnot_ps(__m128 __a, __m128 __b) { return (__m128)(~(__v4su)__a & (__v4su)__b); } /// Performs a bitwise OR of two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VORPS / ORPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the bitwise OR of the /// values between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_or_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a | (__v4su)__b); } /// Performs a bitwise exclusive OR of two 128-bit vectors of /// [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VXORPS / XORPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the bitwise exclusive OR /// of the values between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_xor_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a ^ (__v4su)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands for equality. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPEQSS / CMPEQSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] for equality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPEQPS / CMPEQPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is less than the /// corresponding value in the second operand. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is less than or /// equal to the corresponding value in the second operand. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true, in /// the low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLESS / CMPLESS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are less than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is greater than /// the corresponding value in the second operand. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpltss((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is greater than /// or equal to the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLESS / CMPLESS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpless((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are greater than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both operands /// for inequality. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNEQSS / CMPNEQSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] for inequality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNEQPS / CMPNEQPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not less than /// the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not less than /// or equal to the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLESS / CMPNLESS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not less than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not greater /// than the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpnltss((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not greater /// than or equal to the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLESS / CMPNLESS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpnless((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not greater than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is ordered with /// respect to the corresponding value in the second operand. /// /// A pair of floating-point values are ordered with respect to each /// other if neither value is a NaN. Each comparison returns 0x0 for false, /// 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPORDSS / CMPORDSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are ordered with respect to those in the second operand. /// /// A pair of floating-point values are ordered with respect to each /// other if neither value is a NaN. Each comparison returns 0x0 for false, /// 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPORDPS / CMPORDPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is unordered /// with respect to the corresponding value in the second operand. /// /// A pair of double-precision values are unordered with respect to each /// other if one or both values are NaN. Each comparison returns 0x0 for /// false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPUNORDSS / CMPUNORDSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are unordered with respect to those in the second operand. /// /// A pair of double-precision values are unordered with respect to each /// other if one or both values are NaN. Each comparison returns 0x0 for /// false, 0xFFFFFFFFFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPUNORDPS / CMPUNORDPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands for equality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is less than the second /// operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is less than or equal to the /// second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is greater than the second /// operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is greater than or equal to /// the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is not equal to the second /// operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 1. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine equality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// less than the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// less than or equal to the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// greater than the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// greater than or equal to the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine inequality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b); } /// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtss_si32(__m128 __a) { return __builtin_ia32_cvtss2si((__v4sf)__a); } /// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvt_ss2si(__m128 __a) { return _mm_cvtss_si32(__a); } #ifdef __x86_64__ /// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 64-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 64-bit integer containing the converted value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtss_si64(__m128 __a) { return __builtin_ia32_cvtss2si64((__v4sf)__a); } #endif # 1453 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtps_pi32(__m128 __a) { return __trunc64(__builtin_ia32_cvtps2dq((__v4sf)__zeroupper64(__a))); } /// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvt_ps2pi(__m128 __a) { return _mm_cvtps_pi32(__a); } /// Converts the lower (first) element of a vector of [4 x float] into a signed /// truncated (rounded toward zero) 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvttss_si32(__m128 __a) { return __builtin_ia32_cvttss2si((__v4sf)__a); } /// Converts the lower (first) element of a vector of [4 x float] into a signed /// truncated (rounded toward zero) 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtt_ss2si(__m128 __a) { return _mm_cvttss_si32(__a); } #ifdef __x86_64__ /// Converts the lower (first) element of a vector of [4 x float] into a signed /// truncated (rounded toward zero) 64-bit integer. /// /// If the converted value does not fit in a 64-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 64-bit integer containing the converted value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvttss_si64(__m128 __a) { return __builtin_ia32_cvttss2si64((__v4sf)__a); } #endif # 1561 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Converts the lower (first) two elements of a 128-bit vector of [4 x float] /// into two signed truncated (rounded toward zero) 32-bit integers, /// returned in a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTTPS2PI / VTTPS2PI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvttps_pi32(__m128 __a) { return __trunc64(__builtin_ia32_cvttps2dq((__v4sf)__zeroupper64(__a))); } /// Converts the lower (first) two elements of a 128-bit vector of [4 x float] /// into two signed truncated (rounded toward zero) 64-bit integers, /// returned in a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTTPS2PI instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtt_ps2pi(__m128 __a) { return _mm_cvttps_pi32(__a); } /// Converts a 32-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination vector are copied from the /// corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 32-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// converted value of the second operand. The upper 96 bits are copied from /// the upper 96 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi32_ss(__m128 __a, int __b) { __a[0] = __b; return __a; } /// Converts a 32-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination are copied from the /// corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 32-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// converted value of the second operand. The upper 96 bits are copied from /// the upper 96 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvt_si2ss(__m128 __a, int __b) { return _mm_cvtsi32_ss(__a, __b); } #ifdef __x86_64__ /// Converts a 64-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination are copied from the /// corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 64-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// converted value of the second operand. The upper 96 bits are copied from /// the upper 96 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi64_ss(__m128 __a, long long __b) { __a[0] = __b; return __a; } #endif # 1673 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Converts two elements of a 64-bit vector of [2 x i32] into two /// floating point values and writes them to the lower 64-bits of the /// destination. The remaining higher order elements of the destination are /// copied from the corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 64-bit vector of [2 x i32]. The elements in this vector are converted /// and written to the corresponding low-order elements in the destination. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// converted value of the second operand. The upper 64 bits are copied from /// the upper 64 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi32_ps(__m128 __a, __m64 __b) { return (__m128)__builtin_shufflevector( (__v4sf)__a, __builtin_convertvector((__v4si)__zext128(__b), __v4sf), 4, 5, 2, 3); } /// Converts two elements of a 64-bit vector of [2 x i32] into two /// floating point values and writes them to the lower 64-bits of the /// destination. The remaining higher order elements of the destination are /// copied from the corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 64-bit vector of [2 x i32]. The elements in this vector are converted /// and written to the corresponding low-order elements in the destination. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// converted value from the second operand. The upper 64 bits are copied /// from the upper 64 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvt_pi2ps(__m128 __a, __m64 __b) { return _mm_cvtpi32_ps(__a, __b); } /// Extracts a float value contained in the lower 32 bits of a vector of /// [4 x float]. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the extraction. /// \returns A 32-bit float containing the extracted value. static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtss_f32(__m128 __a) { return __a[0]; } /// Loads two packed float values from the address \a __p into the /// high-order bits of a 128-bit vector of [4 x float]. The low-order bits /// are copied from the low-order bits of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. Bits [63:0] are written to bits [63:0] /// of the destination. /// \param __p /// A pointer to two packed float values. Bits [63:0] are written to bits /// [127:64] of the destination. /// \returns A 128-bit vector of [4 x float] containing the moved values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadh_pi(__m128 __a, const __m64 *__p) { typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_loadh_pi_struct { __mm_loadh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); __mm_loadh_pi_v2f32 __b = ((const struct __mm_loadh_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5); } /// Loads two packed float values from the address \a __p into the /// low-order bits of a 128-bit vector of [4 x float]. The high-order bits /// are copied from the high-order bits of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. Bits [127:64] are written to bits /// [127:64] of the destination. /// \param __p /// A pointer to two packed float values. Bits [63:0] are written to bits /// [63:0] of the destination. /// \returns A 128-bit vector of [4 x float] containing the moved values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadl_pi(__m128 __a, const __m64 *__p) { typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_loadl_pi_struct { __mm_loadl_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); __mm_loadl_pi_v2f32 __b = ((const struct __mm_loadl_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits of the vector are initialized with the single-precision /// floating-point value loaded from a specified memory location. The upper /// 96 bits are set to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSS / MOVSS instruction. /// /// \param __p /// A pointer to a 32-bit memory location containing a single-precision /// floating-point value. /// \returns An initialized 128-bit floating-point vector of [4 x float]. The /// lower 32 bits contain the value loaded from the memory location. The /// upper 96 bits are set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ss(const float *__p) { struct __mm_load_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); float __u = ((const struct __mm_load_ss_struct*)__p)->__u; return __extension__ (__m128){ __u, 0, 0, 0 }; } /// Loads a 32-bit float value and duplicates it to all four vector /// elements of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VBROADCASTSS / MOVSS + shuffling /// instruction. /// /// \param __p /// A pointer to a float value to be loaded and duplicated. /// \returns A 128-bit vector of [4 x float] containing the loaded and /// duplicated values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load1_ps(const float *__p) { struct __mm_load1_ps_struct { float __u; } __attribute__((__packed__, __may_alias__)); float __u = ((const struct __mm_load1_ps_struct*)__p)->__u; return __extension__ (__m128){ __u, __u, __u, __u }; } #define _mm_load_ps1(p) _mm_load1_ps(p) /// Loads a 128-bit floating-point vector of [4 x float] from an aligned /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 128-bit aligned. /// \returns A 128-bit vector of [4 x float] containing the loaded values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ps(const float *__p) { return *(const __m128*)__p; } /// Loads a 128-bit floating-point vector of [4 x float] from an /// unaligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location does not have to be aligned. /// \returns A 128-bit vector of [4 x float] containing the loaded values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadu_ps(const float *__p) { struct __loadu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); return ((const struct __loadu_ps*)__p)->__v; } /// Loads four packed float values, in reverse order, from an aligned /// memory location to 32-bit elements in a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 128-bit aligned. /// \returns A 128-bit vector of [4 x float] containing the moved values, loaded /// in reverse order. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadr_ps(const float *__p) { __m128 __a = _mm_load_ps(__p); return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); } /// Create a 128-bit vector of [4 x float] with undefined values. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \returns A 128-bit vector of [4 x float] containing undefined values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_undefined_ps(void) { return (__m128)__builtin_ia32_undef128(); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits of the vector are initialized with the specified single-precision /// floating-point value. The upper 96 bits are set to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSS / MOVSS instruction. /// /// \param __w /// A single-precision floating-point value used to initialize the lower 32 /// bits of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. The /// lower 32 bits contain the value provided in the source operand. The /// upper 96 bits are set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ss(float __w) { return __extension__ (__m128){ __w, 0.0f, 0.0f, 0.0f }; } /// Constructs a 128-bit floating-point vector of [4 x float], with each /// of the four single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// /// \headerfile /// /// This intrinsic corresponds to the VPERMILPS / PERMILPS instruction. /// /// \param __w /// A single-precision floating-point value used to initialize each vector /// element of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_ps(float __w) { return __extension__ (__m128){ __w, __w, __w, __w }; } /* Microsoft specific. */ /// Constructs a 128-bit floating-point vector of [4 x float], with each /// of the four single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// /// \headerfile /// /// This intrinsic corresponds to the VPERMILPS / PERMILPS instruction. /// /// \param __w /// A single-precision floating-point value used to initialize each vector /// element of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ps1(float __w) { return _mm_set1_ps(__w); } /// Constructs a 128-bit floating-point vector of [4 x float] /// initialized with the specified single-precision floating-point values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __z /// A single-precision floating-point value used to initialize bits [127:96] /// of the result. /// \param __y /// A single-precision floating-point value used to initialize bits [95:64] /// of the result. /// \param __x /// A single-precision floating-point value used to initialize bits [63:32] /// of the result. /// \param __w /// A single-precision floating-point value used to initialize bits [31:0] /// of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ps(float __z, float __y, float __x, float __w) { return __extension__ (__m128){ __w, __x, __y, __z }; } /// Constructs a 128-bit floating-point vector of [4 x float], /// initialized in reverse order with the specified 32-bit single-precision /// float-point values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __z /// A single-precision floating-point value used to initialize bits [31:0] /// of the result. /// \param __y /// A single-precision floating-point value used to initialize bits [63:32] /// of the result. /// \param __x /// A single-precision floating-point value used to initialize bits [95:64] /// of the result. /// \param __w /// A single-precision floating-point value used to initialize bits [127:96] /// of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_ps(float __z, float __y, float __x, float __w) { return __extension__ (__m128){ __z, __y, __x, __w }; } /// Constructs a 128-bit floating-point vector of [4 x float] initialized /// to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VXORPS / XORPS instruction. /// /// \returns An initialized 128-bit floating-point vector of [4 x float] with /// all elements set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_ps(void) { return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f }; } /// Stores the upper 64 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VPEXTRQ / PEXTRQ instruction. /// /// \param __p /// A pointer to a 64-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeh_pi(__m64 *__p, __m128 __a) { typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_storeh_pi_struct { __mm_storeh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 2, 3); } /// Stores the lower 64 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPS / MOVLPS instruction. /// /// \param __p /// A pointer to a memory location that will receive the float values. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_pi(__m64 *__p, __m128 __a) { typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_storeh_pi_struct { __mm_storeh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 0, 1); } /// Stores the lower 32 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSS / MOVSS instruction. /// /// \param __p /// A pointer to a 32-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ss(float *__p, __m128 __a) { struct __mm_store_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_store_ss_struct*)__p)->__u = __a[0]; } /// Stores a 128-bit vector of [4 x float] to an unaligned memory /// location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location does not have to be aligned. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_ps(float *__p, __m128 __a) { struct __storeu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_ps*)__p)->__v = __a; } /// Stores a 128-bit vector of [4 x float] into an aligned memory /// location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 16-byte aligned. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps(float *__p, __m128 __a) { *(__m128*)__p = __a; } /// Stores the lower 32 bits of a 128-bit vector of [4 x float] into /// four contiguous elements in an aligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each /// of the four contiguous elements pointed by \a __p. static __inline__ void __DEFAULT_FN_ATTRS _mm_store1_ps(float *__p, __m128 __a) { __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 0, 0); _mm_store_ps(__p, __a); } /// Stores the lower 32 bits of a 128-bit vector of [4 x float] into /// four contiguous elements in an aligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each /// of the four contiguous elements pointed by \a __p. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps1(float *__p, __m128 __a) { _mm_store1_ps(__p, __a); } /// Stores float values from a 128-bit vector of [4 x float] to an /// aligned memory location in reverse order. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 128-bit aligned. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storer_ps(float *__p, __m128 __a) { __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); _mm_store_ps(__p, __a); } #define _MM_HINT_ET0 7 #define _MM_HINT_ET1 6 #define _MM_HINT_T0 3 #define _MM_HINT_T1 2 #define _MM_HINT_T2 1 #define _MM_HINT_NTA 0 #ifndef _MSC_VER /* FIXME: We have to #define this because "sel" must be a constant integer, and Sema doesn't do any form of constant propagation yet. */ /// Loads one cache line of data from the specified address to a location /// closer to the processor. /// /// \headerfile /// /// \code /// void _mm_prefetch(const void *a, const int sel); /// \endcode /// /// This intrinsic corresponds to the PREFETCHNTA instruction. /// /// \param a /// A pointer to a memory location containing a cache line of data. /// \param sel /// A predefined integer constant specifying the type of prefetch /// operation: \n /// _MM_HINT_NTA: Move data using the non-temporal access (NTA) hint. The /// PREFETCHNTA instruction will be generated. \n /// _MM_HINT_T0: Move data using the T0 hint. The PREFETCHT0 instruction will /// be generated. \n /// _MM_HINT_T1: Move data using the T1 hint. The PREFETCHT1 instruction will /// be generated. \n /// _MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction will /// be generated. #define _mm_prefetch(a, sel) (__builtin_prefetch((const void *)(a), \ ((sel) >> 2) & 1, (sel) & 0x3)) #endif # 2231 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Stores a 64-bit integer in the specified aligned memory location. To /// minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the MOVNTQ instruction. /// /// \param __p /// A pointer to an aligned memory location used to store the register value. /// \param __a /// A 64-bit integer containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pi(void *__p, __m64 __a) { __builtin_nontemporal_store(__a, (__m64 *)__p); } /// Moves packed float values from a 128-bit vector of [4 x float] to a /// 128-bit aligned memory location. To minimize caching, the data is flagged /// as non-temporal (unlikely to be used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. /// /// \param __p /// A pointer to a 128-bit aligned memory location that will receive the /// single-precision floating-point values. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be moved. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_ps(void *__p, __m128 __a) { __builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p); } #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2270 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 extern "C" { #endif # 2272 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Forces strong memory ordering (serialization) between store /// instructions preceding this instruction and store instructions following /// this instruction, ensuring the system completes all previous stores /// before executing subsequent stores. /// /// \headerfile /// /// This intrinsic corresponds to the SFENCE instruction. /// void _mm_sfence(void); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2285 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 } // extern "C" #endif # 2287 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Extracts 16-bit element from a 64-bit vector of [4 x i16] and /// returns it, as specified by the immediate integer operand. /// /// \headerfile /// /// \code /// int _mm_extract_pi16(__m64 a, int n); /// \endcode /// /// This intrinsic corresponds to the VPEXTRW / PEXTRW instruction. /// /// \param a /// A 64-bit vector of [4 x i16]. /// \param n /// An immediate integer operand that determines which bits are extracted: \n /// 0: Bits [15:0] are copied to the destination. \n /// 1: Bits [31:16] are copied to the destination. \n /// 2: Bits [47:32] are copied to the destination. \n /// 3: Bits [63:48] are copied to the destination. /// \returns A 16-bit integer containing the extracted 16 bits of packed data. #define _mm_extract_pi16(a, n) \ ((int)(unsigned short)__builtin_ia32_vec_ext_v4hi((__v4hi)a, (int)n)) /// Copies data from the 64-bit vector of [4 x i16] to the destination, /// and inserts the lower 16-bits of an integer operand at the 16-bit offset /// specified by the immediate operand \a n. /// /// \headerfile /// /// \code /// __m64 _mm_insert_pi16(__m64 a, int d, int n); /// \endcode /// /// This intrinsic corresponds to the PINSRW instruction. /// /// \param a /// A 64-bit vector of [4 x i16]. /// \param d /// An integer. The lower 16-bit value from this operand is written to the /// destination at the offset specified by operand \a n. /// \param n /// An immediate integer operant that determines which the bits to be used /// in the destination. \n /// 0: Bits [15:0] are copied to the destination. \n /// 1: Bits [31:16] are copied to the destination. \n /// 2: Bits [47:32] are copied to the destination. \n /// 3: Bits [63:48] are copied to the destination. \n /// The remaining bits in the destination are copied from the corresponding /// bits in operand \a a. /// \returns A 64-bit integer vector containing the copied packed data from the /// operands. #define _mm_insert_pi16(a, d, n) \ ((__m64)__builtin_ia32_vec_set_v4hi((__v4hi)a, (int)d, (int)n)) /// Compares each of the corresponding packed 16-bit integer values of /// the 64-bit integer vectors, and writes the greater value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMAXSW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_max_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_max((__v4hi)__a, (__v4hi)__b); } /// Compares each of the corresponding packed 8-bit unsigned integer /// values of the 64-bit integer vectors, and writes the greater value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMAXUB instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_max_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_max((__v8qu)__a, (__v8qu)__b); } /// Compares each of the corresponding packed 16-bit integer values of /// the 64-bit integer vectors, and writes the lesser value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMINSW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_min_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_min((__v4hi)__a, (__v4hi)__b); } /// Compares each of the corresponding packed 8-bit unsigned integer /// values of the 64-bit integer vectors, and writes the lesser value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMINUB instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_min_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_min((__v8qu)__a, (__v8qu)__b); } /// Takes the most significant bit from each 8-bit element in a 64-bit /// integer vector to create an 8-bit mask value. Zero-extends the value to /// 32-bit integer and writes it to the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMOVMSKB instruction. /// /// \param __a /// A 64-bit integer vector containing the values with bits to be extracted. /// \returns The most significant bit from each 8-bit element in \a __a, /// written to bits [7:0]. static __inline__ int __DEFAULT_FN_ATTRS_SSE2 _mm_movemask_pi8(__m64 __a) { return __builtin_ia32_pmovmskb128((__v16qi)__zext128(__a)); } /// Multiplies packed 16-bit unsigned integer values and writes the /// high-order 16 bits of each 32-bit product to the corresponding bits in /// the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMULHUW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the products of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mulhi_pu16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pmulhuw128((__v8hi)__anyext128(__a), (__v8hi)__anyext128(__b))); } /// Shuffles the 4 16-bit integers from a 64-bit integer vector to the /// destination, as specified by the immediate value operand. /// /// \headerfile /// /// \code /// __m64 _mm_shuffle_pi16(__m64 a, const int n); /// \endcode /// /// This intrinsic corresponds to the PSHUFW instruction. /// /// \param a /// A 64-bit integer vector containing the values to be shuffled. /// \param n /// An immediate value containing an 8-bit value specifying which elements to /// copy from \a a. The destinations within the 64-bit destination are /// assigned values as follows: \n /// Bits [1:0] are used to assign values to bits [15:0] in the /// destination. \n /// Bits [3:2] are used to assign values to bits [31:16] in the /// destination. \n /// Bits [5:4] are used to assign values to bits [47:32] in the /// destination. \n /// Bits [7:6] are used to assign values to bits [63:48] in the /// destination. \n /// Bit value assignments: \n /// 00: assigned from bits [15:0] of \a a. \n /// 01: assigned from bits [31:16] of \a a. \n /// 10: assigned from bits [47:32] of \a a. \n /// 11: assigned from bits [63:48] of \a a. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 64-bit integer vector containing the shuffled values. #define _mm_shuffle_pi16(a, n) \ ((__m64)__builtin_shufflevector((__v4hi)(__m64)(a), __extension__(__v4hi){}, \ (n) & 0x3, ((n) >> 2) & 0x3, \ ((n) >> 4) & 0x3, ((n) >> 6) & 0x3)) /// Conditionally copies the values from each 8-bit element in the first /// 64-bit integer vector operand to the specified memory location, as /// specified by the most significant bit in the corresponding element in the /// second 64-bit integer vector operand. /// /// To minimize caching, the data is flagged as non-temporal /// (unlikely to be used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the MASKMOVQ instruction. /// /// \param __d /// A 64-bit integer vector containing the values with elements to be copied. /// \param __n /// A 64-bit integer vector operand. The most significant bit from each 8-bit /// element determines whether the corresponding element in operand \a __d /// is copied. If the most significant bit of a given element is 1, the /// corresponding element in operand \a __d is copied. /// \param __p /// A pointer to a 64-bit memory location that will receive the conditionally /// copied integer values. The address of the memory location does not have /// to be aligned. static __inline__ void __DEFAULT_FN_ATTRS_SSE2 _mm_maskmove_si64(__m64 __d, __m64 __n, char *__p) { // This is complex, because we need to support the case where __p is pointing // within the last 15 to 8 bytes of a page. In that case, using a 128-bit // write might cause a trap where a 64-bit maskmovq would not. (Memory // locations not selected by the mask bits might still cause traps.) __m128i __d128 = __anyext128(__d); __m128i __n128 = __zext128(__n); if (((__SIZE_TYPE__)__p & 0xfff) >= 4096-15 && ((__SIZE_TYPE__)__p & 0xfff) <= 4096-8) { // If there's a risk of spurious trap due to a 128-bit write, back up the // pointer by 8 bytes and shift values in registers to match. __p -= 8; __d128 = __builtin_ia32_pslldqi128_byteshift((__v2di)__d128, 8); __n128 = __builtin_ia32_pslldqi128_byteshift((__v2di)__n128, 8); } __builtin_ia32_maskmovdqu((__v16qi)__d128, (__v16qi)__n128, __p); } /// Computes the rounded averages of the packed unsigned 8-bit integer /// values and writes the averages to the corresponding bits in the /// destination. /// /// \headerfile /// /// This intrinsic corresponds to the PAVGB instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the averages of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_avg_pu8(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pavgb128((__v16qi)__anyext128(__a), (__v16qi)__anyext128(__b))); } /// Computes the rounded averages of the packed unsigned 16-bit integer /// values and writes the averages to the corresponding bits in the /// destination. /// /// \headerfile /// /// This intrinsic corresponds to the PAVGW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the averages of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_avg_pu16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pavgw128((__v8hi)__anyext128(__a), (__v8hi)__anyext128(__b))); } /// Subtracts the corresponding 8-bit unsigned integer values of the two /// 64-bit vector operands and computes the absolute value for each of the /// difference. Then sum of the 8 absolute differences is written to the /// bits [15:0] of the destination; the remaining bits [63:16] are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the PSADBW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector whose lower 16 bits contain the sums of the /// sets of absolute differences between both operands. The upper bits are /// cleared. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sad_pu8(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_psadbw128((__v16qi)__zext128(__a), (__v16qi)__zext128(__b))); } #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2603 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 extern "C" { #endif # 2605 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Returns the contents of the MXCSR register as a 32-bit unsigned /// integer value. /// /// There are several groups of macros associated with this /// intrinsic, including: ///
    ///
  • /// For checking exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, /// _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, /// _MM_EXCEPT_INEXACT. There is a convenience wrapper /// _MM_GET_EXCEPTION_STATE(). ///
  • ///
  • /// For checking exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, /// _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. /// There is a convenience wrapper _MM_GET_EXCEPTION_MASK(). ///
  • ///
  • /// For checking rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, /// _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper /// _MM_GET_ROUNDING_MODE(). ///
  • ///
  • /// For checking flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. /// There is a convenience wrapper _MM_GET_FLUSH_ZERO_MODE(). ///
  • ///
  • /// For checking denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, /// _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper /// _MM_GET_DENORMALS_ZERO_MODE(). ///
  • ///
/// /// For example, the following expression checks if an overflow exception has /// occurred: /// \code /// ( _mm_getcsr() & _MM_EXCEPT_OVERFLOW ) /// \endcode /// /// The following expression gets the current rounding mode: /// \code /// _MM_GET_ROUNDING_MODE() /// \endcode /// /// \headerfile /// /// This intrinsic corresponds to the VSTMXCSR / STMXCSR instruction. /// /// \returns A 32-bit unsigned integer containing the contents of the MXCSR /// register. unsigned int _mm_getcsr(void); /// Sets the MXCSR register with the 32-bit unsigned integer value. /// /// There are several groups of macros associated with this intrinsic, /// including: ///
    ///
  • /// For setting exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, /// _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, /// _MM_EXCEPT_INEXACT. There is a convenience wrapper /// _MM_SET_EXCEPTION_STATE(x) where x is one of these macros. ///
  • ///
  • /// For setting exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, /// _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. /// There is a convenience wrapper _MM_SET_EXCEPTION_MASK(x) where x is one /// of these macros. ///
  • ///
  • /// For setting rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, /// _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper /// _MM_SET_ROUNDING_MODE(x) where x is one of these macros. ///
  • ///
  • /// For setting flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. /// There is a convenience wrapper _MM_SET_FLUSH_ZERO_MODE(x) where x is /// one of these macros. ///
  • ///
  • /// For setting denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, /// _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper /// _MM_SET_DENORMALS_ZERO_MODE(x) where x is one of these macros. ///
  • ///
/// /// For example, the following expression causes subsequent floating-point /// operations to round up: /// _mm_setcsr(_mm_getcsr() | _MM_ROUND_UP) /// /// The following example sets the DAZ and FTZ flags: /// \code /// void setFlags() { /// _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); /// _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); /// } /// \endcode /// /// \headerfile /// /// This intrinsic corresponds to the VLDMXCSR / LDMXCSR instruction. /// /// \param __i /// A 32-bit unsigned integer value to be written to the MXCSR register. void _mm_setcsr(unsigned int __i); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2713 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 } // extern "C" #endif # 2715 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Selects 4 float values from the 128-bit operands of [4 x float], as /// specified by the immediate value operand. /// /// \headerfile /// /// \code /// __m128 _mm_shuffle_ps(__m128 a, __m128 b, const int mask); /// \endcode /// /// This intrinsic corresponds to the VSHUFPS / SHUFPS instruction. /// /// \param a /// A 128-bit vector of [4 x float]. /// \param b /// A 128-bit vector of [4 x float]. /// \param mask /// An immediate value containing an 8-bit value specifying which elements to /// copy from \a a and \a b. \n /// Bits [3:0] specify the values copied from operand \a a. \n /// Bits [7:4] specify the values copied from operand \a b. \n /// The destinations within the 128-bit destination are assigned values as /// follows: \n /// Bits [1:0] are used to assign values to bits [31:0] in the /// destination. \n /// Bits [3:2] are used to assign values to bits [63:32] in the /// destination. \n /// Bits [5:4] are used to assign values to bits [95:64] in the /// destination. \n /// Bits [7:6] are used to assign values to bits [127:96] in the /// destination. \n /// Bit value assignments: \n /// 00: Bits [31:0] copied from the specified operand. \n /// 01: Bits [63:32] copied from the specified operand. \n /// 10: Bits [95:64] copied from the specified operand. \n /// 11: Bits [127:96] copied from the specified operand. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 128-bit vector of [4 x float] containing the shuffled values. #define _mm_shuffle_ps(a, b, mask) \ ((__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ (int)(mask))) /// Unpacks the high-order (index 2,3) values from two 128-bit vectors of /// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKHPS / UNPCKHPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. \n /// Bits [95:64] are written to bits [31:0] of the destination. \n /// Bits [127:96] are written to bits [95:64] of the destination. /// \param __b /// A 128-bit vector of [4 x float]. /// Bits [95:64] are written to bits [63:32] of the destination. \n /// Bits [127:96] are written to bits [127:96] of the destination. /// \returns A 128-bit vector of [4 x float] containing the interleaved values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_unpackhi_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7); } /// Unpacks the low-order (index 0,1) values from two 128-bit vectors of /// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPS / UNPCKLPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. \n /// Bits [31:0] are written to bits [31:0] of the destination. \n /// Bits [63:32] are written to bits [95:64] of the destination. /// \param __b /// A 128-bit vector of [4 x float]. \n /// Bits [31:0] are written to bits [63:32] of the destination. \n /// Bits [63:32] are written to bits [127:96] of the destination. /// \returns A 128-bit vector of [4 x float] containing the interleaved values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_unpacklo_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits are set to the lower 32 bits of the second parameter. The upper /// 96 bits are set to the upper 96 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VBLENDPS / BLENDPS / MOVSS /// instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. The upper 96 bits are /// written to the upper 96 bits of the result. /// \param __b /// A 128-bit floating-point vector of [4 x float]. The lower 32 bits are /// written to the lower 32 bits of the result. /// \returns A 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_move_ss(__m128 __a, __m128 __b) { __a[0] = __b[0]; return __a; } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 64 bits are set to the upper 64 bits of the second parameter. The upper /// 64 bits are set to the upper 64 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKHPD / UNPCKHPD instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are /// written to the upper 64 bits of the result. /// \param __b /// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are /// written to the lower 64 bits of the result. /// \returns A 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movehl_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 64 bits are set to the lower 64 bits of the first parameter. The upper /// 64 bits are set to the lower 64 bits of the second parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are /// written to the lower 64 bits of the result. /// \param __b /// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are /// written to the upper 64 bits of the result. /// \returns A 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movelh_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5); } /// Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x /// float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of [4 x i16]. The elements of the destination are copied /// from the corresponding elements in this operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi16_ps(__m64 __a) { return __builtin_convertvector((__v4hi)__a, __v4sf); } /// Converts a 64-bit vector of 16-bit unsigned integer values into a /// 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of 16-bit unsigned integer values. The elements of the /// destination are copied from the corresponding elements in this operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpu16_ps(__m64 __a) { return __builtin_convertvector((__v4hu)__a, __v4sf); } /// Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] /// into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of [8 x i8]. The elements of the destination are copied /// from the corresponding lower 4 elements in this operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi8_ps(__m64 __a) { return __builtin_convertvector( __builtin_shufflevector((__v8qs)__a, __extension__ (__v8qs){}, 0, 1, 2, 3), __v4sf); } /// Converts the lower four unsigned 8-bit integer values from a 64-bit /// vector of [8 x u8] into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of unsigned 8-bit integer values. The elements of the /// destination are copied from the corresponding lower 4 elements in this /// operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpu8_ps(__m64 __a) { return __builtin_convertvector( __builtin_shufflevector((__v8qu)__a, __extension__ (__v8qu){}, 0, 1, 2, 3), __v4sf); } /// Converts the two 32-bit signed integer values from each 64-bit vector /// operand of [2 x i32] into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of [2 x i32]. The lower elements of the destination are /// copied from the elements in this operand. /// \param __b /// A 64-bit vector of [2 x i32]. The upper elements of the destination are /// copied from the elements in this operand. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// copied and converted values from the first operand. The upper 64 bits /// contain the copied and converted values from the second operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi32x2_ps(__m64 __a, __m64 __b) { return __builtin_convertvector( __builtin_shufflevector((__v2si)__a, (__v2si)__b, 0, 1, 2, 3), __v4sf); } /// Converts each single-precision floating-point element of a 128-bit /// floating-point vector of [4 x float] into a 16-bit signed integer, and /// packs the results into a 64-bit integer vector of [4 x i16]. /// /// If the floating-point element is NaN or infinity, or if the /// floating-point element is greater than 0x7FFFFFFF or less than -0x8000, /// it is converted to 0x8000. Otherwise if the floating-point element is /// greater than 0x7FFF, it is converted to 0x7FFF. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. /// \returns A 64-bit integer vector of [4 x i16] containing the converted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtps_pi16(__m128 __a) { return __trunc64(__builtin_ia32_packssdw128( (__v4si)__builtin_ia32_cvtps2dq((__v4sf)__a), (__v4si)_mm_setzero_ps())); } /// Converts each single-precision floating-point element of a 128-bit /// floating-point vector of [4 x float] into an 8-bit signed integer, and /// packs the results into the lower 32 bits of a 64-bit integer vector of /// [8 x i8]. The upper 32 bits of the vector are set to 0. /// /// If the floating-point element is NaN or infinity, or if the /// floating-point element is greater than 0x7FFFFFFF or less than -0x80, it /// is converted to 0x80. Otherwise if the floating-point element is greater /// than 0x7F, it is converted to 0x7F. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction. /// /// \param __a /// 128-bit floating-point vector of [4 x float]. /// \returns A 64-bit integer vector of [8 x i8]. The lower 32 bits contain the /// converted values and the uppper 32 bits are set to zero. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtps_pi8(__m128 __a) { __m64 __b, __c; __b = _mm_cvtps_pi16(__a); __c = _mm_setzero_si64(); return _mm_packs_pi16(__b, __c); } /// Extracts the sign bits from each single-precision floating-point /// element of a 128-bit floating-point vector of [4 x float] and returns the /// sign bits in bits [0:3] of the result. Bits [31:4] of the result are set /// to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVMSKPS / MOVMSKPS instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. /// \returns A 32-bit integer value. Bits [3:0] contain the sign bits from each /// single-precision floating-point element of the parameter. Bits [31:4] are /// set to zero. static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_ps(__m128 __a) { return __builtin_ia32_movmskps((__v4sf)__a); } /* Compare */ #define _CMP_EQ_OQ 0x00 /* Equal (ordered, non-signaling) */ #define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */ #define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */ #define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */ #define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */ #define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */ #define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */ #define _CMP_ORD_Q 0x07 /* Ordered (non-signaling) */ /// Compares each of the corresponding values of two 128-bit vectors of /// [4 x float], using the operation specified by the immediate integer /// operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, comparisons that are ordered /// return false, and comparisons that are unordered return true. /// /// \headerfile /// /// \code /// __m128 _mm_cmp_ps(__m128 a, __m128 b, const int c); /// \endcode /// /// This intrinsic corresponds to the (V)CMPPS instruction. /// /// \param a /// A 128-bit vector of [4 x float]. /// \param b /// A 128-bit vector of [4 x float]. /// \param c /// An immediate integer operand, with bits [4:0] specifying which comparison /// operation to use: \n /// 0x00: Equal (ordered, non-signaling) \n /// 0x01: Less-than (ordered, signaling) \n /// 0x02: Less-than-or-equal (ordered, signaling) \n /// 0x03: Unordered (non-signaling) \n /// 0x04: Not-equal (unordered, non-signaling) \n /// 0x05: Not-less-than (unordered, signaling) \n /// 0x06: Not-less-than-or-equal (unordered, signaling) \n /// 0x07: Ordered (non-signaling) \n /// \returns A 128-bit vector of [4 x float] containing the comparison results. #define _mm_cmp_ps(a, b, c) \ ((__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), (c))) /// Compares each of the corresponding scalar values of two 128-bit /// vectors of [4 x float], using the operation specified by the immediate /// integer operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, comparisons that are ordered /// return false, and comparisons that are unordered return true. /// /// \headerfile /// /// \code /// __m128 _mm_cmp_ss(__m128 a, __m128 b, const int c); /// \endcode /// /// This intrinsic corresponds to the (V)CMPSS instruction. /// /// \param a /// A 128-bit vector of [4 x float]. /// \param b /// A 128-bit vector of [4 x float]. /// \param c /// An immediate integer operand, with bits [4:0] specifying which comparison /// operation to use: \n /// 0x00: Equal (ordered, non-signaling) \n /// 0x01: Less-than (ordered, signaling) \n /// 0x02: Less-than-or-equal (ordered, signaling) \n /// 0x03: Unordered (non-signaling) \n /// 0x04: Not-equal (unordered, non-signaling) \n /// 0x05: Not-less-than (unordered, signaling) \n /// 0x06: Not-less-than-or-equal (unordered, signaling) \n /// 0x07: Ordered (non-signaling) \n /// \returns A 128-bit vector of [4 x float] containing the comparison results. #define _mm_cmp_ss(a, b, c) \ ((__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), (c))) #define _MM_ALIGN16 __attribute__((aligned(16))) #define _MM_SHUFFLE(z, y, x, w) (((z) << 6) | ((y) << 4) | ((x) << 2) | (w)) #define _MM_EXCEPT_INVALID (0x0001U) #define _MM_EXCEPT_DENORM (0x0002U) #define _MM_EXCEPT_DIV_ZERO (0x0004U) #define _MM_EXCEPT_OVERFLOW (0x0008U) #define _MM_EXCEPT_UNDERFLOW (0x0010U) #define _MM_EXCEPT_INEXACT (0x0020U) #define _MM_EXCEPT_MASK (0x003fU) #define _MM_MASK_INVALID (0x0080U) #define _MM_MASK_DENORM (0x0100U) #define _MM_MASK_DIV_ZERO (0x0200U) #define _MM_MASK_OVERFLOW (0x0400U) #define _MM_MASK_UNDERFLOW (0x0800U) #define _MM_MASK_INEXACT (0x1000U) #define _MM_MASK_MASK (0x1f80U) #define _MM_ROUND_NEAREST (0x0000U) #define _MM_ROUND_DOWN (0x2000U) #define _MM_ROUND_UP (0x4000U) #define _MM_ROUND_TOWARD_ZERO (0x6000U) #define _MM_ROUND_MASK (0x6000U) #define _MM_FLUSH_ZERO_MASK (0x8000U) #define _MM_FLUSH_ZERO_ON (0x8000U) #define _MM_FLUSH_ZERO_OFF (0x0000U) #define _MM_GET_EXCEPTION_MASK() (_mm_getcsr() & _MM_MASK_MASK) #define _MM_GET_EXCEPTION_STATE() (_mm_getcsr() & _MM_EXCEPT_MASK) #define _MM_GET_FLUSH_ZERO_MODE() (_mm_getcsr() & _MM_FLUSH_ZERO_MASK) #define _MM_GET_ROUNDING_MODE() (_mm_getcsr() & _MM_ROUND_MASK) #define _MM_SET_EXCEPTION_MASK(x) (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x))) #define _MM_SET_EXCEPTION_STATE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x))) #define _MM_SET_FLUSH_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x))) #define _MM_SET_ROUNDING_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x))) #define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ do { \ __m128 tmp3, tmp2, tmp1, tmp0; \ tmp0 = _mm_unpacklo_ps((row0), (row1)); \ tmp2 = _mm_unpacklo_ps((row2), (row3)); \ tmp1 = _mm_unpackhi_ps((row0), (row1)); \ tmp3 = _mm_unpackhi_ps((row2), (row3)); \ (row0) = _mm_movelh_ps(tmp0, tmp2); \ (row1) = _mm_movehl_ps(tmp2, tmp0); \ (row2) = _mm_movelh_ps(tmp1, tmp3); \ (row3) = _mm_movehl_ps(tmp3, tmp1); \ } while (0) /* Aliases for compatibility. */ #define _m_pextrw _mm_extract_pi16 #define _m_pinsrw _mm_insert_pi16 #define _m_pmaxsw _mm_max_pi16 #define _m_pmaxub _mm_max_pu8 #define _m_pminsw _mm_min_pi16 #define _m_pminub _mm_min_pu8 #define _m_pmovmskb _mm_movemask_pi8 #define _m_pmulhuw _mm_mulhi_pu16 #define _m_pshufw _mm_shuffle_pi16 #define _m_maskmovq _mm_maskmove_si64 #define _m_pavgb _mm_avg_pu8 #define _m_pavgw _mm_avg_pu16 #define _m_psadbw _mm_sad_pu8 #define _m_ _mm_ #undef __trunc64 #undef __zext128 #undef __anyext128 #undef __zeroupper64 #undef __DEFAULT_FN_ATTRS #undef __DEFAULT_FN_ATTRS_CONSTEXPR #undef __DEFAULT_FN_ATTRS_SSE2 #undef __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR /* Ugly hack for backwards-compatibility (compatible with gcc) */ #if 0 /* disabled by -frewrite-includes */ #if defined(__SSE2__) && !__building_module(_Builtin_intrinsics) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 3197 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* emmintrin.h expanded by -frewrite-includes */ #include #else /* emmintrin.h expanded by -frewrite-includes */ # 3197 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 1 3 /*===---- emmintrin.h - SSE2 intrinsics ------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __EMMINTRIN_H #define __EMMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* xmmintrin.h expanded by -frewrite-includes */ #include #else /* xmmintrin.h expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 1 3 /*===---- xmmintrin.h - SSE intrinsics -------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __XMMINTRIN_H #define __XMMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 # 18 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 typedef int __v4si __attribute__((__vector_size__(16))); typedef float __v4sf __attribute__((__vector_size__(16))); typedef float __m128 __attribute__((__vector_size__(16), __aligned__(16))); typedef float __m128_u __attribute__((__vector_size__(16), __aligned__(1))); /* Unsigned types */ typedef unsigned int __v4su __attribute__((__vector_size__(16))); /* This header should only be included in a hosted environment as it depends on * a standard library to provide allocation routines. */ #if 0 /* disabled by -frewrite-includes */ #if __STDC_HOSTED__ #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 31 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 31 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 # 32 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #endif # 33 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 36 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse,no-evex512"), \ __min_vector_width__(128))) #define __DEFAULT_FN_ATTRS_SSE2 \ __attribute__((__always_inline__, __nodebug__, \ __target__("sse2,no-evex512"), __min_vector_width__(128))) #else # 43 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse"), \ __min_vector_width__(128))) #define __DEFAULT_FN_ATTRS_SSE2 \ __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \ __min_vector_width__(128))) #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && (__cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 52 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 constexpr #else # 55 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS #define __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR __DEFAULT_FN_ATTRS_SSE2 #endif # 58 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #define __trunc64(x) \ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) #define __zext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, 2, 3) #define __anyext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, -1, -1) #define __zeroupper64(x) \ (__m128i) __builtin_shufflevector((__v4si)(x), __extension__(__v4si){}, 0, \ 1, 4, 5) /// Adds the 32-bit float values in the low-order bits of the operands. /// /// \headerfile /// /// This intrinsic corresponds to the VADDSS / ADDSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the sum /// of the lower 32 bits of both operands. The upper 96 bits are copied from /// the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_ss(__m128 __a, __m128 __b) { __a[0] += __b[0]; return __a; } /// Adds two 128-bit vectors of [4 x float], and returns the results of /// the addition. /// /// \headerfile /// /// This intrinsic corresponds to the VADDPS / ADDPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the sums of both /// operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a + (__v4sf)__b); } /// Subtracts the 32-bit float value in the low-order bits of the second /// operand from the corresponding value in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VSUBSS / SUBSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the minuend. The lower 32 bits /// of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing the subtrahend. The lower 32 /// bits of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// difference of the lower 32 bits of both operands. The upper 96 bits are /// copied from the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_ss(__m128 __a, __m128 __b) { __a[0] -= __b[0]; return __a; } /// Subtracts each of the values of the second operand from the first /// operand, both of which are 128-bit vectors of [4 x float] and returns /// the results of the subtraction. /// /// \headerfile /// /// This intrinsic corresponds to the VSUBPS / SUBPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the minuend. /// \param __b /// A 128-bit vector of [4 x float] containing the subtrahend. /// \returns A 128-bit vector of [4 x float] containing the differences between /// both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a - (__v4sf)__b); } /// Multiplies two 32-bit float values in the low-order bits of the /// operands. /// /// \headerfile /// /// This intrinsic corresponds to the VMULSS / MULSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// The lower 32 bits of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the product of the lower /// 32 bits of both operands. The upper 96 bits are copied from the upper 96 /// bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_ss(__m128 __a, __m128 __b) { __a[0] *= __b[0]; return __a; } /// Multiplies two 128-bit vectors of [4 x float] and returns the /// results of the multiplication. /// /// \headerfile /// /// This intrinsic corresponds to the VMULPS / MULPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the products of both /// operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a * (__v4sf)__b); } /// Divides the value in the low-order 32 bits of the first operand by /// the corresponding value in the second operand. /// /// \headerfile /// /// This intrinsic corresponds to the VDIVSS / DIVSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the dividend. The lower 32 /// bits of this operand are used in the calculation. /// \param __b /// A 128-bit vector of [4 x float] containing the divisor. The lower 32 bits /// of this operand are used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the quotients of the /// lower 32 bits of both operands. The upper 96 bits are copied from the /// upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_ss(__m128 __a, __m128 __b) { __a[0] /= __b[0]; return __a; } /// Divides two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VDIVPS / DIVPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the dividend. /// \param __b /// A 128-bit vector of [4 x float] containing the divisor. /// \returns A 128-bit vector of [4 x float] containing the quotients of both /// operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_ps(__m128 __a, __m128 __b) { return (__m128)((__v4sf)__a / (__v4sf)__b); } /// Calculates the square root of the value stored in the low-order bits /// of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VSQRTSS / SQRTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the square root of the /// value in the low-order bits of the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ss(__m128 __a) { return (__m128)__builtin_ia32_sqrtss((__v4sf)__a); } /// Calculates the square roots of the values stored in a 128-bit vector /// of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VSQRTPS / SQRTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the square roots of the /// values in the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_sqrt_ps(__m128 __a) { return __builtin_ia32_sqrtps((__v4sf)__a); } /// Calculates the approximate reciprocal of the value stored in the /// low-order bits of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRCPSS / RCPSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocal of the value in the low-order bits of the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ss(__m128 __a) { return (__m128)__builtin_ia32_rcpss((__v4sf)__a); } /// Calculates the approximate reciprocals of the values stored in a /// 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRCPPS / RCPPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocals of the values in the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rcp_ps(__m128 __a) { return (__m128)__builtin_ia32_rcpps((__v4sf)__a); } /// Calculates the approximate reciprocal of the square root of the value /// stored in the low-order bits of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRSQRTSS / RSQRTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the calculation. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocal of the square root of the value in the low-order bits of the /// operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ss(__m128 __a) { return __builtin_ia32_rsqrtss((__v4sf)__a); } /// Calculates the approximate reciprocals of the square roots of the /// values stored in a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VRSQRTPS / RSQRTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the approximate /// reciprocals of the square roots of the values in the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_rsqrt_ps(__m128 __a) { return __builtin_ia32_rsqrtps((__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands and returns the lesser value in the low-order bits of the /// vector of [4 x float]. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMINSS / MINSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// minimum value between both operands. The upper 96 bits are copied from /// the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ss(__m128 __a, __m128 __b) { return __builtin_ia32_minss((__v4sf)__a, (__v4sf)__b); } /// Compares two 128-bit vectors of [4 x float] and returns the lesser /// of each pair of values. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMINPS / MINPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. /// \returns A 128-bit vector of [4 x float] containing the minimum values /// between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_min_ps(__m128 __a, __m128 __b) { return __builtin_ia32_minps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands and returns the greater value in the low-order bits of a 128-bit /// vector of [4 x float]. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMAXSS / MAXSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// maximum value between both operands. The upper 96 bits are copied from /// the upper 96 bits of the first source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ss(__m128 __a, __m128 __b) { return __builtin_ia32_maxss((__v4sf)__a, (__v4sf)__b); } /// Compares two 128-bit vectors of [4 x float] and returns the greater /// of each pair of values. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMAXPS / MAXPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. /// \returns A 128-bit vector of [4 x float] containing the maximum values /// between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_max_ps(__m128 __a, __m128 __b) { return __builtin_ia32_maxps((__v4sf)__a, (__v4sf)__b); } /// Performs a bitwise AND of two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VANDPS / ANDPS instructions. /// /// \param __a /// A 128-bit vector containing one of the source operands. /// \param __b /// A 128-bit vector containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the /// values between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_and_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a & (__v4su)__b); } /// Performs a bitwise AND of two 128-bit vectors of [4 x float], using /// the one's complement of the values contained in the first source /// operand. /// /// \headerfile /// /// This intrinsic corresponds to the VANDNPS / ANDNPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing the first source operand. The /// one's complement of this value is used in the bitwise AND. /// \param __b /// A 128-bit vector of [4 x float] containing the second source operand. /// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the /// one's complement of the first operand and the values in the second /// operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_andnot_ps(__m128 __a, __m128 __b) { return (__m128)(~(__v4su)__a & (__v4su)__b); } /// Performs a bitwise OR of two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VORPS / ORPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the bitwise OR of the /// values between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_or_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a | (__v4su)__b); } /// Performs a bitwise exclusive OR of two 128-bit vectors of /// [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VXORPS / XORPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// \returns A 128-bit vector of [4 x float] containing the bitwise exclusive OR /// of the values between both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_xor_ps(__m128 __a, __m128 __b) { return (__m128)((__v4su)__a ^ (__v4su)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands for equality. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPEQSS / CMPEQSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpeqss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] for equality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPEQPS / CMPEQPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpeq_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpeqps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is less than the /// corresponding value in the second operand. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmplt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is less than or /// equal to the corresponding value in the second operand. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true, in /// the low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLESS / CMPLESS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpless((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are less than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmple_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpleps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is greater than /// the corresponding value in the second operand. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTSS / CMPLTSS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpltss((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTPS / CMPLTPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpgt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpltps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is greater than /// or equal to the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLESS / CMPLESS instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpless((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are greater than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLEPS / CMPLEPS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpge_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both operands /// for inequality. /// /// The comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNEQSS / CMPNEQSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpneqss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] for inequality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNEQPS / CMPNEQPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpneq_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpneqps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not less than /// the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnlt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not less than /// or equal to the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLESS / CMPNLESS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnless((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not less than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnle_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnleps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not greater /// than the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTSS / CMPNLTSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpnltss((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTPS / CMPNLTPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpngt_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnltps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is not greater /// than or equal to the corresponding value in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true, in the /// low-order bits of a vector of [4 x float]. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLESS / CMPNLESS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__builtin_ia32_cmpnless((__v4sf)__b, (__v4sf)__a), 4, 1, 2, 3); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are not greater than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLEPS / CMPNLEPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpnge_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpnleps((__v4sf)__b, (__v4sf)__a); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is ordered with /// respect to the corresponding value in the second operand. /// /// A pair of floating-point values are ordered with respect to each /// other if neither value is a NaN. Each comparison returns 0x0 for false, /// 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPORDSS / CMPORDSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpordss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are ordered with respect to those in the second operand. /// /// A pair of floating-point values are ordered with respect to each /// other if neither value is a NaN. Each comparison returns 0x0 for false, /// 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPORDPS / CMPORDPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpord_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpordps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the value in the first operand is unordered /// with respect to the corresponding value in the second operand. /// /// A pair of double-precision values are unordered with respect to each /// other if one or both values are NaN. Each comparison returns 0x0 for /// false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPUNORDSS / CMPUNORDSS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [4 x float] containing one of the operands. The lower /// 32 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [4 x float] containing the comparison results /// in the low-order bits. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ss(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpunordss((__v4sf)__a, (__v4sf)__b); } /// Compares each of the corresponding 32-bit float values of the /// 128-bit vectors of [4 x float] to determine if the values in the first /// operand are unordered with respect to those in the second operand. /// /// A pair of double-precision values are unordered with respect to each /// other if one or both values are NaN. Each comparison returns 0x0 for /// false, 0xFFFFFFFFFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPUNORDPS / CMPUNORDPS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x float] containing the comparison results. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cmpunord_ps(__m128 __a, __m128 __b) { return (__m128)__builtin_ia32_cmpunordps((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands for equality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comieq((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is less than the second /// operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comilt((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is less than or equal to the /// second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comile((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is greater than the second /// operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comigt((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is greater than or equal to /// the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comige((__v4sf)__a, (__v4sf)__b); } /// Compares two 32-bit float values in the low-order bits of both /// operands to determine if the first operand is not equal to the second /// operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 1. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISS / COMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_comineq((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine equality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomieq((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// less than the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomilt((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// less than or equal to the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomile((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// greater than the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomigt((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine if the first operand is /// greater than or equal to the second operand. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomige((__v4sf)__a, (__v4sf)__b); } /// Performs an unordered comparison of two 32-bit float values using /// the low-order bits of both operands to determine inequality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISS / UCOMISS instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \param __b /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the comparison. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_ss(__m128 __a, __m128 __b) { return __builtin_ia32_ucomineq((__v4sf)__a, (__v4sf)__b); } /// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtss_si32(__m128 __a) { return __builtin_ia32_cvtss2si((__v4sf)__a); } /// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvt_ss2si(__m128 __a) { return _mm_cvtss_si32(__a); } #ifdef __x86_64__ /// Converts a float value contained in the lower 32 bits of a vector of /// [4 x float] into a 64-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SI / CVTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 64-bit integer containing the converted value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtss_si64(__m128 __a) { return __builtin_ia32_cvtss2si64((__v4sf)__a); } #endif # 1453 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtps_pi32(__m128 __a) { return __trunc64(__builtin_ia32_cvtps2dq((__v4sf)__zeroupper64(__a))); } /// Converts two low-order float values in a 128-bit vector of /// [4 x float] into a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvt_ps2pi(__m128 __a) { return _mm_cvtps_pi32(__a); } /// Converts the lower (first) element of a vector of [4 x float] into a signed /// truncated (rounded toward zero) 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvttss_si32(__m128 __a) { return __builtin_ia32_cvttss2si((__v4sf)__a); } /// Converts the lower (first) element of a vector of [4 x float] into a signed /// truncated (rounded toward zero) 32-bit integer. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 32-bit integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtt_ss2si(__m128 __a) { return _mm_cvttss_si32(__a); } #ifdef __x86_64__ /// Converts the lower (first) element of a vector of [4 x float] into a signed /// truncated (rounded toward zero) 64-bit integer. /// /// If the converted value does not fit in a 64-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSS2SI / CVTTSS2SI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the conversion. /// \returns A 64-bit integer containing the converted value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvttss_si64(__m128 __a) { return __builtin_ia32_cvttss2si64((__v4sf)__a); } #endif # 1561 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Converts the lower (first) two elements of a 128-bit vector of [4 x float] /// into two signed truncated (rounded toward zero) 32-bit integers, /// returned in a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTTPS2PI / VTTPS2PI /// instructions. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvttps_pi32(__m128 __a) { return __trunc64(__builtin_ia32_cvttps2dq((__v4sf)__zeroupper64(__a))); } /// Converts the lower (first) two elements of a 128-bit vector of [4 x float] /// into two signed truncated (rounded toward zero) 64-bit integers, /// returned in a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTTPS2PI instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 64-bit integer vector containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtt_ps2pi(__m128 __a) { return _mm_cvttps_pi32(__a); } /// Converts a 32-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination vector are copied from the /// corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 32-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// converted value of the second operand. The upper 96 bits are copied from /// the upper 96 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi32_ss(__m128 __a, int __b) { __a[0] = __b; return __a; } /// Converts a 32-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination are copied from the /// corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 32-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// converted value of the second operand. The upper 96 bits are copied from /// the upper 96 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvt_si2ss(__m128 __a, int __b) { return _mm_cvtsi32_ss(__a, __b); } #ifdef __x86_64__ /// Converts a 64-bit signed integer value into a floating point value /// and writes it to the lower 32 bits of the destination. The remaining /// higher order elements of the destination are copied from the /// corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SS / CVTSI2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 64-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the /// converted value of the second operand. The upper 96 bits are copied from /// the upper 96 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi64_ss(__m128 __a, long long __b) { __a[0] = __b; return __a; } #endif # 1673 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Converts two elements of a 64-bit vector of [2 x i32] into two /// floating point values and writes them to the lower 64-bits of the /// destination. The remaining higher order elements of the destination are /// copied from the corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 64-bit vector of [2 x i32]. The elements in this vector are converted /// and written to the corresponding low-order elements in the destination. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// converted value of the second operand. The upper 64 bits are copied from /// the upper 64 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi32_ps(__m128 __a, __m64 __b) { return (__m128)__builtin_shufflevector( (__v4sf)__a, __builtin_convertvector((__v4si)__zext128(__b), __v4sf), 4, 5, 2, 3); } /// Converts two elements of a 64-bit vector of [2 x i32] into two /// floating point values and writes them to the lower 64-bits of the /// destination. The remaining higher order elements of the destination are /// copied from the corresponding elements in the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \param __b /// A 64-bit vector of [2 x i32]. The elements in this vector are converted /// and written to the corresponding low-order elements in the destination. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// converted value from the second operand. The upper 64 bits are copied /// from the upper 64 bits of the first operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvt_pi2ps(__m128 __a, __m64 __b) { return _mm_cvtpi32_ps(__a, __b); } /// Extracts a float value contained in the lower 32 bits of a vector of /// [4 x float]. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are /// used in the extraction. /// \returns A 32-bit float containing the extracted value. static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtss_f32(__m128 __a) { return __a[0]; } /// Loads two packed float values from the address \a __p into the /// high-order bits of a 128-bit vector of [4 x float]. The low-order bits /// are copied from the low-order bits of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. Bits [63:0] are written to bits [63:0] /// of the destination. /// \param __p /// A pointer to two packed float values. Bits [63:0] are written to bits /// [127:64] of the destination. /// \returns A 128-bit vector of [4 x float] containing the moved values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadh_pi(__m128 __a, const __m64 *__p) { typedef float __mm_loadh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_loadh_pi_struct { __mm_loadh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); __mm_loadh_pi_v2f32 __b = ((const struct __mm_loadh_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 0, 1, 4, 5); } /// Loads two packed float values from the address \a __p into the /// low-order bits of a 128-bit vector of [4 x float]. The high-order bits /// are copied from the high-order bits of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. Bits [127:64] are written to bits /// [127:64] of the destination. /// \param __p /// A pointer to two packed float values. Bits [63:0] are written to bits /// [63:0] of the destination. /// \returns A 128-bit vector of [4 x float] containing the moved values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadl_pi(__m128 __a, const __m64 *__p) { typedef float __mm_loadl_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_loadl_pi_struct { __mm_loadl_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); __mm_loadl_pi_v2f32 __b = ((const struct __mm_loadl_pi_struct*)__p)->__u; __m128 __bb = __builtin_shufflevector(__b, __b, 0, 1, 0, 1); return __builtin_shufflevector(__a, __bb, 4, 5, 2, 3); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits of the vector are initialized with the single-precision /// floating-point value loaded from a specified memory location. The upper /// 96 bits are set to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSS / MOVSS instruction. /// /// \param __p /// A pointer to a 32-bit memory location containing a single-precision /// floating-point value. /// \returns An initialized 128-bit floating-point vector of [4 x float]. The /// lower 32 bits contain the value loaded from the memory location. The /// upper 96 bits are set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ss(const float *__p) { struct __mm_load_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); float __u = ((const struct __mm_load_ss_struct*)__p)->__u; return __extension__ (__m128){ __u, 0, 0, 0 }; } /// Loads a 32-bit float value and duplicates it to all four vector /// elements of a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VBROADCASTSS / MOVSS + shuffling /// instruction. /// /// \param __p /// A pointer to a float value to be loaded and duplicated. /// \returns A 128-bit vector of [4 x float] containing the loaded and /// duplicated values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load1_ps(const float *__p) { struct __mm_load1_ps_struct { float __u; } __attribute__((__packed__, __may_alias__)); float __u = ((const struct __mm_load1_ps_struct*)__p)->__u; return __extension__ (__m128){ __u, __u, __u, __u }; } #define _mm_load_ps1(p) _mm_load1_ps(p) /// Loads a 128-bit floating-point vector of [4 x float] from an aligned /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 128-bit aligned. /// \returns A 128-bit vector of [4 x float] containing the loaded values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_load_ps(const float *__p) { return *(const __m128*)__p; } /// Loads a 128-bit floating-point vector of [4 x float] from an /// unaligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location does not have to be aligned. /// \returns A 128-bit vector of [4 x float] containing the loaded values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadu_ps(const float *__p) { struct __loadu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); return ((const struct __loadu_ps*)__p)->__v; } /// Loads four packed float values, in reverse order, from an aligned /// memory location to 32-bit elements in a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 128-bit aligned. /// \returns A 128-bit vector of [4 x float] containing the moved values, loaded /// in reverse order. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_loadr_ps(const float *__p) { __m128 __a = _mm_load_ps(__p); return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); } /// Create a 128-bit vector of [4 x float] with undefined values. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \returns A 128-bit vector of [4 x float] containing undefined values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_undefined_ps(void) { return (__m128)__builtin_ia32_undef128(); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits of the vector are initialized with the specified single-precision /// floating-point value. The upper 96 bits are set to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSS / MOVSS instruction. /// /// \param __w /// A single-precision floating-point value used to initialize the lower 32 /// bits of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. The /// lower 32 bits contain the value provided in the source operand. The /// upper 96 bits are set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ss(float __w) { return __extension__ (__m128){ __w, 0.0f, 0.0f, 0.0f }; } /// Constructs a 128-bit floating-point vector of [4 x float], with each /// of the four single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// /// \headerfile /// /// This intrinsic corresponds to the VPERMILPS / PERMILPS instruction. /// /// \param __w /// A single-precision floating-point value used to initialize each vector /// element of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_ps(float __w) { return __extension__ (__m128){ __w, __w, __w, __w }; } /* Microsoft specific. */ /// Constructs a 128-bit floating-point vector of [4 x float], with each /// of the four single-precision floating-point vector elements set to the /// specified single-precision floating-point value. /// /// \headerfile /// /// This intrinsic corresponds to the VPERMILPS / PERMILPS instruction. /// /// \param __w /// A single-precision floating-point value used to initialize each vector /// element of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ps1(float __w) { return _mm_set1_ps(__w); } /// Constructs a 128-bit floating-point vector of [4 x float] /// initialized with the specified single-precision floating-point values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __z /// A single-precision floating-point value used to initialize bits [127:96] /// of the result. /// \param __y /// A single-precision floating-point value used to initialize bits [95:64] /// of the result. /// \param __x /// A single-precision floating-point value used to initialize bits [63:32] /// of the result. /// \param __w /// A single-precision floating-point value used to initialize bits [31:0] /// of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ps(float __z, float __y, float __x, float __w) { return __extension__ (__m128){ __w, __x, __y, __z }; } /// Constructs a 128-bit floating-point vector of [4 x float], /// initialized in reverse order with the specified 32-bit single-precision /// float-point values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __z /// A single-precision floating-point value used to initialize bits [31:0] /// of the result. /// \param __y /// A single-precision floating-point value used to initialize bits [63:32] /// of the result. /// \param __x /// A single-precision floating-point value used to initialize bits [95:64] /// of the result. /// \param __w /// A single-precision floating-point value used to initialize bits [127:96] /// of the result. /// \returns An initialized 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_ps(float __z, float __y, float __x, float __w) { return __extension__ (__m128){ __z, __y, __x, __w }; } /// Constructs a 128-bit floating-point vector of [4 x float] initialized /// to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VXORPS / XORPS instruction. /// /// \returns An initialized 128-bit floating-point vector of [4 x float] with /// all elements set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_ps(void) { return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f }; } /// Stores the upper 64 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VPEXTRQ / PEXTRQ instruction. /// /// \param __p /// A pointer to a 64-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeh_pi(__m64 *__p, __m128 __a) { typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_storeh_pi_struct { __mm_storeh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 2, 3); } /// Stores the lower 64 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPS / MOVLPS instruction. /// /// \param __p /// A pointer to a memory location that will receive the float values. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_pi(__m64 *__p, __m128 __a) { typedef float __mm_storeh_pi_v2f32 __attribute__((__vector_size__(8))); struct __mm_storeh_pi_struct { __mm_storeh_pi_v2f32 __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pi_struct*)__p)->__u = __builtin_shufflevector(__a, __a, 0, 1); } /// Stores the lower 32 bits of a 128-bit vector of [4 x float] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSS / MOVSS instruction. /// /// \param __p /// A pointer to a 32-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ss(float *__p, __m128 __a) { struct __mm_store_ss_struct { float __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_store_ss_struct*)__p)->__u = __a[0]; } /// Stores a 128-bit vector of [4 x float] to an unaligned memory /// location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location does not have to be aligned. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_ps(float *__p, __m128 __a) { struct __storeu_ps { __m128_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_ps*)__p)->__v = __a; } /// Stores a 128-bit vector of [4 x float] into an aligned memory /// location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 16-byte aligned. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps(float *__p, __m128 __a) { *(__m128*)__p = __a; } /// Stores the lower 32 bits of a 128-bit vector of [4 x float] into /// four contiguous elements in an aligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each /// of the four contiguous elements pointed by \a __p. static __inline__ void __DEFAULT_FN_ATTRS _mm_store1_ps(float *__p, __m128 __a) { __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 0, 0); _mm_store_ps(__p, __a); } /// Stores the lower 32 bits of a 128-bit vector of [4 x float] into /// four contiguous elements in an aligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. /// \param __a /// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each /// of the four contiguous elements pointed by \a __p. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_ps1(float *__p, __m128 __a) { _mm_store1_ps(__p, __a); } /// Stores float values from a 128-bit vector of [4 x float] to an /// aligned memory location in reverse order. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS + shuffling /// instruction. /// /// \param __p /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 128-bit aligned. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storer_ps(float *__p, __m128 __a) { __a = __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 3, 2, 1, 0); _mm_store_ps(__p, __a); } #define _MM_HINT_ET0 7 #define _MM_HINT_ET1 6 #define _MM_HINT_T0 3 #define _MM_HINT_T1 2 #define _MM_HINT_T2 1 #define _MM_HINT_NTA 0 #ifndef _MSC_VER /* FIXME: We have to #define this because "sel" must be a constant integer, and Sema doesn't do any form of constant propagation yet. */ /// Loads one cache line of data from the specified address to a location /// closer to the processor. /// /// \headerfile /// /// \code /// void _mm_prefetch(const void *a, const int sel); /// \endcode /// /// This intrinsic corresponds to the PREFETCHNTA instruction. /// /// \param a /// A pointer to a memory location containing a cache line of data. /// \param sel /// A predefined integer constant specifying the type of prefetch /// operation: \n /// _MM_HINT_NTA: Move data using the non-temporal access (NTA) hint. The /// PREFETCHNTA instruction will be generated. \n /// _MM_HINT_T0: Move data using the T0 hint. The PREFETCHT0 instruction will /// be generated. \n /// _MM_HINT_T1: Move data using the T1 hint. The PREFETCHT1 instruction will /// be generated. \n /// _MM_HINT_T2: Move data using the T2 hint. The PREFETCHT2 instruction will /// be generated. #define _mm_prefetch(a, sel) (__builtin_prefetch((const void *)(a), \ ((sel) >> 2) & 1, (sel) & 0x3)) #endif # 2231 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Stores a 64-bit integer in the specified aligned memory location. To /// minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the MOVNTQ instruction. /// /// \param __p /// A pointer to an aligned memory location used to store the register value. /// \param __a /// A 64-bit integer containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pi(void *__p, __m64 __a) { __builtin_nontemporal_store(__a, (__m64 *)__p); } /// Moves packed float values from a 128-bit vector of [4 x float] to a /// 128-bit aligned memory location. To minimize caching, the data is flagged /// as non-temporal (unlikely to be used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. /// /// \param __p /// A pointer to a 128-bit aligned memory location that will receive the /// single-precision floating-point values. /// \param __a /// A 128-bit vector of [4 x float] containing the values to be moved. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_ps(void *__p, __m128 __a) { __builtin_nontemporal_store((__v4sf)__a, (__v4sf*)__p); } #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2270 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 extern "C" { #endif # 2272 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Forces strong memory ordering (serialization) between store /// instructions preceding this instruction and store instructions following /// this instruction, ensuring the system completes all previous stores /// before executing subsequent stores. /// /// \headerfile /// /// This intrinsic corresponds to the SFENCE instruction. /// void _mm_sfence(void); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2285 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 } // extern "C" #endif # 2287 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Extracts 16-bit element from a 64-bit vector of [4 x i16] and /// returns it, as specified by the immediate integer operand. /// /// \headerfile /// /// \code /// int _mm_extract_pi16(__m64 a, int n); /// \endcode /// /// This intrinsic corresponds to the VPEXTRW / PEXTRW instruction. /// /// \param a /// A 64-bit vector of [4 x i16]. /// \param n /// An immediate integer operand that determines which bits are extracted: \n /// 0: Bits [15:0] are copied to the destination. \n /// 1: Bits [31:16] are copied to the destination. \n /// 2: Bits [47:32] are copied to the destination. \n /// 3: Bits [63:48] are copied to the destination. /// \returns A 16-bit integer containing the extracted 16 bits of packed data. #define _mm_extract_pi16(a, n) \ ((int)(unsigned short)__builtin_ia32_vec_ext_v4hi((__v4hi)a, (int)n)) /// Copies data from the 64-bit vector of [4 x i16] to the destination, /// and inserts the lower 16-bits of an integer operand at the 16-bit offset /// specified by the immediate operand \a n. /// /// \headerfile /// /// \code /// __m64 _mm_insert_pi16(__m64 a, int d, int n); /// \endcode /// /// This intrinsic corresponds to the PINSRW instruction. /// /// \param a /// A 64-bit vector of [4 x i16]. /// \param d /// An integer. The lower 16-bit value from this operand is written to the /// destination at the offset specified by operand \a n. /// \param n /// An immediate integer operant that determines which the bits to be used /// in the destination. \n /// 0: Bits [15:0] are copied to the destination. \n /// 1: Bits [31:16] are copied to the destination. \n /// 2: Bits [47:32] are copied to the destination. \n /// 3: Bits [63:48] are copied to the destination. \n /// The remaining bits in the destination are copied from the corresponding /// bits in operand \a a. /// \returns A 64-bit integer vector containing the copied packed data from the /// operands. #define _mm_insert_pi16(a, d, n) \ ((__m64)__builtin_ia32_vec_set_v4hi((__v4hi)a, (int)d, (int)n)) /// Compares each of the corresponding packed 16-bit integer values of /// the 64-bit integer vectors, and writes the greater value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMAXSW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_max_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_max((__v4hi)__a, (__v4hi)__b); } /// Compares each of the corresponding packed 8-bit unsigned integer /// values of the 64-bit integer vectors, and writes the greater value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMAXUB instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_max_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_max((__v8qu)__a, (__v8qu)__b); } /// Compares each of the corresponding packed 16-bit integer values of /// the 64-bit integer vectors, and writes the lesser value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMINSW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_min_pi16(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_min((__v4hi)__a, (__v4hi)__b); } /// Compares each of the corresponding packed 8-bit unsigned integer /// values of the 64-bit integer vectors, and writes the lesser value to the /// corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMINUB instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the comparison results. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_min_pu8(__m64 __a, __m64 __b) { return (__m64)__builtin_elementwise_min((__v8qu)__a, (__v8qu)__b); } /// Takes the most significant bit from each 8-bit element in a 64-bit /// integer vector to create an 8-bit mask value. Zero-extends the value to /// 32-bit integer and writes it to the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMOVMSKB instruction. /// /// \param __a /// A 64-bit integer vector containing the values with bits to be extracted. /// \returns The most significant bit from each 8-bit element in \a __a, /// written to bits [7:0]. static __inline__ int __DEFAULT_FN_ATTRS_SSE2 _mm_movemask_pi8(__m64 __a) { return __builtin_ia32_pmovmskb128((__v16qi)__zext128(__a)); } /// Multiplies packed 16-bit unsigned integer values and writes the /// high-order 16 bits of each 32-bit product to the corresponding bits in /// the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PMULHUW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the products of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_mulhi_pu16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pmulhuw128((__v8hi)__anyext128(__a), (__v8hi)__anyext128(__b))); } /// Shuffles the 4 16-bit integers from a 64-bit integer vector to the /// destination, as specified by the immediate value operand. /// /// \headerfile /// /// \code /// __m64 _mm_shuffle_pi16(__m64 a, const int n); /// \endcode /// /// This intrinsic corresponds to the PSHUFW instruction. /// /// \param a /// A 64-bit integer vector containing the values to be shuffled. /// \param n /// An immediate value containing an 8-bit value specifying which elements to /// copy from \a a. The destinations within the 64-bit destination are /// assigned values as follows: \n /// Bits [1:0] are used to assign values to bits [15:0] in the /// destination. \n /// Bits [3:2] are used to assign values to bits [31:16] in the /// destination. \n /// Bits [5:4] are used to assign values to bits [47:32] in the /// destination. \n /// Bits [7:6] are used to assign values to bits [63:48] in the /// destination. \n /// Bit value assignments: \n /// 00: assigned from bits [15:0] of \a a. \n /// 01: assigned from bits [31:16] of \a a. \n /// 10: assigned from bits [47:32] of \a a. \n /// 11: assigned from bits [63:48] of \a a. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 64-bit integer vector containing the shuffled values. #define _mm_shuffle_pi16(a, n) \ ((__m64)__builtin_shufflevector((__v4hi)(__m64)(a), __extension__(__v4hi){}, \ (n) & 0x3, ((n) >> 2) & 0x3, \ ((n) >> 4) & 0x3, ((n) >> 6) & 0x3)) /// Conditionally copies the values from each 8-bit element in the first /// 64-bit integer vector operand to the specified memory location, as /// specified by the most significant bit in the corresponding element in the /// second 64-bit integer vector operand. /// /// To minimize caching, the data is flagged as non-temporal /// (unlikely to be used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the MASKMOVQ instruction. /// /// \param __d /// A 64-bit integer vector containing the values with elements to be copied. /// \param __n /// A 64-bit integer vector operand. The most significant bit from each 8-bit /// element determines whether the corresponding element in operand \a __d /// is copied. If the most significant bit of a given element is 1, the /// corresponding element in operand \a __d is copied. /// \param __p /// A pointer to a 64-bit memory location that will receive the conditionally /// copied integer values. The address of the memory location does not have /// to be aligned. static __inline__ void __DEFAULT_FN_ATTRS_SSE2 _mm_maskmove_si64(__m64 __d, __m64 __n, char *__p) { // This is complex, because we need to support the case where __p is pointing // within the last 15 to 8 bytes of a page. In that case, using a 128-bit // write might cause a trap where a 64-bit maskmovq would not. (Memory // locations not selected by the mask bits might still cause traps.) __m128i __d128 = __anyext128(__d); __m128i __n128 = __zext128(__n); if (((__SIZE_TYPE__)__p & 0xfff) >= 4096-15 && ((__SIZE_TYPE__)__p & 0xfff) <= 4096-8) { // If there's a risk of spurious trap due to a 128-bit write, back up the // pointer by 8 bytes and shift values in registers to match. __p -= 8; __d128 = __builtin_ia32_pslldqi128_byteshift((__v2di)__d128, 8); __n128 = __builtin_ia32_pslldqi128_byteshift((__v2di)__n128, 8); } __builtin_ia32_maskmovdqu((__v16qi)__d128, (__v16qi)__n128, __p); } /// Computes the rounded averages of the packed unsigned 8-bit integer /// values and writes the averages to the corresponding bits in the /// destination. /// /// \headerfile /// /// This intrinsic corresponds to the PAVGB instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the averages of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_avg_pu8(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pavgb128((__v16qi)__anyext128(__a), (__v16qi)__anyext128(__b))); } /// Computes the rounded averages of the packed unsigned 16-bit integer /// values and writes the averages to the corresponding bits in the /// destination. /// /// \headerfile /// /// This intrinsic corresponds to the PAVGW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector containing the averages of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_avg_pu16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pavgw128((__v8hi)__anyext128(__a), (__v8hi)__anyext128(__b))); } /// Subtracts the corresponding 8-bit unsigned integer values of the two /// 64-bit vector operands and computes the absolute value for each of the /// difference. Then sum of the 8 absolute differences is written to the /// bits [15:0] of the destination; the remaining bits [63:16] are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the PSADBW instruction. /// /// \param __a /// A 64-bit integer vector containing one of the source operands. /// \param __b /// A 64-bit integer vector containing one of the source operands. /// \returns A 64-bit integer vector whose lower 16 bits contain the sums of the /// sets of absolute differences between both operands. The upper bits are /// cleared. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_sad_pu8(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_psadbw128((__v16qi)__zext128(__a), (__v16qi)__zext128(__b))); } #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2603 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 extern "C" { #endif # 2605 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Returns the contents of the MXCSR register as a 32-bit unsigned /// integer value. /// /// There are several groups of macros associated with this /// intrinsic, including: ///
    ///
  • /// For checking exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, /// _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, /// _MM_EXCEPT_INEXACT. There is a convenience wrapper /// _MM_GET_EXCEPTION_STATE(). ///
  • ///
  • /// For checking exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, /// _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. /// There is a convenience wrapper _MM_GET_EXCEPTION_MASK(). ///
  • ///
  • /// For checking rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, /// _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper /// _MM_GET_ROUNDING_MODE(). ///
  • ///
  • /// For checking flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. /// There is a convenience wrapper _MM_GET_FLUSH_ZERO_MODE(). ///
  • ///
  • /// For checking denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, /// _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper /// _MM_GET_DENORMALS_ZERO_MODE(). ///
  • ///
/// /// For example, the following expression checks if an overflow exception has /// occurred: /// \code /// ( _mm_getcsr() & _MM_EXCEPT_OVERFLOW ) /// \endcode /// /// The following expression gets the current rounding mode: /// \code /// _MM_GET_ROUNDING_MODE() /// \endcode /// /// \headerfile /// /// This intrinsic corresponds to the VSTMXCSR / STMXCSR instruction. /// /// \returns A 32-bit unsigned integer containing the contents of the MXCSR /// register. unsigned int _mm_getcsr(void); /// Sets the MXCSR register with the 32-bit unsigned integer value. /// /// There are several groups of macros associated with this intrinsic, /// including: ///
    ///
  • /// For setting exception states: _MM_EXCEPT_INVALID, _MM_EXCEPT_DIV_ZERO, /// _MM_EXCEPT_DENORM, _MM_EXCEPT_OVERFLOW, _MM_EXCEPT_UNDERFLOW, /// _MM_EXCEPT_INEXACT. There is a convenience wrapper /// _MM_SET_EXCEPTION_STATE(x) where x is one of these macros. ///
  • ///
  • /// For setting exception masks: _MM_MASK_UNDERFLOW, _MM_MASK_OVERFLOW, /// _MM_MASK_INVALID, _MM_MASK_DENORM, _MM_MASK_DIV_ZERO, _MM_MASK_INEXACT. /// There is a convenience wrapper _MM_SET_EXCEPTION_MASK(x) where x is one /// of these macros. ///
  • ///
  • /// For setting rounding modes: _MM_ROUND_NEAREST, _MM_ROUND_DOWN, /// _MM_ROUND_UP, _MM_ROUND_TOWARD_ZERO. There is a convenience wrapper /// _MM_SET_ROUNDING_MODE(x) where x is one of these macros. ///
  • ///
  • /// For setting flush-to-zero mode: _MM_FLUSH_ZERO_ON, _MM_FLUSH_ZERO_OFF. /// There is a convenience wrapper _MM_SET_FLUSH_ZERO_MODE(x) where x is /// one of these macros. ///
  • ///
  • /// For setting denormals-are-zero mode: _MM_DENORMALS_ZERO_ON, /// _MM_DENORMALS_ZERO_OFF. There is a convenience wrapper /// _MM_SET_DENORMALS_ZERO_MODE(x) where x is one of these macros. ///
  • ///
/// /// For example, the following expression causes subsequent floating-point /// operations to round up: /// _mm_setcsr(_mm_getcsr() | _MM_ROUND_UP) /// /// The following example sets the DAZ and FTZ flags: /// \code /// void setFlags() { /// _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); /// _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); /// } /// \endcode /// /// \headerfile /// /// This intrinsic corresponds to the VLDMXCSR / LDMXCSR instruction. /// /// \param __i /// A 32-bit unsigned integer value to be written to the MXCSR register. void _mm_setcsr(unsigned int __i); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 2713 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 } // extern "C" #endif # 2715 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 /// Selects 4 float values from the 128-bit operands of [4 x float], as /// specified by the immediate value operand. /// /// \headerfile /// /// \code /// __m128 _mm_shuffle_ps(__m128 a, __m128 b, const int mask); /// \endcode /// /// This intrinsic corresponds to the VSHUFPS / SHUFPS instruction. /// /// \param a /// A 128-bit vector of [4 x float]. /// \param b /// A 128-bit vector of [4 x float]. /// \param mask /// An immediate value containing an 8-bit value specifying which elements to /// copy from \a a and \a b. \n /// Bits [3:0] specify the values copied from operand \a a. \n /// Bits [7:4] specify the values copied from operand \a b. \n /// The destinations within the 128-bit destination are assigned values as /// follows: \n /// Bits [1:0] are used to assign values to bits [31:0] in the /// destination. \n /// Bits [3:2] are used to assign values to bits [63:32] in the /// destination. \n /// Bits [5:4] are used to assign values to bits [95:64] in the /// destination. \n /// Bits [7:6] are used to assign values to bits [127:96] in the /// destination. \n /// Bit value assignments: \n /// 00: Bits [31:0] copied from the specified operand. \n /// 01: Bits [63:32] copied from the specified operand. \n /// 10: Bits [95:64] copied from the specified operand. \n /// 11: Bits [127:96] copied from the specified operand. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 128-bit vector of [4 x float] containing the shuffled values. #define _mm_shuffle_ps(a, b, mask) \ ((__m128)__builtin_ia32_shufps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), \ (int)(mask))) /// Unpacks the high-order (index 2,3) values from two 128-bit vectors of /// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKHPS / UNPCKHPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. \n /// Bits [95:64] are written to bits [31:0] of the destination. \n /// Bits [127:96] are written to bits [95:64] of the destination. /// \param __b /// A 128-bit vector of [4 x float]. /// Bits [95:64] are written to bits [63:32] of the destination. \n /// Bits [127:96] are written to bits [127:96] of the destination. /// \returns A 128-bit vector of [4 x float] containing the interleaved values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_unpackhi_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 2, 6, 3, 7); } /// Unpacks the low-order (index 0,1) values from two 128-bit vectors of /// [4 x float] and interleaves them into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPS / UNPCKLPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. \n /// Bits [31:0] are written to bits [31:0] of the destination. \n /// Bits [63:32] are written to bits [95:64] of the destination. /// \param __b /// A 128-bit vector of [4 x float]. \n /// Bits [31:0] are written to bits [63:32] of the destination. \n /// Bits [63:32] are written to bits [127:96] of the destination. /// \returns A 128-bit vector of [4 x float] containing the interleaved values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_unpacklo_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 4, 1, 5); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 32 bits are set to the lower 32 bits of the second parameter. The upper /// 96 bits are set to the upper 96 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VBLENDPS / BLENDPS / MOVSS /// instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. The upper 96 bits are /// written to the upper 96 bits of the result. /// \param __b /// A 128-bit floating-point vector of [4 x float]. The lower 32 bits are /// written to the lower 32 bits of the result. /// \returns A 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_move_ss(__m128 __a, __m128 __b) { __a[0] = __b[0]; return __a; } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 64 bits are set to the upper 64 bits of the second parameter. The upper /// 64 bits are set to the upper 64 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKHPD / UNPCKHPD instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are /// written to the upper 64 bits of the result. /// \param __b /// A 128-bit floating-point vector of [4 x float]. The upper 64 bits are /// written to the lower 64 bits of the result. /// \returns A 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movehl_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 6, 7, 2, 3); } /// Constructs a 128-bit floating-point vector of [4 x float]. The lower /// 64 bits are set to the lower 64 bits of the first parameter. The upper /// 64 bits are set to the lower 64 bits of the second parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are /// written to the lower 64 bits of the result. /// \param __b /// A 128-bit floating-point vector of [4 x float]. The lower 64 bits are /// written to the upper 64 bits of the result. /// \returns A 128-bit floating-point vector of [4 x float]. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movelh_ps(__m128 __a, __m128 __b) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__b, 0, 1, 4, 5); } /// Converts a 64-bit vector of [4 x i16] into a 128-bit vector of [4 x /// float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of [4 x i16]. The elements of the destination are copied /// from the corresponding elements in this operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi16_ps(__m64 __a) { return __builtin_convertvector((__v4hi)__a, __v4sf); } /// Converts a 64-bit vector of 16-bit unsigned integer values into a /// 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of 16-bit unsigned integer values. The elements of the /// destination are copied from the corresponding elements in this operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpu16_ps(__m64 __a) { return __builtin_convertvector((__v4hu)__a, __v4sf); } /// Converts the lower four 8-bit values from a 64-bit vector of [8 x i8] /// into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of [8 x i8]. The elements of the destination are copied /// from the corresponding lower 4 elements in this operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi8_ps(__m64 __a) { return __builtin_convertvector( __builtin_shufflevector((__v8qs)__a, __extension__ (__v8qs){}, 0, 1, 2, 3), __v4sf); } /// Converts the lower four unsigned 8-bit integer values from a 64-bit /// vector of [8 x u8] into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of unsigned 8-bit integer values. The elements of the /// destination are copied from the corresponding lower 4 elements in this /// operand. /// \returns A 128-bit vector of [4 x float] containing the copied and converted /// values from the source operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpu8_ps(__m64 __a) { return __builtin_convertvector( __builtin_shufflevector((__v8qu)__a, __extension__ (__v8qu){}, 0, 1, 2, 3), __v4sf); } /// Converts the two 32-bit signed integer values from each 64-bit vector /// operand of [2 x i32] into a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PS + COMPOSITE instruction. /// /// \param __a /// A 64-bit vector of [2 x i32]. The lower elements of the destination are /// copied from the elements in this operand. /// \param __b /// A 64-bit vector of [2 x i32]. The upper elements of the destination are /// copied from the elements in this operand. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// copied and converted values from the first operand. The upper 64 bits /// contain the copied and converted values from the second operand. static __inline__ __m128 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtpi32x2_ps(__m64 __a, __m64 __b) { return __builtin_convertvector( __builtin_shufflevector((__v2si)__a, (__v2si)__b, 0, 1, 2, 3), __v4sf); } /// Converts each single-precision floating-point element of a 128-bit /// floating-point vector of [4 x float] into a 16-bit signed integer, and /// packs the results into a 64-bit integer vector of [4 x i16]. /// /// If the floating-point element is NaN or infinity, or if the /// floating-point element is greater than 0x7FFFFFFF or less than -0x8000, /// it is converted to 0x8000. Otherwise if the floating-point element is /// greater than 0x7FFF, it is converted to 0x7FFF. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. /// \returns A 64-bit integer vector of [4 x i16] containing the converted /// values. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtps_pi16(__m128 __a) { return __trunc64(__builtin_ia32_packssdw128( (__v4si)__builtin_ia32_cvtps2dq((__v4sf)__a), (__v4si)_mm_setzero_ps())); } /// Converts each single-precision floating-point element of a 128-bit /// floating-point vector of [4 x float] into an 8-bit signed integer, and /// packs the results into the lower 32 bits of a 64-bit integer vector of /// [8 x i8]. The upper 32 bits of the vector are set to 0. /// /// If the floating-point element is NaN or infinity, or if the /// floating-point element is greater than 0x7FFFFFFF or less than -0x80, it /// is converted to 0x80. Otherwise if the floating-point element is greater /// than 0x7F, it is converted to 0x7F. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPS2PI + COMPOSITE instruction. /// /// \param __a /// 128-bit floating-point vector of [4 x float]. /// \returns A 64-bit integer vector of [8 x i8]. The lower 32 bits contain the /// converted values and the uppper 32 bits are set to zero. static __inline__ __m64 __DEFAULT_FN_ATTRS_SSE2 _mm_cvtps_pi8(__m128 __a) { __m64 __b, __c; __b = _mm_cvtps_pi16(__a); __c = _mm_setzero_si64(); return _mm_packs_pi16(__b, __c); } /// Extracts the sign bits from each single-precision floating-point /// element of a 128-bit floating-point vector of [4 x float] and returns the /// sign bits in bits [0:3] of the result. Bits [31:4] of the result are set /// to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVMSKPS / MOVMSKPS instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. /// \returns A 32-bit integer value. Bits [3:0] contain the sign bits from each /// single-precision floating-point element of the parameter. Bits [31:4] are /// set to zero. static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_ps(__m128 __a) { return __builtin_ia32_movmskps((__v4sf)__a); } /* Compare */ #define _CMP_EQ_OQ 0x00 /* Equal (ordered, non-signaling) */ #define _CMP_LT_OS 0x01 /* Less-than (ordered, signaling) */ #define _CMP_LE_OS 0x02 /* Less-than-or-equal (ordered, signaling) */ #define _CMP_UNORD_Q 0x03 /* Unordered (non-signaling) */ #define _CMP_NEQ_UQ 0x04 /* Not-equal (unordered, non-signaling) */ #define _CMP_NLT_US 0x05 /* Not-less-than (unordered, signaling) */ #define _CMP_NLE_US 0x06 /* Not-less-than-or-equal (unordered, signaling) */ #define _CMP_ORD_Q 0x07 /* Ordered (non-signaling) */ /// Compares each of the corresponding values of two 128-bit vectors of /// [4 x float], using the operation specified by the immediate integer /// operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, comparisons that are ordered /// return false, and comparisons that are unordered return true. /// /// \headerfile /// /// \code /// __m128 _mm_cmp_ps(__m128 a, __m128 b, const int c); /// \endcode /// /// This intrinsic corresponds to the (V)CMPPS instruction. /// /// \param a /// A 128-bit vector of [4 x float]. /// \param b /// A 128-bit vector of [4 x float]. /// \param c /// An immediate integer operand, with bits [4:0] specifying which comparison /// operation to use: \n /// 0x00: Equal (ordered, non-signaling) \n /// 0x01: Less-than (ordered, signaling) \n /// 0x02: Less-than-or-equal (ordered, signaling) \n /// 0x03: Unordered (non-signaling) \n /// 0x04: Not-equal (unordered, non-signaling) \n /// 0x05: Not-less-than (unordered, signaling) \n /// 0x06: Not-less-than-or-equal (unordered, signaling) \n /// 0x07: Ordered (non-signaling) \n /// \returns A 128-bit vector of [4 x float] containing the comparison results. #define _mm_cmp_ps(a, b, c) \ ((__m128)__builtin_ia32_cmpps((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), (c))) /// Compares each of the corresponding scalar values of two 128-bit /// vectors of [4 x float], using the operation specified by the immediate /// integer operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// If either value in a comparison is NaN, comparisons that are ordered /// return false, and comparisons that are unordered return true. /// /// \headerfile /// /// \code /// __m128 _mm_cmp_ss(__m128 a, __m128 b, const int c); /// \endcode /// /// This intrinsic corresponds to the (V)CMPSS instruction. /// /// \param a /// A 128-bit vector of [4 x float]. /// \param b /// A 128-bit vector of [4 x float]. /// \param c /// An immediate integer operand, with bits [4:0] specifying which comparison /// operation to use: \n /// 0x00: Equal (ordered, non-signaling) \n /// 0x01: Less-than (ordered, signaling) \n /// 0x02: Less-than-or-equal (ordered, signaling) \n /// 0x03: Unordered (non-signaling) \n /// 0x04: Not-equal (unordered, non-signaling) \n /// 0x05: Not-less-than (unordered, signaling) \n /// 0x06: Not-less-than-or-equal (unordered, signaling) \n /// 0x07: Ordered (non-signaling) \n /// \returns A 128-bit vector of [4 x float] containing the comparison results. #define _mm_cmp_ss(a, b, c) \ ((__m128)__builtin_ia32_cmpss((__v4sf)(__m128)(a), (__v4sf)(__m128)(b), (c))) #define _MM_ALIGN16 __attribute__((aligned(16))) #define _MM_SHUFFLE(z, y, x, w) (((z) << 6) | ((y) << 4) | ((x) << 2) | (w)) #define _MM_EXCEPT_INVALID (0x0001U) #define _MM_EXCEPT_DENORM (0x0002U) #define _MM_EXCEPT_DIV_ZERO (0x0004U) #define _MM_EXCEPT_OVERFLOW (0x0008U) #define _MM_EXCEPT_UNDERFLOW (0x0010U) #define _MM_EXCEPT_INEXACT (0x0020U) #define _MM_EXCEPT_MASK (0x003fU) #define _MM_MASK_INVALID (0x0080U) #define _MM_MASK_DENORM (0x0100U) #define _MM_MASK_DIV_ZERO (0x0200U) #define _MM_MASK_OVERFLOW (0x0400U) #define _MM_MASK_UNDERFLOW (0x0800U) #define _MM_MASK_INEXACT (0x1000U) #define _MM_MASK_MASK (0x1f80U) #define _MM_ROUND_NEAREST (0x0000U) #define _MM_ROUND_DOWN (0x2000U) #define _MM_ROUND_UP (0x4000U) #define _MM_ROUND_TOWARD_ZERO (0x6000U) #define _MM_ROUND_MASK (0x6000U) #define _MM_FLUSH_ZERO_MASK (0x8000U) #define _MM_FLUSH_ZERO_ON (0x8000U) #define _MM_FLUSH_ZERO_OFF (0x0000U) #define _MM_GET_EXCEPTION_MASK() (_mm_getcsr() & _MM_MASK_MASK) #define _MM_GET_EXCEPTION_STATE() (_mm_getcsr() & _MM_EXCEPT_MASK) #define _MM_GET_FLUSH_ZERO_MODE() (_mm_getcsr() & _MM_FLUSH_ZERO_MASK) #define _MM_GET_ROUNDING_MODE() (_mm_getcsr() & _MM_ROUND_MASK) #define _MM_SET_EXCEPTION_MASK(x) (_mm_setcsr((_mm_getcsr() & ~_MM_MASK_MASK) | (x))) #define _MM_SET_EXCEPTION_STATE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_EXCEPT_MASK) | (x))) #define _MM_SET_FLUSH_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_FLUSH_ZERO_MASK) | (x))) #define _MM_SET_ROUNDING_MODE(x) (_mm_setcsr((_mm_getcsr() & ~_MM_ROUND_MASK) | (x))) #define _MM_TRANSPOSE4_PS(row0, row1, row2, row3) \ do { \ __m128 tmp3, tmp2, tmp1, tmp0; \ tmp0 = _mm_unpacklo_ps((row0), (row1)); \ tmp2 = _mm_unpacklo_ps((row2), (row3)); \ tmp1 = _mm_unpackhi_ps((row0), (row1)); \ tmp3 = _mm_unpackhi_ps((row2), (row3)); \ (row0) = _mm_movelh_ps(tmp0, tmp2); \ (row1) = _mm_movehl_ps(tmp2, tmp0); \ (row2) = _mm_movelh_ps(tmp1, tmp3); \ (row3) = _mm_movehl_ps(tmp3, tmp1); \ } while (0) /* Aliases for compatibility. */ #define _m_pextrw _mm_extract_pi16 #define _m_pinsrw _mm_insert_pi16 #define _m_pmaxsw _mm_max_pi16 #define _m_pmaxub _mm_max_pu8 #define _m_pminsw _mm_min_pi16 #define _m_pminub _mm_min_pu8 #define _m_pmovmskb _mm_movemask_pi8 #define _m_pmulhuw _mm_mulhi_pu16 #define _m_pshufw _mm_shuffle_pi16 #define _m_maskmovq _mm_maskmove_si64 #define _m_pavgb _mm_avg_pu8 #define _m_pavgw _mm_avg_pu16 #define _m_psadbw _mm_sad_pu8 #define _m_ _mm_ #undef __trunc64 #undef __zext128 #undef __anyext128 #undef __zeroupper64 #undef __DEFAULT_FN_ATTRS #undef __DEFAULT_FN_ATTRS_CONSTEXPR #undef __DEFAULT_FN_ATTRS_SSE2 #undef __DEFAULT_FN_ATTRS_SSE2_CONSTEXPR /* Ugly hack for backwards-compatibility (compatible with gcc) */ #if 0 /* disabled by -frewrite-includes */ #if defined(__SSE2__) && !__building_module(_Builtin_intrinsics) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 3197 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 3197 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 # 3198 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #endif # 3199 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #endif /* __XMMINTRIN_H */ # 3201 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #endif /* xmmintrin.h expanded by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 2 3 typedef double __m128d __attribute__((__vector_size__(16), __aligned__(16))); typedef long long __m128i __attribute__((__vector_size__(16), __aligned__(16))); typedef double __m128d_u __attribute__((__vector_size__(16), __aligned__(1))); typedef long long __m128i_u __attribute__((__vector_size__(16), __aligned__(1))); /* Type defines. */ typedef double __v2df __attribute__((__vector_size__(16))); typedef long long __v2di __attribute__((__vector_size__(16))); typedef short __v8hi __attribute__((__vector_size__(16))); typedef char __v16qi __attribute__((__vector_size__(16))); /* Unsigned types */ typedef unsigned long long __v2du __attribute__((__vector_size__(16))); typedef unsigned short __v8hu __attribute__((__vector_size__(16))); typedef unsigned char __v16qu __attribute__((__vector_size__(16))); /* We need an explicitly signed variant for char. Note that this shouldn't * appear in the interface though. */ typedef signed char __v16qs __attribute__((__vector_size__(16))); #ifdef __SSE2__ /* Both _Float16 and __bf16 require SSE2 being enabled. */ typedef _Float16 __v8hf __attribute__((__vector_size__(16), __aligned__(16))); typedef _Float16 __m128h __attribute__((__vector_size__(16), __aligned__(16))); typedef _Float16 __m128h_u __attribute__((__vector_size__(16), __aligned__(1))); typedef __bf16 __v8bf __attribute__((__vector_size__(16), __aligned__(16))); typedef __bf16 __m128bh __attribute__((__vector_size__(16), __aligned__(16))); #endif # 50 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 53 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, \ __target__("sse2,no-evex512"), __min_vector_width__(128))) #else # 57 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse2"), \ __min_vector_width__(128))) #endif # 61 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && (__cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 63 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr #else # 65 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS #endif # 67 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #define __trunc64(x) \ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) #define __anyext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, -1, -1) /// Adds lower double-precision values in both operands and returns the /// sum in the lower 64 bits of the result. The upper 64 bits of the result /// are copied from the upper double-precision value of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VADDSD / ADDSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// sum of the lower 64 bits of both operands. The upper 64 bits are copied /// from the upper 64 bits of the first source operand. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_sd(__m128d __a, __m128d __b) { __a[0] += __b[0]; return __a; } /// Adds two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VADDPD / ADDPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// \returns A 128-bit vector of [2 x double] containing the sums of both /// operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a + (__v2df)__b); } /// Subtracts the lower double-precision value of the second operand /// from the lower double-precision value of the first operand and returns /// the difference in the lower 64 bits of the result. The upper 64 bits of /// the result are copied from the upper double-precision value of the first /// operand. /// /// \headerfile /// /// This intrinsic corresponds to the VSUBSD / SUBSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the minuend. /// \param __b /// A 128-bit vector of [2 x double] containing the subtrahend. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// difference of the lower 64 bits of both operands. The upper 64 bits are /// copied from the upper 64 bits of the first source operand. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_sd(__m128d __a, __m128d __b) { __a[0] -= __b[0]; return __a; } /// Subtracts two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VSUBPD / SUBPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the minuend. /// \param __b /// A 128-bit vector of [2 x double] containing the subtrahend. /// \returns A 128-bit vector of [2 x double] containing the differences between /// both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a - (__v2df)__b); } /// Multiplies lower double-precision values in both operands and returns /// the product in the lower 64 bits of the result. The upper 64 bits of the /// result are copied from the upper double-precision value of the first /// operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMULSD / MULSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// product of the lower 64 bits of both operands. The upper 64 bits are /// copied from the upper 64 bits of the first source operand. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_sd(__m128d __a, __m128d __b) { __a[0] *= __b[0]; return __a; } /// Multiplies two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VMULPD / MULPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the operands. /// \returns A 128-bit vector of [2 x double] containing the products of both /// operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a * (__v2df)__b); } /// Divides the lower double-precision value of the first operand by the /// lower double-precision value of the second operand and returns the /// quotient in the lower 64 bits of the result. The upper 64 bits of the /// result are copied from the upper double-precision value of the first /// operand. /// /// \headerfile /// /// This intrinsic corresponds to the VDIVSD / DIVSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the dividend. /// \param __b /// A 128-bit vector of [2 x double] containing divisor. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// quotient of the lower 64 bits of both operands. The upper 64 bits are /// copied from the upper 64 bits of the first source operand. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_sd(__m128d __a, __m128d __b) { __a[0] /= __b[0]; return __a; } /// Performs an element-by-element division of two 128-bit vectors of /// [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VDIVPD / DIVPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the dividend. /// \param __b /// A 128-bit vector of [2 x double] containing the divisor. /// \returns A 128-bit vector of [2 x double] containing the quotients of both /// operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2df)__a / (__v2df)__b); } /// Calculates the square root of the lower double-precision value of /// the second operand and returns it in the lower 64 bits of the result. /// The upper 64 bits of the result are copied from the upper /// double-precision value of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VSQRTSD / SQRTSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the operands. The /// upper 64 bits of this operand are copied to the upper 64 bits of the /// result. /// \param __b /// A 128-bit vector of [2 x double] containing one of the operands. The /// square root is calculated using the lower 64 bits of this operand. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// square root of the lower 64 bits of operand \a __b, and whose upper 64 /// bits are copied from the upper 64 bits of operand \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_sqrtsd((__v2df)__b); return __extension__(__m128d){__c[0], __a[1]}; } /// Calculates the square root of the each of two values stored in a /// 128-bit vector of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VSQRTPD / SQRTPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector of [2 x double] containing the square roots of the /// values in the operand. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_sqrt_pd(__m128d __a) { return __builtin_ia32_sqrtpd((__v2df)__a); } /// Compares lower 64-bit double-precision values of both operands, and /// returns the lesser of the pair of values in the lower 64-bits of the /// result. The upper 64 bits of the result are copied from the upper /// double-precision value of the first operand. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMINSD / MINSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the operands. The /// lower 64 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [2 x double] containing one of the operands. The /// lower 64 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// minimum value between both operands. The upper 64 bits are copied from /// the upper 64 bits of the first source operand. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_sd(__m128d __a, __m128d __b) { return __builtin_ia32_minsd((__v2df)__a, (__v2df)__b); } /// Performs element-by-element comparison of the two 128-bit vectors of /// [2 x double] and returns a vector containing the lesser of each pair of /// values. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMINPD / MINPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the operands. /// \returns A 128-bit vector of [2 x double] containing the minimum values /// between both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_min_pd(__m128d __a, __m128d __b) { return __builtin_ia32_minpd((__v2df)__a, (__v2df)__b); } /// Compares lower 64-bit double-precision values of both operands, and /// returns the greater of the pair of values in the lower 64-bits of the /// result. The upper 64 bits of the result are copied from the upper /// double-precision value of the first operand. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMAXSD / MAXSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the operands. The /// lower 64 bits of this operand are used in the comparison. /// \param __b /// A 128-bit vector of [2 x double] containing one of the operands. The /// lower 64 bits of this operand are used in the comparison. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// maximum value between both operands. The upper 64 bits are copied from /// the upper 64 bits of the first source operand. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_sd(__m128d __a, __m128d __b) { return __builtin_ia32_maxsd((__v2df)__a, (__v2df)__b); } /// Performs element-by-element comparison of the two 128-bit vectors of /// [2 x double] and returns a vector containing the greater of each pair /// of values. /// /// If either value in a comparison is NaN, returns the value from \a __b. /// /// \headerfile /// /// This intrinsic corresponds to the VMAXPD / MAXPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the operands. /// \returns A 128-bit vector of [2 x double] containing the maximum values /// between both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_max_pd(__m128d __a, __m128d __b) { return __builtin_ia32_maxpd((__v2df)__a, (__v2df)__b); } /// Performs a bitwise AND of two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VPAND / PAND instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the /// values between both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_and_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2du)__a & (__v2du)__b); } /// Performs a bitwise AND of two 128-bit vectors of [2 x double], using /// the one's complement of the values contained in the first source operand. /// /// \headerfile /// /// This intrinsic corresponds to the VPANDN / PANDN instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the left source operand. The /// one's complement of this value is used in the bitwise AND. /// \param __b /// A 128-bit vector of [2 x double] containing the right source operand. /// \returns A 128-bit vector of [2 x double] containing the bitwise AND of the /// values in the second operand and the one's complement of the first /// operand. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_andnot_pd(__m128d __a, __m128d __b) { return (__m128d)(~(__v2du)__a & (__v2du)__b); } /// Performs a bitwise OR of two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VPOR / POR instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// \returns A 128-bit vector of [2 x double] containing the bitwise OR of the /// values between both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_or_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2du)__a | (__v2du)__b); } /// Performs a bitwise XOR of two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VPXOR / PXOR instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// \returns A 128-bit vector of [2 x double] containing the bitwise XOR of the /// values between both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_xor_pd(__m128d __a, __m128d __b) { return (__m128d)((__v2du)__a ^ (__v2du)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] for equality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPEQPD / CMPEQPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpeq_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpeqpd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTPD / CMPLTPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmplt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpltpd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are less than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLEPD / CMPLEPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmple_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmplepd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTPD / CMPLTPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpgt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpltpd((__v2df)__b, (__v2df)__a); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are greater than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLEPD / CMPLEPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpge_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmplepd((__v2df)__b, (__v2df)__a); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are ordered with respect to those in the second operand. /// /// A pair of double-precision values are ordered with respect to each /// other if neither value is a NaN. Each comparison returns 0x0 for false, /// 0xFFFFFFFFFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPORDPD / CMPORDPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpord_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpordpd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are unordered with respect to those in the second operand. /// /// A pair of double-precision values are unordered with respect to each /// other if one or both values are NaN. Each comparison returns 0x0 for /// false, 0xFFFFFFFFFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPUNORDPD / CMPUNORDPD /// instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpunord_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpunordpd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are unequal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNEQPD / CMPNEQPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpneq_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpneqpd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTPD / CMPNLTPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnlt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not less than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLEPD / CMPNLEPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnle_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__a, (__v2df)__b); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTPD / CMPNLTPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpngt_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnltpd((__v2df)__b, (__v2df)__a); } /// Compares each of the corresponding double-precision values of the /// 128-bit vectors of [2 x double] to determine if the values in the first /// operand are not greater than or equal to those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLEPD / CMPNLEPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \param __b /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector containing the comparison results. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnge_pd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnlepd((__v2df)__b, (__v2df)__a); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] for equality. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPEQSD / CMPEQSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpeq_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpeqsd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than the corresponding value in /// the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTSD / CMPLTSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmplt_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpltsd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLESD / CMPLESD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmple_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmplesd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than the corresponding value /// in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLTSD / CMPLTSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpgt_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmpltsd((__v2df)__b, (__v2df)__a); return __extension__(__m128d){__c[0], __a[1]}; } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns false. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPLESD / CMPLESD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpge_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmplesd((__v2df)__b, (__v2df)__a); return __extension__(__m128d){__c[0], __a[1]}; } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is ordered with respect to the /// corresponding value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair /// of double-precision values are ordered with respect to each other if /// neither value is a NaN. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPORDSD / CMPORDSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpord_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpordsd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unordered with respect to the /// corresponding value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. A pair /// of double-precision values are unordered with respect to each other if /// one or both values are NaN. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPUNORDSD / CMPUNORDSD /// instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpunord_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpunordsd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unequal to the corresponding value in /// the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNEQSD / CMPNEQSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpneq_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpneqsd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not less than the corresponding /// value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTSD / CMPNLTSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnlt_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnltsd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not less than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLESD / CMPNLESD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnle_sd(__m128d __a, __m128d __b) { return (__m128d)__builtin_ia32_cmpnlesd((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not greater than the corresponding /// value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLTSD / CMPNLTSD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpngt_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmpnltsd((__v2df)__b, (__v2df)__a); return __extension__(__m128d){__c[0], __a[1]}; } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is not greater than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, returns true. /// /// \headerfile /// /// This intrinsic corresponds to the VCMPNLESD / CMPNLESD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns A 128-bit vector. The lower 64 bits contains the comparison /// results. The upper 64 bits are copied from the upper 64 bits of \a __a. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnge_sd(__m128d __a, __m128d __b) { __m128d __c = __builtin_ia32_cmpnlesd((__v2df)__b, (__v2df)__a); return __extension__(__m128d){__c[0], __a[1]}; } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] for equality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISD / COMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than the corresponding value in /// the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISD / COMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISD / COMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than the corresponding value /// in the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISD / COMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISD / COMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unequal to the corresponding value in /// the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 1. /// /// \headerfile /// /// This intrinsic corresponds to the VCOMISD / COMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] for equality. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than the corresponding value in /// the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is less than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than the corresponding value /// in the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is greater than or equal to the /// corresponding value in the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 0. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison results. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b); } /// Compares the lower double-precision floating-point values in each of /// the two 128-bit floating-point vectors of [2 x double] to determine if /// the value in the first parameter is unequal to the corresponding value in /// the second parameter. /// /// The comparison returns 0 for false, 1 for true. If either value in a /// comparison is NaN, returns 1. /// /// \headerfile /// /// This intrinsic corresponds to the VUCOMISD / UCOMISD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __b. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision value is /// compared to the lower double-precision value of \a __a. /// \returns An integer containing the comparison result. static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_sd(__m128d __a, __m128d __b) { return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b); } /// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two single-precision floating-point /// values, returned in the lower 64 bits of a 128-bit vector of [4 x float]. /// The upper 64 bits of the result vector are set to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTPD2PS / CVTPD2PS instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector of [4 x float] whose lower 64 bits contain the /// converted values. The upper 64 bits are set to zero. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtpd_ps(__m128d __a) { return __builtin_ia32_cvtpd2ps((__v2df)__a); } /// Converts the lower two single-precision floating-point elements of a /// 128-bit vector of [4 x float] into two double-precision floating-point /// values, returned in a 128-bit vector of [2 x double]. The upper two /// elements of the input vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTPS2PD / CVTPS2PD instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. The lower two single-precision /// floating-point elements are converted to double-precision values. The /// upper two elements are unused. /// \returns A 128-bit vector of [2 x double] containing the converted values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtps_pd(__m128 __a) { return (__m128d) __builtin_convertvector( __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 1), __v2df); } /// Converts the lower two integer elements of a 128-bit vector of /// [4 x i32] into two double-precision floating-point values, returned in a /// 128-bit vector of [2 x double]. /// /// The upper two elements of the input vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTDQ2PD / CVTDQ2PD instruction. /// /// \param __a /// A 128-bit integer vector of [4 x i32]. The lower two integer elements are /// converted to double-precision values. /// /// The upper two elements are unused. /// \returns A 128-bit vector of [2 x double] containing the converted values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtepi32_pd(__m128i __a) { return (__m128d) __builtin_convertvector( __builtin_shufflevector((__v4si)__a, (__v4si)__a, 0, 1), __v2df); } /// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed 32-bit integer values, /// returned in the lower 64 bits of a 128-bit vector of [4 x i32]. The upper /// 64 bits of the result vector are set to zero. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTPD2DQ / CVTPD2DQ instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the /// converted values. The upper 64 bits are set to zero. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtpd_epi32(__m128d __a) { return __builtin_ia32_cvtpd2dq((__v2df)__a); } /// Converts the low-order element of a 128-bit vector of [2 x double] /// into a 32-bit signed integer value. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSD2SI / CVTSD2SI instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the /// conversion. /// \returns A 32-bit signed integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsd_si32(__m128d __a) { return __builtin_ia32_cvtsd2si((__v2df)__a); } /// Converts the lower double-precision floating-point element of a /// 128-bit vector of [2 x double], in the second parameter, into a /// single-precision floating-point value, returned in the lower 32 bits of a /// 128-bit vector of [4 x float]. The upper 96 bits of the result vector are /// copied from the upper 96 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSD2SS / CVTSD2SS instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. The upper 96 bits of this parameter are /// copied to the upper 96 bits of the result. /// \param __b /// A 128-bit vector of [2 x double]. The lower double-precision /// floating-point element is used in the conversion. /// \returns A 128-bit vector of [4 x float]. The lower 32 bits contain the /// converted value from the second parameter. The upper 96 bits are copied /// from the upper 96 bits of the first parameter. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_cvtsd_ss(__m128 __a, __m128d __b) { return (__m128)__builtin_ia32_cvtsd2ss((__v4sf)__a, (__v2df)__b); } /// Converts a 32-bit signed integer value, in the second parameter, into /// a double-precision floating-point value, returned in the lower 64 bits of /// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector /// are copied from the upper 64 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SD / CVTSI2SD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are /// copied to the upper 64 bits of the result. /// \param __b /// A 32-bit signed integer containing the value to be converted. /// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the /// converted value from the second parameter. The upper 64 bits are copied /// from the upper 64 bits of the first parameter. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi32_sd(__m128d __a, int __b) { __a[0] = __b; return __a; } /// Converts the lower single-precision floating-point element of a /// 128-bit vector of [4 x float], in the second parameter, into a /// double-precision floating-point value, returned in the lower 64 bits of /// a 128-bit vector of [2 x double]. The upper 64 bits of the result vector /// are copied from the upper 64 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSS2SD / CVTSS2SD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The upper 64 bits of this parameter are /// copied to the upper 64 bits of the result. /// \param __b /// A 128-bit vector of [4 x float]. The lower single-precision /// floating-point element is used in the conversion. /// \returns A 128-bit vector of [2 x double]. The lower 64 bits contain the /// converted value from the second parameter. The upper 64 bits are copied /// from the upper 64 bits of the first parameter. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtss_sd(__m128d __a, __m128 __b) { __a[0] = __b[0]; return __a; } /// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed truncated (rounded /// toward zero) 32-bit integer values, returned in the lower 64 bits /// of a 128-bit vector of [4 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTPD2DQ / CVTTPD2DQ /// instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector of [4 x i32] whose lower 64 bits contain the /// converted values. The upper 64 bits are set to zero. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvttpd_epi32(__m128d __a) { return (__m128i)__builtin_ia32_cvttpd2dq((__v2df)__a); } /// Converts the low-order element of a [2 x double] vector into a 32-bit /// signed truncated (rounded toward zero) integer value. /// /// If the converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSD2SI / CVTTSD2SI /// instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the /// conversion. /// \returns A 32-bit signed integer containing the converted value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvttsd_si32(__m128d __a) { return __builtin_ia32_cvttsd2si((__v2df)__a); } /// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed 32-bit integer values, /// returned in a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPD2PI instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \returns A 64-bit vector of [2 x i32] containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvtpd_pi32(__m128d __a) { return __trunc64(__builtin_ia32_cvtpd2dq((__v2df)__a)); } /// Converts the two double-precision floating-point elements of a /// 128-bit vector of [2 x double] into two signed truncated (rounded toward /// zero) 32-bit integer values, returned in a 64-bit vector of [2 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the CVTTPD2PI instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. /// \returns A 64-bit vector of [2 x i32] containing the converted values. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_cvttpd_pi32(__m128d __a) { return __trunc64(__builtin_ia32_cvttpd2dq((__v2df)__a)); } /// Converts the two signed 32-bit integer elements of a 64-bit vector of /// [2 x i32] into two double-precision floating-point values, returned in a /// 128-bit vector of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the CVTPI2PD instruction. /// /// \param __a /// A 64-bit vector of [2 x i32]. /// \returns A 128-bit vector of [2 x double] containing the converted values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtpi32_pd(__m64 __a) { return (__m128d) __builtin_convertvector((__v2si)__a, __v2df); } /// Returns the low-order element of a 128-bit vector of [2 x double] as /// a double-precision floating-point value. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower 64 bits are returned. /// \returns A double-precision floating-point value copied from the lower 64 /// bits of \a __a. static __inline__ double __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsd_f64(__m128d __a) { return __a[0]; } /// Loads a 128-bit floating-point vector of [2 x double] from an aligned /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPD / MOVAPD instruction. /// /// \param __dp /// A pointer to a 128-bit memory location. The address of the memory /// location has to be 16-byte aligned. /// \returns A 128-bit vector of [2 x double] containing the loaded values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_load_pd(double const *__dp) { return *(const __m128d *)__dp; } /// Loads a double-precision floating-point value from a specified memory /// location and duplicates it to both vector elements of a 128-bit vector of /// [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVDDUP / MOVDDUP instruction. /// /// \param __dp /// A pointer to a memory location containing a double-precision value. /// \returns A 128-bit vector of [2 x double] containing the loaded and /// duplicated values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_load1_pd(double const *__dp) { struct __mm_load1_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((const struct __mm_load1_pd_struct *)__dp)->__u; return __extension__(__m128d){__u, __u}; } #define _mm_load_pd1(dp) _mm_load1_pd(dp) /// Loads two double-precision values, in reverse order, from an aligned /// memory location into a 128-bit vector of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPD / MOVAPD instruction + /// needed shuffling instructions. In AVX mode, the shuffling may be combined /// with the \c VMOVAPD, resulting in only a \c VPERMILPD instruction. /// /// \param __dp /// A 16-byte aligned pointer to an array of double-precision values to be /// loaded in reverse order. /// \returns A 128-bit vector of [2 x double] containing the reversed loaded /// values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_loadr_pd(double const *__dp) { __m128d __u = *(const __m128d *)__dp; return __builtin_shufflevector((__v2df)__u, (__v2df)__u, 1, 0); } /// Loads a 128-bit floating-point vector of [2 x double] from an /// unaligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPD / MOVUPD instruction. /// /// \param __dp /// A pointer to a 128-bit memory location. The address of the memory /// location does not have to be aligned. /// \returns A 128-bit vector of [2 x double] containing the loaded values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_loadu_pd(double const *__dp) { struct __loadu_pd { __m128d_u __v; } __attribute__((__packed__, __may_alias__)); return ((const struct __loadu_pd *)__dp)->__v; } /// Loads a 64-bit integer value to the low element of a 128-bit integer /// vector and clears the upper element. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction. /// /// \param __a /// A pointer to a 64-bit memory location. The address of the memory /// location does not have to be aligned. /// \returns A 128-bit vector of [2 x i64] containing the loaded value. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_loadu_si64(void const *__a) { struct __loadu_si64 { long long __v; } __attribute__((__packed__, __may_alias__)); long long __u = ((const struct __loadu_si64 *)__a)->__v; return __extension__(__m128i)(__v2di){__u, 0LL}; } /// Loads a 32-bit integer value to the low element of a 128-bit integer /// vector and clears the upper element. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVD / MOVD instruction. /// /// \param __a /// A pointer to a 32-bit memory location. The address of the memory /// location does not have to be aligned. /// \returns A 128-bit vector of [4 x i32] containing the loaded value. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_loadu_si32(void const *__a) { struct __loadu_si32 { int __v; } __attribute__((__packed__, __may_alias__)); int __u = ((const struct __loadu_si32 *)__a)->__v; return __extension__(__m128i)(__v4si){__u, 0, 0, 0}; } /// Loads a 16-bit integer value to the low element of a 128-bit integer /// vector and clears the upper element. /// /// \headerfile /// /// This intrinsic does not correspond to a specific instruction. /// /// \param __a /// A pointer to a 16-bit memory location. The address of the memory /// location does not have to be aligned. /// \returns A 128-bit vector of [8 x i16] containing the loaded value. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_loadu_si16(void const *__a) { struct __loadu_si16 { short __v; } __attribute__((__packed__, __may_alias__)); short __u = ((const struct __loadu_si16 *)__a)->__v; return __extension__(__m128i)(__v8hi){__u, 0, 0, 0, 0, 0, 0, 0}; } /// Loads a 64-bit double-precision value to the low element of a /// 128-bit integer vector and clears the upper element. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSD / MOVSD instruction. /// /// \param __dp /// A pointer to a memory location containing a double-precision value. /// The address of the memory location does not have to be aligned. /// \returns A 128-bit vector of [2 x double] containing the loaded value. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_load_sd(double const *__dp) { struct __mm_load_sd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((const struct __mm_load_sd_struct *)__dp)->__u; return __extension__(__m128d){__u, 0}; } /// Loads a double-precision value into the high-order bits of a 128-bit /// vector of [2 x double]. The low-order bits are copied from the low-order /// bits of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. \n /// Bits [63:0] are written to bits [63:0] of the result. /// \param __dp /// A pointer to a 64-bit memory location containing a double-precision /// floating-point value that is loaded. The loaded value is written to bits /// [127:64] of the result. The address of the memory location does not have /// to be aligned. /// \returns A 128-bit vector of [2 x double] containing the moved values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_loadh_pd(__m128d __a, double const *__dp) { struct __mm_loadh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((const struct __mm_loadh_pd_struct *)__dp)->__u; return __extension__(__m128d){__a[0], __u}; } /// Loads a double-precision value into the low-order bits of a 128-bit /// vector of [2 x double]. The high-order bits are copied from the /// high-order bits of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. \n /// Bits [127:64] are written to bits [127:64] of the result. /// \param __dp /// A pointer to a 64-bit memory location containing a double-precision /// floating-point value that is loaded. The loaded value is written to bits /// [63:0] of the result. The address of the memory location does not have to /// be aligned. /// \returns A 128-bit vector of [2 x double] containing the moved values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_loadl_pd(__m128d __a, double const *__dp) { struct __mm_loadl_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); double __u = ((const struct __mm_loadl_pd_struct *)__dp)->__u; return __extension__(__m128d){__u, __a[1]}; } /// Constructs a 128-bit floating-point vector of [2 x double] with /// unspecified content. This could be used as an argument to another /// intrinsic function where the argument is required but the value is not /// actually used. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \returns A 128-bit floating-point vector of [2 x double] with unspecified /// content. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_undefined_pd(void) { return (__m128d)__builtin_ia32_undef128(); } /// Constructs a 128-bit floating-point vector of [2 x double]. The lower /// 64 bits of the vector are initialized with the specified double-precision /// floating-point value. The upper 64 bits are set to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction. /// /// \param __w /// A double-precision floating-point value used to initialize the lower 64 /// bits of the result. /// \returns An initialized 128-bit floating-point vector of [2 x double]. The /// lower 64 bits contain the value of the parameter. The upper 64 bits are /// set to zero. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_sd(double __w) { return __extension__(__m128d){__w, 0.0}; } /// Constructs a 128-bit floating-point vector of [2 x double], with each /// of the two double-precision floating-point vector elements set to the /// specified double-precision floating-point value. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVDDUP / MOVLHPS instruction. /// /// \param __w /// A double-precision floating-point value used to initialize each vector /// element of the result. /// \returns An initialized 128-bit floating-point vector of [2 x double]. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_pd(double __w) { return __extension__(__m128d){__w, __w}; } /// Constructs a 128-bit floating-point vector of [2 x double], with each /// of the two double-precision floating-point vector elements set to the /// specified double-precision floating-point value. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVDDUP / MOVLHPS instruction. /// /// \param __w /// A double-precision floating-point value used to initialize each vector /// element of the result. /// \returns An initialized 128-bit floating-point vector of [2 x double]. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_pd1(double __w) { return _mm_set1_pd(__w); } /// Constructs a 128-bit floating-point vector of [2 x double] /// initialized with the specified double-precision floating-point values. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. /// /// \param __w /// A double-precision floating-point value used to initialize the upper 64 /// bits of the result. /// \param __x /// A double-precision floating-point value used to initialize the lower 64 /// bits of the result. /// \returns An initialized 128-bit floating-point vector of [2 x double]. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_pd(double __w, double __x) { return __extension__(__m128d){__x, __w}; } /// Constructs a 128-bit floating-point vector of [2 x double], /// initialized in reverse order with the specified double-precision /// floating-point values. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. /// /// \param __w /// A double-precision floating-point value used to initialize the lower 64 /// bits of the result. /// \param __x /// A double-precision floating-point value used to initialize the upper 64 /// bits of the result. /// \returns An initialized 128-bit floating-point vector of [2 x double]. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_pd(double __w, double __x) { return __extension__(__m128d){__w, __x}; } /// Constructs a 128-bit floating-point vector of [2 x double] /// initialized to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VXORPS / XORPS instruction. /// /// \returns An initialized 128-bit floating-point vector of [2 x double] with /// all elements set to zero. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_pd(void) { return __extension__(__m128d){0.0, 0.0}; } /// Constructs a 128-bit floating-point vector of [2 x double]. The lower /// 64 bits are set to the lower 64 bits of the second parameter. The upper /// 64 bits are set to the upper 64 bits of the first parameter. /// /// \headerfile /// /// This intrinsic corresponds to the VBLENDPD / BLENDPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The upper 64 bits are written to the /// upper 64 bits of the result. /// \param __b /// A 128-bit vector of [2 x double]. The lower 64 bits are written to the /// lower 64 bits of the result. /// \returns A 128-bit vector of [2 x double] containing the moved values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_move_sd(__m128d __a, __m128d __b) { __a[0] = __b[0]; return __a; } /// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSD / MOVSD instruction. /// /// \param __dp /// A pointer to a 64-bit memory location. /// \param __a /// A 128-bit vector of [2 x double] containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_sd(double *__dp, __m128d __a) { struct __mm_store_sd_struct { double __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_store_sd_struct *)__dp)->__u = __a[0]; } /// Moves packed double-precision values from a 128-bit vector of /// [2 x double] to a memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPD / MOVAPS instruction. /// /// \param __dp /// A pointer to an aligned memory location that can store two /// double-precision values. /// \param __a /// A packed 128-bit vector of [2 x double] containing the values to be /// moved. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_pd(double *__dp, __m128d __a) { *(__m128d *)__dp = __a; } /// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to /// the upper and lower 64 bits of a memory location. /// /// \headerfile /// /// This intrinsic corresponds to the /// VMOVDDUP + VMOVAPD / MOVLHPS + MOVAPS instruction. /// /// \param __dp /// A pointer to a memory location that can store two double-precision /// values. /// \param __a /// A 128-bit vector of [2 x double] whose lower 64 bits are copied to each /// of the values in \a __dp. static __inline__ void __DEFAULT_FN_ATTRS _mm_store1_pd(double *__dp, __m128d __a) { __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); _mm_store_pd(__dp, __a); } /// Moves the lower 64 bits of a 128-bit vector of [2 x double] twice to /// the upper and lower 64 bits of a memory location. /// /// \headerfile /// /// This intrinsic corresponds to the /// VMOVDDUP + VMOVAPD / MOVLHPS + MOVAPS instruction. /// /// \param __dp /// A pointer to a memory location that can store two double-precision /// values. /// \param __a /// A 128-bit vector of [2 x double] whose lower 64 bits are copied to each /// of the values in \a __dp. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_pd1(double *__dp, __m128d __a) { _mm_store1_pd(__dp, __a); } /// Stores a 128-bit vector of [2 x double] into an unaligned memory /// location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPD / MOVUPD instruction. /// /// \param __dp /// A pointer to a 128-bit memory location. The address of the memory /// location does not have to be aligned. /// \param __a /// A 128-bit vector of [2 x double] containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_pd(double *__dp, __m128d __a) { struct __storeu_pd { __m128d_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_pd *)__dp)->__v = __a; } /// Stores two double-precision values, in reverse order, from a 128-bit /// vector of [2 x double] to a 16-byte aligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to a shuffling instruction followed by a /// VMOVAPD / MOVAPD instruction. /// /// \param __dp /// A pointer to a 16-byte aligned memory location that can store two /// double-precision values. /// \param __a /// A 128-bit vector of [2 x double] containing the values to be reversed and /// stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storer_pd(double *__dp, __m128d __a) { __a = __builtin_shufflevector((__v2df)__a, (__v2df)__a, 1, 0); *(__m128d *)__dp = __a; } /// Stores the upper 64 bits of a 128-bit vector of [2 x double] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVHPD / MOVHPD instruction. /// /// \param __dp /// A pointer to a 64-bit memory location. /// \param __a /// A 128-bit vector of [2 x double] containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeh_pd(double *__dp, __m128d __a) { struct __mm_storeh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pd_struct *)__dp)->__u = __a[1]; } /// Stores the lower 64 bits of a 128-bit vector of [2 x double] to a /// memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPD / MOVLPD instruction. /// /// \param __dp /// A pointer to a 64-bit memory location. /// \param __a /// A 128-bit vector of [2 x double] containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_pd(double *__dp, __m128d __a) { struct __mm_storeh_pd_struct { double __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storeh_pd_struct *)__dp)->__u = __a[0]; } /// Adds the corresponding elements of two 128-bit vectors of [16 x i8], /// saving the lower 8 bits of each sum in the corresponding element of a /// 128-bit result vector of [16 x i8]. /// /// The integer elements of both parameters can be either signed or unsigned. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDB / PADDB instruction. /// /// \param __a /// A 128-bit vector of [16 x i8]. /// \param __b /// A 128-bit vector of [16 x i8]. /// \returns A 128-bit vector of [16 x i8] containing the sums of both /// parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qu)__a + (__v16qu)__b); } /// Adds the corresponding elements of two 128-bit vectors of [8 x i16], /// saving the lower 16 bits of each sum in the corresponding element of a /// 128-bit result vector of [8 x i16]. /// /// The integer elements of both parameters can be either signed or unsigned. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDW / PADDW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16]. /// \param __b /// A 128-bit vector of [8 x i16]. /// \returns A 128-bit vector of [8 x i16] containing the sums of both /// parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_add_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hu)__a + (__v8hu)__b); } /// Adds the corresponding elements of two 128-bit vectors of [4 x i32], /// saving the lower 32 bits of each sum in the corresponding element of a /// 128-bit result vector of [4 x i32]. /// /// The integer elements of both parameters can be either signed or unsigned. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDD / PADDD instruction. /// /// \param __a /// A 128-bit vector of [4 x i32]. /// \param __b /// A 128-bit vector of [4 x i32]. /// \returns A 128-bit vector of [4 x i32] containing the sums of both /// parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a + (__v4su)__b); } /// Adds two signed or unsigned 64-bit integer values, returning the /// lower 64 bits of the sum. /// /// \headerfile /// /// This intrinsic corresponds to the PADDQ instruction. /// /// \param __a /// A 64-bit integer. /// \param __b /// A 64-bit integer. /// \returns A 64-bit integer containing the sum of both parameters. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_add_si64(__m64 __a, __m64 __b) { return (__m64)(((unsigned long long)__a) + ((unsigned long long)__b)); } /// Adds the corresponding elements of two 128-bit vectors of [2 x i64], /// saving the lower 64 bits of each sum in the corresponding element of a /// 128-bit result vector of [2 x i64]. /// /// The integer elements of both parameters can be either signed or unsigned. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDQ / PADDQ instruction. /// /// \param __a /// A 128-bit vector of [2 x i64]. /// \param __b /// A 128-bit vector of [2 x i64]. /// \returns A 128-bit vector of [2 x i64] containing the sums of both /// parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a + (__v2du)__b); } /// Adds, with saturation, the corresponding elements of two 128-bit /// signed [16 x i8] vectors, saving each sum in the corresponding element /// of a 128-bit result vector of [16 x i8]. /// /// Positive sums greater than 0x7F are saturated to 0x7F. Negative sums /// less than 0x80 are saturated to 0x80. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDSB / PADDSB instruction. /// /// \param __a /// A 128-bit signed [16 x i8] vector. /// \param __b /// A 128-bit signed [16 x i8] vector. /// \returns A 128-bit signed [16 x i8] vector containing the saturated sums of /// both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_add_sat((__v16qs)__a, (__v16qs)__b); } /// Adds, with saturation, the corresponding elements of two 128-bit /// signed [8 x i16] vectors, saving each sum in the corresponding element /// of a 128-bit result vector of [8 x i16]. /// /// Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums /// less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDSW / PADDSW instruction. /// /// \param __a /// A 128-bit signed [8 x i16] vector. /// \param __b /// A 128-bit signed [8 x i16] vector. /// \returns A 128-bit signed [8 x i16] vector containing the saturated sums of /// both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_add_sat((__v8hi)__a, (__v8hi)__b); } /// Adds, with saturation, the corresponding elements of two 128-bit /// unsigned [16 x i8] vectors, saving each sum in the corresponding element /// of a 128-bit result vector of [16 x i8]. /// /// Positive sums greater than 0xFF are saturated to 0xFF. Negative sums are /// saturated to 0x00. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDUSB / PADDUSB instruction. /// /// \param __a /// A 128-bit unsigned [16 x i8] vector. /// \param __b /// A 128-bit unsigned [16 x i8] vector. /// \returns A 128-bit unsigned [16 x i8] vector containing the saturated sums /// of both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_add_sat((__v16qu)__a, (__v16qu)__b); } /// Adds, with saturation, the corresponding elements of two 128-bit /// unsigned [8 x i16] vectors, saving each sum in the corresponding element /// of a 128-bit result vector of [8 x i16]. /// /// Positive sums greater than 0xFFFF are saturated to 0xFFFF. Negative sums /// are saturated to 0x0000. /// /// \headerfile /// /// This intrinsic corresponds to the VPADDUSB / PADDUSB instruction. /// /// \param __a /// A 128-bit unsigned [8 x i16] vector. /// \param __b /// A 128-bit unsigned [8 x i16] vector. /// \returns A 128-bit unsigned [8 x i16] vector containing the saturated sums /// of both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_adds_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_add_sat((__v8hu)__a, (__v8hu)__b); } /// Computes the rounded averages of corresponding elements of two /// 128-bit unsigned [16 x i8] vectors, saving each result in the /// corresponding element of a 128-bit result vector of [16 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the VPAVGB / PAVGB instruction. /// /// \param __a /// A 128-bit unsigned [16 x i8] vector. /// \param __b /// A 128-bit unsigned [16 x i8] vector. /// \returns A 128-bit unsigned [16 x i8] vector containing the rounded /// averages of both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_avg_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b); } /// Computes the rounded averages of corresponding elements of two /// 128-bit unsigned [8 x i16] vectors, saving each result in the /// corresponding element of a 128-bit result vector of [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the VPAVGW / PAVGW instruction. /// /// \param __a /// A 128-bit unsigned [8 x i16] vector. /// \param __b /// A 128-bit unsigned [8 x i16] vector. /// \returns A 128-bit unsigned [8 x i16] vector containing the rounded /// averages of both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_avg_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b); } /// Multiplies the corresponding elements of two 128-bit signed [8 x i16] /// vectors, producing eight intermediate 32-bit signed integer products, and /// adds the consecutive pairs of 32-bit products to form a 128-bit signed /// [4 x i32] vector. /// /// For example, bits [15:0] of both parameters are multiplied producing a /// 32-bit product, bits [31:16] of both parameters are multiplied producing /// a 32-bit product, and the sum of those two products becomes bits [31:0] /// of the result. /// /// \headerfile /// /// This intrinsic corresponds to the VPMADDWD / PMADDWD instruction. /// /// \param __a /// A 128-bit signed [8 x i16] vector. /// \param __b /// A 128-bit signed [8 x i16] vector. /// \returns A 128-bit signed [4 x i32] vector containing the sums of products /// of both parameters. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_madd_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmaddwd128((__v8hi)__a, (__v8hi)__b); } /// Compares corresponding elements of two 128-bit signed [8 x i16] /// vectors, saving the greater value from each comparison in the /// corresponding element of a 128-bit result vector of [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the VPMAXSW / PMAXSW instruction. /// /// \param __a /// A 128-bit signed [8 x i16] vector. /// \param __b /// A 128-bit signed [8 x i16] vector. /// \returns A 128-bit signed [8 x i16] vector containing the greater value of /// each comparison. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_max((__v8hi)__a, (__v8hi)__b); } /// Compares corresponding elements of two 128-bit unsigned [16 x i8] /// vectors, saving the greater value from each comparison in the /// corresponding element of a 128-bit result vector of [16 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the VPMAXUB / PMAXUB instruction. /// /// \param __a /// A 128-bit unsigned [16 x i8] vector. /// \param __b /// A 128-bit unsigned [16 x i8] vector. /// \returns A 128-bit unsigned [16 x i8] vector containing the greater value of /// each comparison. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_max((__v16qu)__a, (__v16qu)__b); } /// Compares corresponding elements of two 128-bit signed [8 x i16] /// vectors, saving the smaller value from each comparison in the /// corresponding element of a 128-bit result vector of [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the VPMINSW / PMINSW instruction. /// /// \param __a /// A 128-bit signed [8 x i16] vector. /// \param __b /// A 128-bit signed [8 x i16] vector. /// \returns A 128-bit signed [8 x i16] vector containing the smaller value of /// each comparison. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_min((__v8hi)__a, (__v8hi)__b); } /// Compares corresponding elements of two 128-bit unsigned [16 x i8] /// vectors, saving the smaller value from each comparison in the /// corresponding element of a 128-bit result vector of [16 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the VPMINUB / PMINUB instruction. /// /// \param __a /// A 128-bit unsigned [16 x i8] vector. /// \param __b /// A 128-bit unsigned [16 x i8] vector. /// \returns A 128-bit unsigned [16 x i8] vector containing the smaller value of /// each comparison. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_min((__v16qu)__a, (__v16qu)__b); } /// Multiplies the corresponding elements of two signed [8 x i16] /// vectors, saving the upper 16 bits of each 32-bit product in the /// corresponding element of a 128-bit signed [8 x i16] result vector. /// /// \headerfile /// /// This intrinsic corresponds to the VPMULHW / PMULHW instruction. /// /// \param __a /// A 128-bit signed [8 x i16] vector. /// \param __b /// A 128-bit signed [8 x i16] vector. /// \returns A 128-bit signed [8 x i16] vector containing the upper 16 bits of /// each of the eight 32-bit products. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhi_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmulhw128((__v8hi)__a, (__v8hi)__b); } /// Multiplies the corresponding elements of two unsigned [8 x i16] /// vectors, saving the upper 16 bits of each 32-bit product in the /// corresponding element of a 128-bit unsigned [8 x i16] result vector. /// /// \headerfile /// /// This intrinsic corresponds to the VPMULHUW / PMULHUW instruction. /// /// \param __a /// A 128-bit unsigned [8 x i16] vector. /// \param __b /// A 128-bit unsigned [8 x i16] vector. /// \returns A 128-bit unsigned [8 x i16] vector containing the upper 16 bits /// of each of the eight 32-bit products. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhi_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmulhuw128((__v8hi)__a, (__v8hi)__b); } /// Multiplies the corresponding elements of two signed [8 x i16] /// vectors, saving the lower 16 bits of each 32-bit product in the /// corresponding element of a 128-bit signed [8 x i16] result vector. /// /// \headerfile /// /// This intrinsic corresponds to the VPMULLW / PMULLW instruction. /// /// \param __a /// A 128-bit signed [8 x i16] vector. /// \param __b /// A 128-bit signed [8 x i16] vector. /// \returns A 128-bit signed [8 x i16] vector containing the lower 16 bits of /// each of the eight 32-bit products. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mullo_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hu)__a * (__v8hu)__b); } /// Multiplies 32-bit unsigned integer values contained in the lower bits /// of the two 64-bit integer vectors and returns the 64-bit unsigned /// product. /// /// \headerfile /// /// This intrinsic corresponds to the PMULUDQ instruction. /// /// \param __a /// A 64-bit integer containing one of the source operands. /// \param __b /// A 64-bit integer containing one of the source operands. /// \returns A 64-bit integer vector containing the product of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_mul_su32(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pmuludq128((__v4si)__anyext128(__a), (__v4si)__anyext128(__b))); } /// Multiplies 32-bit unsigned integer values contained in the lower /// bits of the corresponding elements of two [2 x i64] vectors, and returns /// the 64-bit products in the corresponding elements of a [2 x i64] vector. /// /// \headerfile /// /// This intrinsic corresponds to the VPMULUDQ / PMULUDQ instruction. /// /// \param __a /// A [2 x i64] vector containing one of the source operands. /// \param __b /// A [2 x i64] vector containing one of the source operands. /// \returns A [2 x i64] vector containing the product of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epu32(__m128i __a, __m128i __b) { return __builtin_ia32_pmuludq128((__v4si)__a, (__v4si)__b); } /// Computes the absolute differences of corresponding 8-bit integer /// values in two 128-bit vectors. Sums the first 8 absolute differences, and /// separately sums the second 8 absolute differences. Packs these two /// unsigned 16-bit integer sums into the upper and lower elements of a /// [2 x i64] vector. /// /// \headerfile /// /// This intrinsic corresponds to the VPSADBW / PSADBW instruction. /// /// \param __a /// A 128-bit integer vector containing one of the source operands. /// \param __b /// A 128-bit integer vector containing one of the source operands. /// \returns A [2 x i64] vector containing the sums of the sets of absolute /// differences between both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sad_epu8(__m128i __a, __m128i __b) { return __builtin_ia32_psadbw128((__v16qi)__a, (__v16qi)__b); } /// Subtracts the corresponding 8-bit integer values in the operands. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBB / PSUBB instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the differences of the values /// in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qu)__a - (__v16qu)__b); } /// Subtracts the corresponding 16-bit integer values in the operands. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBW / PSUBW instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the differences of the values /// in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sub_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hu)__a - (__v8hu)__b); } /// Subtracts the corresponding 32-bit integer values in the operands. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBD / PSUBD instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the differences of the values /// in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4su)__a - (__v4su)__b); } /// Subtracts signed or unsigned 64-bit integer values and writes the /// difference to the corresponding bits in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the PSUBQ instruction. /// /// \param __a /// A 64-bit integer vector containing the minuend. /// \param __b /// A 64-bit integer vector containing the subtrahend. /// \returns A 64-bit integer vector containing the difference of the values in /// the operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sub_si64(__m64 __a, __m64 __b) { return (__m64)((unsigned long long)__a - (unsigned long long)__b); } /// Subtracts the corresponding elements of two [2 x i64] vectors. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBQ / PSUBQ instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the differences of the values /// in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_epi64(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a - (__v2du)__b); } /// Subtracts, with saturation, corresponding 8-bit signed integer values in /// the input and returns the differences in the corresponding bytes in the /// destination. /// /// Differences greater than 0x7F are saturated to 0x7F, and differences /// less than 0x80 are saturated to 0x80. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBSB / PSUBSB instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the differences of the values /// in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_sub_sat((__v16qs)__a, (__v16qs)__b); } /// Subtracts, with saturation, corresponding 16-bit signed integer values in /// the input and returns the differences in the corresponding bytes in the /// destination. /// /// Differences greater than 0x7FFF are saturated to 0x7FFF, and values less /// than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBSW / PSUBSW instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the differences of the values /// in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_sub_sat((__v8hi)__a, (__v8hi)__b); } /// Subtracts, with saturation, corresponding 8-bit unsigned integer values in /// the input and returns the differences in the corresponding bytes in the /// destination. /// /// Differences less than 0x00 are saturated to 0x00. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBUSB / PSUBUSB instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the unsigned integer /// differences of the values in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epu8(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_sub_sat((__v16qu)__a, (__v16qu)__b); } /// Subtracts, with saturation, corresponding 16-bit unsigned integer values in /// the input and returns the differences in the corresponding bytes in the /// destination. /// /// Differences less than 0x0000 are saturated to 0x0000. /// /// \headerfile /// /// This intrinsic corresponds to the VPSUBUSW / PSUBUSW instruction. /// /// \param __a /// A 128-bit integer vector containing the minuends. /// \param __b /// A 128-bit integer vector containing the subtrahends. /// \returns A 128-bit integer vector containing the unsigned integer /// differences of the values in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_subs_epu16(__m128i __a, __m128i __b) { return (__m128i)__builtin_elementwise_sub_sat((__v8hu)__a, (__v8hu)__b); } /// Performs a bitwise AND of two 128-bit integer vectors. /// /// \headerfile /// /// This intrinsic corresponds to the VPAND / PAND instruction. /// /// \param __a /// A 128-bit integer vector containing one of the source operands. /// \param __b /// A 128-bit integer vector containing one of the source operands. /// \returns A 128-bit integer vector containing the bitwise AND of the values /// in both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_and_si128(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a & (__v2du)__b); } /// Performs a bitwise AND of two 128-bit integer vectors, using the /// one's complement of the values contained in the first source operand. /// /// \headerfile /// /// This intrinsic corresponds to the VPANDN / PANDN instruction. /// /// \param __a /// A 128-bit vector containing the left source operand. The one's complement /// of this value is used in the bitwise AND. /// \param __b /// A 128-bit vector containing the right source operand. /// \returns A 128-bit integer vector containing the bitwise AND of the one's /// complement of the first operand and the values in the second operand. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_andnot_si128(__m128i __a, __m128i __b) { return (__m128i)(~(__v2du)__a & (__v2du)__b); } /// Performs a bitwise OR of two 128-bit integer vectors. /// /// \headerfile /// /// This intrinsic corresponds to the VPOR / POR instruction. /// /// \param __a /// A 128-bit integer vector containing one of the source operands. /// \param __b /// A 128-bit integer vector containing one of the source operands. /// \returns A 128-bit integer vector containing the bitwise OR of the values /// in both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_or_si128(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a | (__v2du)__b); } /// Performs a bitwise exclusive OR of two 128-bit integer vectors. /// /// \headerfile /// /// This intrinsic corresponds to the VPXOR / PXOR instruction. /// /// \param __a /// A 128-bit integer vector containing one of the source operands. /// \param __b /// A 128-bit integer vector containing one of the source operands. /// \returns A 128-bit integer vector containing the bitwise exclusive OR of the /// values in both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_xor_si128(__m128i __a, __m128i __b) { return (__m128i)((__v2du)__a ^ (__v2du)__b); } /// Left-shifts the 128-bit integer vector operand by the specified /// number of bytes. Low-order bits are cleared. /// /// \headerfile /// /// \code /// __m128i _mm_slli_si128(__m128i a, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPSLLDQ / PSLLDQ instruction. /// /// \param a /// A 128-bit integer vector containing the source operand. /// \param imm /// An immediate value specifying the number of bytes to left-shift operand /// \a a. /// \returns A 128-bit integer vector containing the left-shifted value. #define _mm_slli_si128(a, imm) \ ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), \ (int)(imm))) #define _mm_bslli_si128(a, imm) \ ((__m128i)__builtin_ia32_pslldqi128_byteshift((__v2di)(__m128i)(a), \ (int)(imm))) /// Left-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSLLW / PSLLW instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to left-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the left-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi16(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psllwi128((__v8hi)__a, __count); } /// Left-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSLLW / PSLLW instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to left-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the left-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi16(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psllw128((__v8hi)__a, (__v8hi)__count); } /// Left-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSLLD / PSLLD instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to left-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the left-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi32(__m128i __a, int __count) { return (__m128i)__builtin_ia32_pslldi128((__v4si)__a, __count); } /// Left-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSLLD / PSLLD instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to left-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the left-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi32(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_pslld128((__v4si)__a, (__v4si)__count); } /// Left-shifts each 64-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSLLQ / PSLLQ instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to left-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the left-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_slli_epi64(__m128i __a, int __count) { return __builtin_ia32_psllqi128((__v2di)__a, __count); } /// Left-shifts each 64-bit value in the 128-bit integer vector operand /// by the specified number of bits. Low-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSLLQ / PSLLQ instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to left-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the left-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sll_epi64(__m128i __a, __m128i __count) { return __builtin_ia32_psllq128((__v2di)__a, (__v2di)__count); } /// Right-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRAW / PSRAW instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to right-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srai_epi16(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psrawi128((__v8hi)__a, __count); } /// Right-shifts each 16-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRAW / PSRAW instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to right-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi16(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psraw128((__v8hi)__a, (__v8hi)__count); } /// Right-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRAD / PSRAD instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to right-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srai_epi32(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psradi128((__v4si)__a, __count); } /// Right-shifts each 32-bit value in the 128-bit integer vector operand /// by the specified number of bits. High-order bits are filled with the sign /// bit of the initial value. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRAD / PSRAD instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to right-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sra_epi32(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psrad128((__v4si)__a, (__v4si)__count); } /// Right-shifts the 128-bit integer vector operand by the specified /// number of bytes. High-order bits are cleared. /// /// \headerfile /// /// \code /// __m128i _mm_srli_si128(__m128i a, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPSRLDQ / PSRLDQ instruction. /// /// \param a /// A 128-bit integer vector containing the source operand. /// \param imm /// An immediate value specifying the number of bytes to right-shift operand /// \a a. /// \returns A 128-bit integer vector containing the right-shifted value. #define _mm_srli_si128(a, imm) \ ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), \ (int)(imm))) #define _mm_bsrli_si128(a, imm) \ ((__m128i)__builtin_ia32_psrldqi128_byteshift((__v2di)(__m128i)(a), \ (int)(imm))) /// Right-shifts each of 16-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRLW / PSRLW instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to right-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi16(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psrlwi128((__v8hi)__a, __count); } /// Right-shifts each of 16-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRLW / PSRLW instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to right-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi16(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psrlw128((__v8hi)__a, (__v8hi)__count); } /// Right-shifts each of 32-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRLD / PSRLD instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to right-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi32(__m128i __a, int __count) { return (__m128i)__builtin_ia32_psrldi128((__v4si)__a, __count); } /// Right-shifts each of 32-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRLD / PSRLD instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to right-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi32(__m128i __a, __m128i __count) { return (__m128i)__builtin_ia32_psrld128((__v4si)__a, (__v4si)__count); } /// Right-shifts each of 64-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRLQ / PSRLQ instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// An integer value specifying the number of bits to right-shift each value /// in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srli_epi64(__m128i __a, int __count) { return __builtin_ia32_psrlqi128((__v2di)__a, __count); } /// Right-shifts each of 64-bit values in the 128-bit integer vector /// operand by the specified number of bits. High-order bits are cleared. /// /// \headerfile /// /// This intrinsic corresponds to the VPSRLQ / PSRLQ instruction. /// /// \param __a /// A 128-bit integer vector containing the source operand. /// \param __count /// A 128-bit integer vector in which bits [63:0] specify the number of bits /// to right-shift each value in operand \a __a. /// \returns A 128-bit integer vector containing the right-shifted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi64(__m128i __a, __m128i __count) { return __builtin_ia32_psrlq128((__v2di)__a, (__v2di)__count); } /// Compares each of the corresponding 8-bit values of the 128-bit /// integer vectors for equality. /// /// Each comparison returns 0x0 for false, 0xFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPEQB / PCMPEQB instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi8(__m128i __a, __m128i __b) { return (__m128i)((__v16qi)__a == (__v16qi)__b); } /// Compares each of the corresponding 16-bit values of the 128-bit /// integer vectors for equality. /// /// Each comparison returns 0x0 for false, 0xFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPEQW / PCMPEQW instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hi)__a == (__v8hi)__b); } /// Compares each of the corresponding 32-bit values of the 128-bit /// integer vectors for equality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPEQD / PCMPEQD instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4si)__a == (__v4si)__b); } /// Compares each of the corresponding signed 8-bit values of the 128-bit /// integer vectors to determine if the values in the first operand are /// greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTB / PCMPGTB instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi8(__m128i __a, __m128i __b) { /* This function always performs a signed comparison, but __v16qi is a char which may be signed or unsigned, so use __v16qs. */ return (__m128i)((__v16qs)__a > (__v16qs)__b); } /// Compares each of the corresponding signed 16-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTW / PCMPGTW instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi16(__m128i __a, __m128i __b) { return (__m128i)((__v8hi)__a > (__v8hi)__b); } /// Compares each of the corresponding signed 32-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTD / PCMPGTD instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi32(__m128i __a, __m128i __b) { return (__m128i)((__v4si)__a > (__v4si)__b); } /// Compares each of the corresponding signed 8-bit values of the 128-bit /// integer vectors to determine if the values in the first operand are less /// than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTB / PCMPGTB instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi8(__m128i __a, __m128i __b) { return _mm_cmpgt_epi8(__b, __a); } /// Compares each of the corresponding signed 16-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTW / PCMPGTW instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi16(__m128i __a, __m128i __b) { return _mm_cmpgt_epi16(__b, __a); } /// Compares each of the corresponding signed 32-bit values of the /// 128-bit integer vectors to determine if the values in the first operand /// are less than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTD / PCMPGTD instruction. /// /// \param __a /// A 128-bit integer vector. /// \param __b /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmplt_epi32(__m128i __a, __m128i __b) { return _mm_cmpgt_epi32(__b, __a); } #ifdef __x86_64__ /// Converts a 64-bit signed integer value from the second operand into a /// double-precision value and returns it in the lower element of a [2 x /// double] vector; the upper element of the returned vector is copied from /// the upper element of the first operand. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSI2SD / CVTSI2SD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The upper 64 bits of this operand are /// copied to the upper 64 bits of the destination. /// \param __b /// A 64-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [2 x double] whose lower 64 bits contain the /// converted value of the second operand. The upper 64 bits are copied from /// the upper 64 bits of the first operand. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtsi64_sd(__m128d __a, long long __b) { __a[0] = __b; return __a; } /// Converts the first (lower) element of a vector of [2 x double] into a /// 64-bit signed integer value. /// /// If the converted value does not fit in a 64-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTSD2SI / CVTSD2SI instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the /// conversion. /// \returns A 64-bit signed integer containing the converted value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtsd_si64(__m128d __a) { return __builtin_ia32_cvtsd2si64((__v2df)__a); } /// Converts the first (lower) element of a vector of [2 x double] into a /// 64-bit signed truncated (rounded toward zero) integer value. /// /// If a converted value does not fit in a 64-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTSD2SI / CVTTSD2SI /// instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. The lower 64 bits are used in the /// conversion. /// \returns A 64-bit signed integer containing the converted value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvttsd_si64(__m128d __a) { return __builtin_ia32_cvttsd2si64((__v2df)__a); } #endif # 3320 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 /// Converts a vector of [4 x i32] into a vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTDQ2PS / CVTDQ2PS instruction. /// /// \param __a /// A 128-bit integer vector. /// \returns A 128-bit vector of [4 x float] containing the converted values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtepi32_ps(__m128i __a) { return (__m128) __builtin_convertvector((__v4si)__a, __v4sf); } /// Converts a vector of [4 x float] into a vector of [4 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTPS2DQ / CVTPS2DQ instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit integer vector of [4 x i32] containing the converted /// values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtps_epi32(__m128 __a) { return (__m128i)__builtin_ia32_cvtps2dq((__v4sf)__a); } /// Converts a vector of [4 x float] into four signed truncated (rounded toward /// zero) 32-bit integers, returned in a vector of [4 x i32]. /// /// If a converted value does not fit in a 32-bit integer, raises a /// floating-point invalid exception. If the exception is masked, returns /// the most negative integer. /// /// \headerfile /// /// This intrinsic corresponds to the VCVTTPS2DQ / CVTTPS2DQ /// instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. /// \returns A 128-bit vector of [4 x i32] containing the converted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvttps_epi32(__m128 __a) { return (__m128i)__builtin_ia32_cvttps2dq((__v4sf)__a); } /// Returns a vector of [4 x i32] where the lowest element is the input /// operand and the remaining elements are zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVD / MOVD instruction. /// /// \param __a /// A 32-bit signed integer operand. /// \returns A 128-bit vector of [4 x i32]. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtsi32_si128(int __a) { return __extension__(__m128i)(__v4si){__a, 0, 0, 0}; } /// Returns a vector of [2 x i64] where the lower element is the input /// operand and the upper element is zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction /// in 64-bit mode. /// /// \param __a /// A 64-bit signed integer operand containing the value to be converted. /// \returns A 128-bit vector of [2 x i64] containing the converted value. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtsi64_si128(long long __a) { return __extension__(__m128i)(__v2di){__a, 0}; } /// Moves the least significant 32 bits of a vector of [4 x i32] to a /// 32-bit signed integer value. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVD / MOVD instruction. /// /// \param __a /// A vector of [4 x i32]. The least significant 32 bits are moved to the /// destination. /// \returns A 32-bit signed integer containing the moved value. static __inline__ int __DEFAULT_FN_ATTRS _mm_cvtsi128_si32(__m128i __a) { __v4si __b = (__v4si)__a; return __b[0]; } /// Moves the least significant 64 bits of a vector of [2 x i64] to a /// 64-bit signed integer value. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction. /// /// \param __a /// A vector of [2 x i64]. The least significant 64 bits are moved to the /// destination. /// \returns A 64-bit signed integer containing the moved value. static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtsi128_si64(__m128i __a) { return __a[0]; } /// Moves packed integer values from an aligned 128-bit memory location /// to elements in a 128-bit integer vector. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVDQA / MOVDQA instruction. /// /// \param __p /// An aligned pointer to a memory location containing integer values. /// \returns A 128-bit integer vector containing the moved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_load_si128(__m128i const *__p) { return *__p; } /// Moves packed integer values from an unaligned 128-bit memory location /// to elements in a 128-bit integer vector. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVDQU / MOVDQU instruction. /// /// \param __p /// A pointer to a memory location containing integer values. /// \returns A 128-bit integer vector containing the moved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_loadu_si128(__m128i_u const *__p) { struct __loadu_si128 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); return ((const struct __loadu_si128 *)__p)->__v; } /// Returns a vector of [2 x i64] where the lower element is taken from /// the lower element of the operand, and the upper element is zero. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction. /// /// \param __p /// A 128-bit vector of [2 x i64]. Bits [63:0] are written to bits [63:0] of /// the destination. /// \returns A 128-bit vector of [2 x i64]. The lower order bits contain the /// moved value. The higher order bits are cleared. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_loadl_epi64(__m128i_u const *__p) { struct __mm_loadl_epi64_struct { long long __u; } __attribute__((__packed__, __may_alias__)); return __extension__(__m128i){ ((const struct __mm_loadl_epi64_struct *)__p)->__u, 0}; } /// Generates a 128-bit vector of [4 x i32] with unspecified content. /// This could be used as an argument to another intrinsic function where the /// argument is required but the value is not actually used. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \returns A 128-bit vector of [4 x i32] with unspecified content. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_undefined_si128(void) { return (__m128i)__builtin_ia32_undef128(); } /// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with /// the specified 64-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __q1 /// A 64-bit integer value used to initialize the upper 64 bits of the /// destination vector of [2 x i64]. /// \param __q0 /// A 64-bit integer value used to initialize the lower 64 bits of the /// destination vector of [2 x i64]. /// \returns An initialized 128-bit vector of [2 x i64] containing the values /// provided in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_epi64x(long long __q1, long long __q0) { return __extension__(__m128i)(__v2di){__q0, __q1}; } /// Initializes both 64-bit values in a 128-bit vector of [2 x i64] with /// the specified 64-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __q1 /// A 64-bit integer value used to initialize the upper 64 bits of the /// destination vector of [2 x i64]. /// \param __q0 /// A 64-bit integer value used to initialize the lower 64 bits of the /// destination vector of [2 x i64]. /// \returns An initialized 128-bit vector of [2 x i64] containing the values /// provided in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_epi64(__m64 __q1, __m64 __q0) { return _mm_set_epi64x((long long)__q1[0], (long long)__q0[0]); } /// Initializes the 32-bit values in a 128-bit vector of [4 x i32] with /// the specified 32-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __i3 /// A 32-bit integer value used to initialize bits [127:96] of the /// destination vector. /// \param __i2 /// A 32-bit integer value used to initialize bits [95:64] of the destination /// vector. /// \param __i1 /// A 32-bit integer value used to initialize bits [63:32] of the destination /// vector. /// \param __i0 /// A 32-bit integer value used to initialize bits [31:0] of the destination /// vector. /// \returns An initialized 128-bit vector of [4 x i32] containing the values /// provided in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_epi32(int __i3, int __i2, int __i1, int __i0) { return __extension__(__m128i)(__v4si){__i0, __i1, __i2, __i3}; } /// Initializes the 16-bit values in a 128-bit vector of [8 x i16] with /// the specified 16-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __w7 /// A 16-bit integer value used to initialize bits [127:112] of the /// destination vector. /// \param __w6 /// A 16-bit integer value used to initialize bits [111:96] of the /// destination vector. /// \param __w5 /// A 16-bit integer value used to initialize bits [95:80] of the destination /// vector. /// \param __w4 /// A 16-bit integer value used to initialize bits [79:64] of the destination /// vector. /// \param __w3 /// A 16-bit integer value used to initialize bits [63:48] of the destination /// vector. /// \param __w2 /// A 16-bit integer value used to initialize bits [47:32] of the destination /// vector. /// \param __w1 /// A 16-bit integer value used to initialize bits [31:16] of the destination /// vector. /// \param __w0 /// A 16-bit integer value used to initialize bits [15:0] of the destination /// vector. /// \returns An initialized 128-bit vector of [8 x i16] containing the values /// provided in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_epi16(short __w7, short __w6, short __w5, short __w4, short __w3, short __w2, short __w1, short __w0) { return __extension__(__m128i)(__v8hi){__w0, __w1, __w2, __w3, __w4, __w5, __w6, __w7}; } /// Initializes the 8-bit values in a 128-bit vector of [16 x i8] with /// the specified 8-bit integer values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __b15 /// Initializes bits [127:120] of the destination vector. /// \param __b14 /// Initializes bits [119:112] of the destination vector. /// \param __b13 /// Initializes bits [111:104] of the destination vector. /// \param __b12 /// Initializes bits [103:96] of the destination vector. /// \param __b11 /// Initializes bits [95:88] of the destination vector. /// \param __b10 /// Initializes bits [87:80] of the destination vector. /// \param __b9 /// Initializes bits [79:72] of the destination vector. /// \param __b8 /// Initializes bits [71:64] of the destination vector. /// \param __b7 /// Initializes bits [63:56] of the destination vector. /// \param __b6 /// Initializes bits [55:48] of the destination vector. /// \param __b5 /// Initializes bits [47:40] of the destination vector. /// \param __b4 /// Initializes bits [39:32] of the destination vector. /// \param __b3 /// Initializes bits [31:24] of the destination vector. /// \param __b2 /// Initializes bits [23:16] of the destination vector. /// \param __b1 /// Initializes bits [15:8] of the destination vector. /// \param __b0 /// Initializes bits [7:0] of the destination vector. /// \returns An initialized 128-bit vector of [16 x i8] containing the values /// provided in the operands. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_epi8(char __b15, char __b14, char __b13, char __b12, char __b11, char __b10, char __b9, char __b8, char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { return __extension__(__m128i)(__v16qi){ __b0, __b1, __b2, __b3, __b4, __b5, __b6, __b7, __b8, __b9, __b10, __b11, __b12, __b13, __b14, __b15}; } /// Initializes both values in a 128-bit integer vector with the /// specified 64-bit integer value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __q /// Integer value used to initialize the elements of the destination integer /// vector. /// \returns An initialized 128-bit integer vector of [2 x i64] with both /// elements containing the value provided in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi64x(long long __q) { return _mm_set_epi64x(__q, __q); } /// Initializes both values in a 128-bit vector of [2 x i64] with the /// specified 64-bit value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __q /// A 64-bit value used to initialize the elements of the destination integer /// vector. /// \returns An initialized 128-bit vector of [2 x i64] with all elements /// containing the value provided in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi64(__m64 __q) { return _mm_set_epi64(__q, __q); } /// Initializes all values in a 128-bit vector of [4 x i32] with the /// specified 32-bit value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __i /// A 32-bit value used to initialize the elements of the destination integer /// vector. /// \returns An initialized 128-bit vector of [4 x i32] with all elements /// containing the value provided in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi32(int __i) { return _mm_set_epi32(__i, __i, __i, __i); } /// Initializes all values in a 128-bit vector of [8 x i16] with the /// specified 16-bit value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __w /// A 16-bit value used to initialize the elements of the destination integer /// vector. /// \returns An initialized 128-bit vector of [8 x i16] with all elements /// containing the value provided in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi16(short __w) { return _mm_set_epi16(__w, __w, __w, __w, __w, __w, __w, __w); } /// Initializes all values in a 128-bit vector of [16 x i8] with the /// specified 8-bit value. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __b /// An 8-bit value used to initialize the elements of the destination integer /// vector. /// \returns An initialized 128-bit vector of [16 x i8] with all elements /// containing the value provided in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_epi8(char __b) { return _mm_set_epi8(__b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b, __b); } /// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 64-bit integral values. /// /// \headerfile /// /// This intrinsic does not correspond to a specific instruction. /// /// \param __q0 /// A 64-bit integral value used to initialize the lower 64 bits of the /// result. /// \param __q1 /// A 64-bit integral value used to initialize the upper 64 bits of the /// result. /// \returns An initialized 128-bit integer vector. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_epi64(__m64 __q0, __m64 __q1) { return _mm_set_epi64(__q1, __q0); } /// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 32-bit integral values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __i0 /// A 32-bit integral value used to initialize bits [31:0] of the result. /// \param __i1 /// A 32-bit integral value used to initialize bits [63:32] of the result. /// \param __i2 /// A 32-bit integral value used to initialize bits [95:64] of the result. /// \param __i3 /// A 32-bit integral value used to initialize bits [127:96] of the result. /// \returns An initialized 128-bit integer vector. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_epi32(int __i0, int __i1, int __i2, int __i3) { return _mm_set_epi32(__i3, __i2, __i1, __i0); } /// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 16-bit integral values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __w0 /// A 16-bit integral value used to initialize bits [15:0] of the result. /// \param __w1 /// A 16-bit integral value used to initialize bits [31:16] of the result. /// \param __w2 /// A 16-bit integral value used to initialize bits [47:32] of the result. /// \param __w3 /// A 16-bit integral value used to initialize bits [63:48] of the result. /// \param __w4 /// A 16-bit integral value used to initialize bits [79:64] of the result. /// \param __w5 /// A 16-bit integral value used to initialize bits [95:80] of the result. /// \param __w6 /// A 16-bit integral value used to initialize bits [111:96] of the result. /// \param __w7 /// A 16-bit integral value used to initialize bits [127:112] of the result. /// \returns An initialized 128-bit integer vector. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_epi16(short __w0, short __w1, short __w2, short __w3, short __w4, short __w5, short __w6, short __w7) { return _mm_set_epi16(__w7, __w6, __w5, __w4, __w3, __w2, __w1, __w0); } /// Constructs a 128-bit integer vector, initialized in reverse order /// with the specified 8-bit integral values. /// /// \headerfile /// /// This intrinsic is a utility function and does not correspond to a specific /// instruction. /// /// \param __b0 /// An 8-bit integral value used to initialize bits [7:0] of the result. /// \param __b1 /// An 8-bit integral value used to initialize bits [15:8] of the result. /// \param __b2 /// An 8-bit integral value used to initialize bits [23:16] of the result. /// \param __b3 /// An 8-bit integral value used to initialize bits [31:24] of the result. /// \param __b4 /// An 8-bit integral value used to initialize bits [39:32] of the result. /// \param __b5 /// An 8-bit integral value used to initialize bits [47:40] of the result. /// \param __b6 /// An 8-bit integral value used to initialize bits [55:48] of the result. /// \param __b7 /// An 8-bit integral value used to initialize bits [63:56] of the result. /// \param __b8 /// An 8-bit integral value used to initialize bits [71:64] of the result. /// \param __b9 /// An 8-bit integral value used to initialize bits [79:72] of the result. /// \param __b10 /// An 8-bit integral value used to initialize bits [87:80] of the result. /// \param __b11 /// An 8-bit integral value used to initialize bits [95:88] of the result. /// \param __b12 /// An 8-bit integral value used to initialize bits [103:96] of the result. /// \param __b13 /// An 8-bit integral value used to initialize bits [111:104] of the result. /// \param __b14 /// An 8-bit integral value used to initialize bits [119:112] of the result. /// \param __b15 /// An 8-bit integral value used to initialize bits [127:120] of the result. /// \returns An initialized 128-bit integer vector. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_epi8(char __b0, char __b1, char __b2, char __b3, char __b4, char __b5, char __b6, char __b7, char __b8, char __b9, char __b10, char __b11, char __b12, char __b13, char __b14, char __b15) { return _mm_set_epi8(__b15, __b14, __b13, __b12, __b11, __b10, __b9, __b8, __b7, __b6, __b5, __b4, __b3, __b2, __b1, __b0); } /// Creates a 128-bit integer vector initialized to zero. /// /// \headerfile /// /// This intrinsic corresponds to the VXORPS / XORPS instruction. /// /// \returns An initialized 128-bit integer vector with all elements set to /// zero. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_si128(void) { return __extension__(__m128i)(__v2di){0LL, 0LL}; } /// Stores a 128-bit integer vector to a memory location aligned on a /// 128-bit boundary. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVAPS / MOVAPS instruction. /// /// \param __p /// A pointer to an aligned memory location that will receive the integer /// values. /// \param __b /// A 128-bit integer vector containing the values to be moved. static __inline__ void __DEFAULT_FN_ATTRS _mm_store_si128(__m128i *__p, __m128i __b) { *__p = __b; } /// Stores a 128-bit integer vector to an unaligned memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVUPS / MOVUPS instruction. /// /// \param __p /// A pointer to a memory location that will receive the integer values. /// \param __b /// A 128-bit integer vector containing the values to be moved. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_si128(__m128i_u *__p, __m128i __b) { struct __storeu_si128 { __m128i_u __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si128 *)__p)->__v = __b; } /// Stores a 64-bit integer value from the low element of a 128-bit integer /// vector. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction. /// /// \param __p /// A pointer to a 64-bit memory location. The address of the memory /// location does not have to be aligned. /// \param __b /// A 128-bit integer vector containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_si64(void *__p, __m128i __b) { struct __storeu_si64 { long long __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si64 *)__p)->__v = ((__v2di)__b)[0]; } /// Stores a 32-bit integer value from the low element of a 128-bit integer /// vector. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVD / MOVD instruction. /// /// \param __p /// A pointer to a 32-bit memory location. The address of the memory /// location does not have to be aligned. /// \param __b /// A 128-bit integer vector containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_si32(void *__p, __m128i __b) { struct __storeu_si32 { int __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si32 *)__p)->__v = ((__v4si)__b)[0]; } /// Stores a 16-bit integer value from the low element of a 128-bit integer /// vector. /// /// \headerfile /// /// This intrinsic does not correspond to a specific instruction. /// /// \param __p /// A pointer to a 16-bit memory location. The address of the memory /// location does not have to be aligned. /// \param __b /// A 128-bit integer vector containing the value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storeu_si16(void *__p, __m128i __b) { struct __storeu_si16 { short __v; } __attribute__((__packed__, __may_alias__)); ((struct __storeu_si16 *)__p)->__v = ((__v8hi)__b)[0]; } /// Moves bytes selected by the mask from the first operand to the /// specified unaligned memory location. When a mask bit is 1, the /// corresponding byte is written, otherwise it is not written. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). Exception and trap behavior for elements not selected /// for storage to memory are implementation dependent. /// /// \headerfile /// /// This intrinsic corresponds to the VMASKMOVDQU / MASKMOVDQU /// instruction. /// /// \param __d /// A 128-bit integer vector containing the values to be moved. /// \param __n /// A 128-bit integer vector containing the mask. The most significant bit of /// each byte represents the mask bits. /// \param __p /// A pointer to an unaligned 128-bit memory location where the specified /// values are moved. static __inline__ void __DEFAULT_FN_ATTRS _mm_maskmoveu_si128(__m128i __d, __m128i __n, char *__p) { __builtin_ia32_maskmovdqu((__v16qi)__d, (__v16qi)__n, __p); } /// Stores the lower 64 bits of a 128-bit integer vector of [2 x i64] to /// a memory location. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVLPS / MOVLPS instruction. /// /// \param __p /// A pointer to a 64-bit memory location that will receive the lower 64 bits /// of the integer vector parameter. /// \param __a /// A 128-bit integer vector of [2 x i64]. The lower 64 bits contain the /// value to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_storel_epi64(__m128i_u *__p, __m128i __a) { struct __mm_storel_epi64_struct { long long __u; } __attribute__((__packed__, __may_alias__)); ((struct __mm_storel_epi64_struct *)__p)->__u = __a[0]; } /// Stores a 128-bit floating point vector of [2 x double] to a 128-bit /// aligned memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. /// /// \param __p /// A pointer to the 128-bit aligned memory location used to store the value. /// \param __a /// A vector of [2 x double] containing the 64-bit values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_pd(void *__p, __m128d __a) { __builtin_nontemporal_store((__v2df)__a, (__v2df *)__p); } /// Stores a 128-bit integer vector to a 128-bit aligned memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the VMOVNTPS / MOVNTPS instruction. /// /// \param __p /// A pointer to the 128-bit aligned memory location used to store the value. /// \param __a /// A 128-bit integer vector containing the values to be stored. static __inline__ void __DEFAULT_FN_ATTRS _mm_stream_si128(void *__p, __m128i __a) { __builtin_nontemporal_store((__v2di)__a, (__v2di *)__p); } /// Stores a 32-bit integer value in the specified memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the MOVNTI instruction. /// /// \param __p /// A pointer to the 32-bit memory location used to store the value. /// \param __a /// A 32-bit integer containing the value to be stored. static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) _mm_stream_si32(void *__p, int __a) { __builtin_ia32_movnti((int *)__p, __a); } #ifdef __x86_64__ /// Stores a 64-bit integer value in the specified memory location. /// /// To minimize caching, the data is flagged as non-temporal (unlikely to be /// used again soon). /// /// \headerfile /// /// This intrinsic corresponds to the MOVNTIQ instruction. /// /// \param __p /// A pointer to the 64-bit memory location used to store the value. /// \param __a /// A 64-bit integer containing the value to be stored. static __inline__ void __attribute__((__always_inline__, __nodebug__, __target__("sse2"))) _mm_stream_si64(void *__p, long long __a) { __builtin_ia32_movnti64((long long *)__p, __a); } #endif # 4103 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 4105 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 extern "C" { #endif # 4107 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 /// The cache line containing \a __p is flushed and invalidated from all /// caches in the coherency domain. /// /// \headerfile /// /// This intrinsic corresponds to the CLFLUSH instruction. /// /// \param __p /// A pointer to the memory location used to identify the cache line to be /// flushed. void _mm_clflush(void const *__p); /// Forces strong memory ordering (serialization) between load /// instructions preceding this instruction and load instructions following /// this instruction, ensuring the system completes all previous loads before /// executing subsequent loads. /// /// \headerfile /// /// This intrinsic corresponds to the LFENCE instruction. /// void _mm_lfence(void); /// Forces strong memory ordering (serialization) between load and store /// instructions preceding this instruction and load and store instructions /// following this instruction, ensuring that the system completes all /// previous memory accesses before executing subsequent memory accesses. /// /// \headerfile /// /// This intrinsic corresponds to the MFENCE instruction. /// void _mm_mfence(void); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 4143 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 } // extern "C" #endif # 4145 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 /// Converts, with saturation, 16-bit signed integers from both 128-bit integer /// vector operands into 8-bit signed integers, and packs the results into /// the destination. /// /// Positive values greater than 0x7F are saturated to 0x7F. Negative values /// less than 0x80 are saturated to 0x80. /// /// \headerfile /// /// This intrinsic corresponds to the VPACKSSWB / PACKSSWB instruction. /// /// \param __a /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are /// written to the lower 64 bits of the result. /// \param __b /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are /// written to the higher 64 bits of the result. /// \returns A 128-bit vector of [16 x i8] containing the converted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_packsswb128((__v8hi)__a, (__v8hi)__b); } /// Converts, with saturation, 32-bit signed integers from both 128-bit integer /// vector operands into 16-bit signed integers, and packs the results into /// the destination. /// /// Positive values greater than 0x7FFF are saturated to 0x7FFF. Negative /// values less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the VPACKSSDW / PACKSSDW instruction. /// /// \param __a /// A 128-bit integer vector of [4 x i32]. The converted [4 x i16] values /// are written to the lower 64 bits of the result. /// \param __b /// A 128-bit integer vector of [4 x i32]. The converted [4 x i16] values /// are written to the higher 64 bits of the result. /// \returns A 128-bit vector of [8 x i16] containing the converted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packs_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_packssdw128((__v4si)__a, (__v4si)__b); } /// Converts, with saturation, 16-bit signed integers from both 128-bit integer /// vector operands into 8-bit unsigned integers, and packs the results into /// the destination. /// /// Values greater than 0xFF are saturated to 0xFF. Values less than 0x00 /// are saturated to 0x00. /// /// \headerfile /// /// This intrinsic corresponds to the VPACKUSWB / PACKUSWB instruction. /// /// \param __a /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are /// written to the lower 64 bits of the result. /// \param __b /// A 128-bit integer vector of [8 x i16]. The converted [8 x i8] values are /// written to the higher 64 bits of the result. /// \returns A 128-bit vector of [16 x i8] containing the converted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_packuswb128((__v8hi)__a, (__v8hi)__b); } /// Extracts 16 bits from a 128-bit integer vector of [8 x i16], using /// the immediate-value parameter as a selector. /// /// \headerfile /// /// \code /// __m128i _mm_extract_epi16(__m128i a, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPEXTRW / PEXTRW instruction. /// /// \param a /// A 128-bit integer vector. /// \param imm /// An immediate value. Bits [2:0] selects values from \a a to be assigned /// to bits[15:0] of the result. \n /// 000: assign values from bits [15:0] of \a a. \n /// 001: assign values from bits [31:16] of \a a. \n /// 010: assign values from bits [47:32] of \a a. \n /// 011: assign values from bits [63:48] of \a a. \n /// 100: assign values from bits [79:64] of \a a. \n /// 101: assign values from bits [95:80] of \a a. \n /// 110: assign values from bits [111:96] of \a a. \n /// 111: assign values from bits [127:112] of \a a. /// \returns An integer, whose lower 16 bits are selected from the 128-bit /// integer vector parameter and the remaining bits are assigned zeros. #define _mm_extract_epi16(a, imm) \ ((int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \ (int)(imm))) /// Constructs a 128-bit integer vector by first making a copy of the /// 128-bit integer vector parameter, and then inserting the lower 16 bits /// of an integer parameter into an offset specified by the immediate-value /// parameter. /// /// \headerfile /// /// \code /// __m128i _mm_insert_epi16(__m128i a, int b, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPINSRW / PINSRW instruction. /// /// \param a /// A 128-bit integer vector of [8 x i16]. This vector is copied to the /// result and then one of the eight elements in the result is replaced by /// the lower 16 bits of \a b. /// \param b /// An integer. The lower 16 bits of this parameter are written to the /// result beginning at an offset specified by \a imm. /// \param imm /// An immediate value specifying the bit offset in the result at which the /// lower 16 bits of \a b are written. /// \returns A 128-bit integer vector containing the constructed values. #define _mm_insert_epi16(a, b, imm) \ ((__m128i)__builtin_ia32_vec_set_v8hi((__v8hi)(__m128i)(a), (int)(b), \ (int)(imm))) /// Copies the values of the most significant bits from each 8-bit /// element in a 128-bit integer vector of [16 x i8] to create a 16-bit mask /// value, zero-extends the value, and writes it to the destination. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVMSKB / PMOVMSKB instruction. /// /// \param __a /// A 128-bit integer vector containing the values with bits to be extracted. /// \returns The most significant bits from each 8-bit element in \a __a, /// written to bits [15:0]. The other bits are assigned zeros. static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_epi8(__m128i __a) { return __builtin_ia32_pmovmskb128((__v16qi)__a); } /// Constructs a 128-bit integer vector by shuffling four 32-bit /// elements of a 128-bit integer vector parameter, using the immediate-value /// parameter as a specifier. /// /// \headerfile /// /// \code /// __m128i _mm_shuffle_epi32(__m128i a, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPSHUFD / PSHUFD instruction. /// /// \param a /// A 128-bit integer vector containing the values to be copied. /// \param imm /// An immediate value containing an 8-bit value specifying which elements to /// copy from a. The destinations within the 128-bit destination are assigned /// values as follows: \n /// Bits [1:0] are used to assign values to bits [31:0] of the result. \n /// Bits [3:2] are used to assign values to bits [63:32] of the result. \n /// Bits [5:4] are used to assign values to bits [95:64] of the result. \n /// Bits [7:6] are used to assign values to bits [127:96] of the result. \n /// Bit value assignments: \n /// 00: assign values from bits [31:0] of \a a. \n /// 01: assign values from bits [63:32] of \a a. \n /// 10: assign values from bits [95:64] of \a a. \n /// 11: assign values from bits [127:96] of \a a. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 128-bit integer vector containing the shuffled values. #define _mm_shuffle_epi32(a, imm) \ ((__m128i)__builtin_ia32_pshufd((__v4si)(__m128i)(a), (int)(imm))) /// Constructs a 128-bit integer vector by shuffling four lower 16-bit /// elements of a 128-bit integer vector of [8 x i16], using the immediate /// value parameter as a specifier. /// /// \headerfile /// /// \code /// __m128i _mm_shufflelo_epi16(__m128i a, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPSHUFLW / PSHUFLW instruction. /// /// \param a /// A 128-bit integer vector of [8 x i16]. Bits [127:64] are copied to bits /// [127:64] of the result. /// \param imm /// An 8-bit immediate value specifying which elements to copy from \a a. \n /// Bits[1:0] are used to assign values to bits [15:0] of the result. \n /// Bits[3:2] are used to assign values to bits [31:16] of the result. \n /// Bits[5:4] are used to assign values to bits [47:32] of the result. \n /// Bits[7:6] are used to assign values to bits [63:48] of the result. \n /// Bit value assignments: \n /// 00: assign values from bits [15:0] of \a a. \n /// 01: assign values from bits [31:16] of \a a. \n /// 10: assign values from bits [47:32] of \a a. \n /// 11: assign values from bits [63:48] of \a a. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 128-bit integer vector containing the shuffled values. #define _mm_shufflelo_epi16(a, imm) \ ((__m128i)__builtin_ia32_pshuflw((__v8hi)(__m128i)(a), (int)(imm))) /// Constructs a 128-bit integer vector by shuffling four upper 16-bit /// elements of a 128-bit integer vector of [8 x i16], using the immediate /// value parameter as a specifier. /// /// \headerfile /// /// \code /// __m128i _mm_shufflehi_epi16(__m128i a, const int imm); /// \endcode /// /// This intrinsic corresponds to the VPSHUFHW / PSHUFHW instruction. /// /// \param a /// A 128-bit integer vector of [8 x i16]. Bits [63:0] are copied to bits /// [63:0] of the result. /// \param imm /// An 8-bit immediate value specifying which elements to copy from \a a. \n /// Bits[1:0] are used to assign values to bits [79:64] of the result. \n /// Bits[3:2] are used to assign values to bits [95:80] of the result. \n /// Bits[5:4] are used to assign values to bits [111:96] of the result. \n /// Bits[7:6] are used to assign values to bits [127:112] of the result. \n /// Bit value assignments: \n /// 00: assign values from bits [79:64] of \a a. \n /// 01: assign values from bits [95:80] of \a a. \n /// 10: assign values from bits [111:96] of \a a. \n /// 11: assign values from bits [127:112] of \a a. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE macro. /// _MM_SHUFFLE(b6, b4, b2, b0) can create an 8-bit mask of the form /// [b6, b4, b2, b0]. /// \returns A 128-bit integer vector containing the shuffled values. #define _mm_shufflehi_epi16(a, imm) \ ((__m128i)__builtin_ia32_pshufhw((__v8hi)(__m128i)(a), (int)(imm))) /// Unpacks the high-order (index 8-15) values from two 128-bit vectors /// of [16 x i8] and interleaves them into a 128-bit vector of [16 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKHBW / PUNPCKHBW /// instruction. /// /// \param __a /// A 128-bit vector of [16 x i8]. /// Bits [71:64] are written to bits [7:0] of the result. \n /// Bits [79:72] are written to bits [23:16] of the result. \n /// Bits [87:80] are written to bits [39:32] of the result. \n /// Bits [95:88] are written to bits [55:48] of the result. \n /// Bits [103:96] are written to bits [71:64] of the result. \n /// Bits [111:104] are written to bits [87:80] of the result. \n /// Bits [119:112] are written to bits [103:96] of the result. \n /// Bits [127:120] are written to bits [119:112] of the result. /// \param __b /// A 128-bit vector of [16 x i8]. \n /// Bits [71:64] are written to bits [15:8] of the result. \n /// Bits [79:72] are written to bits [31:24] of the result. \n /// Bits [87:80] are written to bits [47:40] of the result. \n /// Bits [95:88] are written to bits [63:56] of the result. \n /// Bits [103:96] are written to bits [79:72] of the result. \n /// Bits [111:104] are written to bits [95:88] of the result. \n /// Bits [119:112] are written to bits [111:104] of the result. \n /// Bits [127:120] are written to bits [127:120] of the result. /// \returns A 128-bit vector of [16 x i8] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector( (__v16qi)__a, (__v16qi)__b, 8, 16 + 8, 9, 16 + 9, 10, 16 + 10, 11, 16 + 11, 12, 16 + 12, 13, 16 + 13, 14, 16 + 14, 15, 16 + 15); } /// Unpacks the high-order (index 4-7) values from two 128-bit vectors of /// [8 x i16] and interleaves them into a 128-bit vector of [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKHWD / PUNPCKHWD /// instruction. /// /// \param __a /// A 128-bit vector of [8 x i16]. /// Bits [79:64] are written to bits [15:0] of the result. \n /// Bits [95:80] are written to bits [47:32] of the result. \n /// Bits [111:96] are written to bits [79:64] of the result. \n /// Bits [127:112] are written to bits [111:96] of the result. /// \param __b /// A 128-bit vector of [8 x i16]. /// Bits [79:64] are written to bits [31:16] of the result. \n /// Bits [95:80] are written to bits [63:48] of the result. \n /// Bits [111:96] are written to bits [95:80] of the result. \n /// Bits [127:112] are written to bits [127:112] of the result. /// \returns A 128-bit vector of [8 x i16] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 4, 8 + 4, 5, 8 + 5, 6, 8 + 6, 7, 8 + 7); } /// Unpacks the high-order (index 2,3) values from two 128-bit vectors of /// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKHDQ / PUNPCKHDQ /// instruction. /// /// \param __a /// A 128-bit vector of [4 x i32]. \n /// Bits [95:64] are written to bits [31:0] of the destination. \n /// Bits [127:96] are written to bits [95:64] of the destination. /// \param __b /// A 128-bit vector of [4 x i32]. \n /// Bits [95:64] are written to bits [64:32] of the destination. \n /// Bits [127:96] are written to bits [127:96] of the destination. /// \returns A 128-bit vector of [4 x i32] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 2, 4 + 2, 3, 4 + 3); } /// Unpacks the high-order 64-bit elements from two 128-bit vectors of /// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKHQDQ / PUNPCKHQDQ /// instruction. /// /// \param __a /// A 128-bit vector of [2 x i64]. \n /// Bits [127:64] are written to bits [63:0] of the destination. /// \param __b /// A 128-bit vector of [2 x i64]. \n /// Bits [127:64] are written to bits [127:64] of the destination. /// \returns A 128-bit vector of [2 x i64] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpackhi_epi64(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 1, 2 + 1); } /// Unpacks the low-order (index 0-7) values from two 128-bit vectors of /// [16 x i8] and interleaves them into a 128-bit vector of [16 x i8]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKLBW / PUNPCKLBW /// instruction. /// /// \param __a /// A 128-bit vector of [16 x i8]. \n /// Bits [7:0] are written to bits [7:0] of the result. \n /// Bits [15:8] are written to bits [23:16] of the result. \n /// Bits [23:16] are written to bits [39:32] of the result. \n /// Bits [31:24] are written to bits [55:48] of the result. \n /// Bits [39:32] are written to bits [71:64] of the result. \n /// Bits [47:40] are written to bits [87:80] of the result. \n /// Bits [55:48] are written to bits [103:96] of the result. \n /// Bits [63:56] are written to bits [119:112] of the result. /// \param __b /// A 128-bit vector of [16 x i8]. /// Bits [7:0] are written to bits [15:8] of the result. \n /// Bits [15:8] are written to bits [31:24] of the result. \n /// Bits [23:16] are written to bits [47:40] of the result. \n /// Bits [31:24] are written to bits [63:56] of the result. \n /// Bits [39:32] are written to bits [79:72] of the result. \n /// Bits [47:40] are written to bits [95:88] of the result. \n /// Bits [55:48] are written to bits [111:104] of the result. \n /// Bits [63:56] are written to bits [127:120] of the result. /// \returns A 128-bit vector of [16 x i8] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector( (__v16qi)__a, (__v16qi)__b, 0, 16 + 0, 1, 16 + 1, 2, 16 + 2, 3, 16 + 3, 4, 16 + 4, 5, 16 + 5, 6, 16 + 6, 7, 16 + 7); } /// Unpacks the low-order (index 0-3) values from each of the two 128-bit /// vectors of [8 x i16] and interleaves them into a 128-bit vector of /// [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKLWD / PUNPCKLWD /// instruction. /// /// \param __a /// A 128-bit vector of [8 x i16]. /// Bits [15:0] are written to bits [15:0] of the result. \n /// Bits [31:16] are written to bits [47:32] of the result. \n /// Bits [47:32] are written to bits [79:64] of the result. \n /// Bits [63:48] are written to bits [111:96] of the result. /// \param __b /// A 128-bit vector of [8 x i16]. /// Bits [15:0] are written to bits [31:16] of the result. \n /// Bits [31:16] are written to bits [63:48] of the result. \n /// Bits [47:32] are written to bits [95:80] of the result. \n /// Bits [63:48] are written to bits [127:112] of the result. /// \returns A 128-bit vector of [8 x i16] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v8hi)__a, (__v8hi)__b, 0, 8 + 0, 1, 8 + 1, 2, 8 + 2, 3, 8 + 3); } /// Unpacks the low-order (index 0,1) values from two 128-bit vectors of /// [4 x i32] and interleaves them into a 128-bit vector of [4 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKLDQ / PUNPCKLDQ /// instruction. /// /// \param __a /// A 128-bit vector of [4 x i32]. \n /// Bits [31:0] are written to bits [31:0] of the destination. \n /// Bits [63:32] are written to bits [95:64] of the destination. /// \param __b /// A 128-bit vector of [4 x i32]. \n /// Bits [31:0] are written to bits [64:32] of the destination. \n /// Bits [63:32] are written to bits [127:96] of the destination. /// \returns A 128-bit vector of [4 x i32] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v4si)__a, (__v4si)__b, 0, 4 + 0, 1, 4 + 1); } /// Unpacks the low-order 64-bit elements from two 128-bit vectors of /// [2 x i64] and interleaves them into a 128-bit vector of [2 x i64]. /// /// \headerfile /// /// This intrinsic corresponds to the VPUNPCKLQDQ / PUNPCKLQDQ /// instruction. /// /// \param __a /// A 128-bit vector of [2 x i64]. \n /// Bits [63:0] are written to bits [63:0] of the destination. \n /// \param __b /// A 128-bit vector of [2 x i64]. \n /// Bits [63:0] are written to bits [127:64] of the destination. \n /// \returns A 128-bit vector of [2 x i64] containing the interleaved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_unpacklo_epi64(__m128i __a, __m128i __b) { return (__m128i)__builtin_shufflevector((__v2di)__a, (__v2di)__b, 0, 2 + 0); } /// Returns the lower 64 bits of a 128-bit integer vector as a 64-bit /// integer. /// /// \headerfile /// /// This intrinsic corresponds to the MOVDQ2Q instruction. /// /// \param __a /// A 128-bit integer vector operand. The lower 64 bits are moved to the /// destination. /// \returns A 64-bit integer containing the lower 64 bits of the parameter. static __inline__ __m64 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movepi64_pi64(__m128i __a) { return (__m64)__a[0]; } /// Moves the 64-bit operand to a 128-bit integer vector, zeroing the /// upper bits. /// /// \headerfile /// /// This intrinsic corresponds to the MOVD+VMOVQ instruction. /// /// \param __a /// A 64-bit value. /// \returns A 128-bit integer vector. The lower 64 bits contain the value from /// the operand. The upper 64 bits are assigned zeros. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movpi64_epi64(__m64 __a) { return __builtin_shufflevector((__v1di)__a, _mm_setzero_si64(), 0, 1); } /// Moves the lower 64 bits of a 128-bit integer vector to a 128-bit /// integer vector, zeroing the upper bits. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVQ / MOVQ instruction. /// /// \param __a /// A 128-bit integer vector operand. The lower 64 bits are moved to the /// destination. /// \returns A 128-bit integer vector. The lower 64 bits contain the value from /// the operand. The upper 64 bits are assigned zeros. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_move_epi64(__m128i __a) { return __builtin_shufflevector((__v2di)__a, _mm_setzero_si128(), 0, 2); } /// Unpacks the high-order 64-bit elements from two 128-bit vectors of /// [2 x double] and interleaves them into a 128-bit vector of [2 x /// double]. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKHPD / UNPCKHPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. \n /// Bits [127:64] are written to bits [63:0] of the destination. /// \param __b /// A 128-bit vector of [2 x double]. \n /// Bits [127:64] are written to bits [127:64] of the destination. /// \returns A 128-bit vector of [2 x double] containing the interleaved values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_unpackhi_pd(__m128d __a, __m128d __b) { return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 1, 2 + 1); } /// Unpacks the low-order 64-bit elements from two 128-bit vectors /// of [2 x double] and interleaves them into a 128-bit vector of [2 x /// double]. /// /// \headerfile /// /// This intrinsic corresponds to the VUNPCKLPD / UNPCKLPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. \n /// Bits [63:0] are written to bits [63:0] of the destination. /// \param __b /// A 128-bit vector of [2 x double]. \n /// Bits [63:0] are written to bits [127:64] of the destination. /// \returns A 128-bit vector of [2 x double] containing the interleaved values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_unpacklo_pd(__m128d __a, __m128d __b) { return __builtin_shufflevector((__v2df)__a, (__v2df)__b, 0, 2 + 0); } /// Extracts the sign bits of the double-precision values in the 128-bit /// vector of [2 x double], zero-extends the value, and writes it to the /// low-order bits of the destination. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVMSKPD / MOVMSKPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the values with sign bits to /// be extracted. /// \returns The sign bits from each of the double-precision elements in \a __a, /// written to bits [1:0]. The remaining bits are assigned values of zero. static __inline__ int __DEFAULT_FN_ATTRS _mm_movemask_pd(__m128d __a) { return __builtin_ia32_movmskpd((__v2df)__a); } /// Constructs a 128-bit floating-point vector of [2 x double] from two /// 128-bit vector parameters of [2 x double], using the immediate-value /// parameter as a specifier. /// /// \headerfile /// /// \code /// __m128d _mm_shuffle_pd(__m128d a, __m128d b, const int i); /// \endcode /// /// This intrinsic corresponds to the VSHUFPD / SHUFPD instruction. /// /// \param a /// A 128-bit vector of [2 x double]. /// \param b /// A 128-bit vector of [2 x double]. /// \param i /// An 8-bit immediate value. The least significant two bits specify which /// elements to copy from \a a and \a b: \n /// Bit[0] = 0: lower element of \a a copied to lower element of result. \n /// Bit[0] = 1: upper element of \a a copied to lower element of result. \n /// Bit[1] = 0: lower element of \a b copied to upper element of result. \n /// Bit[1] = 1: upper element of \a b copied to upper element of result. \n /// Note: To generate a mask, you can use the \c _MM_SHUFFLE2 macro. /// _MM_SHUFFLE2(b1, b0) can create a 2-bit mask of the form /// [b1, b0]. /// \returns A 128-bit vector of [2 x double] containing the shuffled values. #define _mm_shuffle_pd(a, b, i) \ ((__m128d)__builtin_ia32_shufpd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \ (int)(i))) /// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit /// floating-point vector of [4 x float]. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit floating-point vector of [2 x double]. /// \returns A 128-bit floating-point vector of [4 x float] containing the same /// bitwise pattern as the parameter. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_castpd_ps(__m128d __a) { return (__m128)__a; } /// Casts a 128-bit floating-point vector of [2 x double] into a 128-bit /// integer vector. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit floating-point vector of [2 x double]. /// \returns A 128-bit integer vector containing the same bitwise pattern as the /// parameter. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_castpd_si128(__m128d __a) { return (__m128i)__a; } /// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit /// floating-point vector of [2 x double]. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. /// \returns A 128-bit floating-point vector of [2 x double] containing the same /// bitwise pattern as the parameter. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_castps_pd(__m128 __a) { return (__m128d)__a; } /// Casts a 128-bit floating-point vector of [4 x float] into a 128-bit /// integer vector. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit floating-point vector of [4 x float]. /// \returns A 128-bit integer vector containing the same bitwise pattern as the /// parameter. static __inline__ __m128i __DEFAULT_FN_ATTRS_CONSTEXPR _mm_castps_si128(__m128 __a) { return (__m128i)__a; } /// Casts a 128-bit integer vector into a 128-bit floating-point vector /// of [4 x float]. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit integer vector. /// \returns A 128-bit floating-point vector of [4 x float] containing the same /// bitwise pattern as the parameter. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_castsi128_ps(__m128i __a) { return (__m128)__a; } /// Casts a 128-bit integer vector into a 128-bit floating-point vector /// of [2 x double]. /// /// \headerfile /// /// This intrinsic has no corresponding instruction. /// /// \param __a /// A 128-bit integer vector. /// \returns A 128-bit floating-point vector of [2 x double] containing the same /// bitwise pattern as the parameter. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_castsi128_pd(__m128i __a) { return (__m128d)__a; } /// Compares each of the corresponding double-precision values of two /// 128-bit vectors of [2 x double], using the operation specified by the /// immediate integer operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, comparisons that are ordered /// return false, and comparisons that are unordered return true. /// /// \headerfile /// /// \code /// __m128d _mm_cmp_pd(__m128d a, __m128d b, const int c); /// \endcode /// /// This intrinsic corresponds to the (V)CMPPD instruction. /// /// \param a /// A 128-bit vector of [2 x double]. /// \param b /// A 128-bit vector of [2 x double]. /// \param c /// An immediate integer operand, with bits [4:0] specifying which comparison /// operation to use: \n /// 0x00: Equal (ordered, non-signaling) \n /// 0x01: Less-than (ordered, signaling) \n /// 0x02: Less-than-or-equal (ordered, signaling) \n /// 0x03: Unordered (non-signaling) \n /// 0x04: Not-equal (unordered, non-signaling) \n /// 0x05: Not-less-than (unordered, signaling) \n /// 0x06: Not-less-than-or-equal (unordered, signaling) \n /// 0x07: Ordered (non-signaling) \n /// \returns A 128-bit vector of [2 x double] containing the comparison results. #define _mm_cmp_pd(a, b, c) \ ((__m128d)__builtin_ia32_cmppd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \ (c))) /// Compares each of the corresponding scalar double-precision values of /// two 128-bit vectors of [2 x double], using the operation specified by the /// immediate integer operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// If either value in a comparison is NaN, comparisons that are ordered /// return false, and comparisons that are unordered return true. /// /// \headerfile /// /// \code /// __m128d _mm_cmp_sd(__m128d a, __m128d b, const int c); /// \endcode /// /// This intrinsic corresponds to the (V)CMPSD instruction. /// /// \param a /// A 128-bit vector of [2 x double]. /// \param b /// A 128-bit vector of [2 x double]. /// \param c /// An immediate integer operand, with bits [4:0] specifying which comparison /// operation to use: \n /// 0x00: Equal (ordered, non-signaling) \n /// 0x01: Less-than (ordered, signaling) \n /// 0x02: Less-than-or-equal (ordered, signaling) \n /// 0x03: Unordered (non-signaling) \n /// 0x04: Not-equal (unordered, non-signaling) \n /// 0x05: Not-less-than (unordered, signaling) \n /// 0x06: Not-less-than-or-equal (unordered, signaling) \n /// 0x07: Ordered (non-signaling) \n /// \returns A 128-bit vector of [2 x double] containing the comparison results. #define _mm_cmp_sd(a, b, c) \ ((__m128d)__builtin_ia32_cmpsd((__v2df)(__m128d)(a), (__v2df)(__m128d)(b), \ (c))) #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 4908 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 extern "C" { #endif # 4910 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 /// Indicates that a spin loop is being executed for the purposes of /// optimizing power consumption during the loop. /// /// \headerfile /// /// This intrinsic corresponds to the PAUSE instruction. /// void _mm_pause(void); #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 4921 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 } // extern "C" #endif # 4923 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #undef __anyext128 #undef __trunc64 #undef __DEFAULT_FN_ATTRS #undef __DEFAULT_FN_ATTRS_CONSTEXPR #define _MM_SHUFFLE2(x, y) (((x) << 1) | (y)) #define _MM_DENORMALS_ZERO_ON (0x0040U) #define _MM_DENORMALS_ZERO_OFF (0x0000U) #define _MM_DENORMALS_ZERO_MASK (0x0040U) #define _MM_GET_DENORMALS_ZERO_MODE() (_mm_getcsr() & _MM_DENORMALS_ZERO_MASK) #define _MM_SET_DENORMALS_ZERO_MODE(x) \ (_mm_setcsr((_mm_getcsr() & ~_MM_DENORMALS_ZERO_MASK) | (x))) #endif /* __EMMINTRIN_H */ # 4941 "/home/marcus/llvm20/lib/clang/20/include/emmintrin.h" 3 #endif /* emmintrin.h expanded by -frewrite-includes */ # 3198 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 2 3 #endif # 3199 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #endif /* __XMMINTRIN_H */ # 3201 "/home/marcus/llvm20/lib/clang/20/include/xmmintrin.h" 3 #endif /* xmmintrin.h expanded by -frewrite-includes */ # 33 "../mesa/src/util/rounding.h" 2 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/util/rounding.h" # 34 "../mesa/src/util/rounding.h" #endif # 35 "../mesa/src/util/rounding.h" #ifdef __SSE4_1__ #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* smmintrin.h expanded by -frewrite-includes */ #include #else /* smmintrin.h expanded by -frewrite-includes */ # 37 "../mesa/src/util/rounding.h" # 1 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 1 3 /*===---- smmintrin.h - SSE4 intrinsics ------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __SMMINTRIN_H #define __SMMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* tmmintrin.h expanded by -frewrite-includes */ #include #else /* tmmintrin.h expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 1 3 /*===---- tmmintrin.h - SSSE3 intrinsics -----------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __TMMINTRIN_H #define __TMMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* pmmintrin.h expanded by -frewrite-includes */ #include #else /* pmmintrin.h expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 1 3 /*===---- pmmintrin.h - SSE3 intrinsics ------------------------------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __PMMINTRIN_H #define __PMMINTRIN_H #if 0 /* disabled by -frewrite-includes */ #if !defined(__i386__) && !defined(__x86_64__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 14 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #error "This header is only meant to be used on x86 and x64 architecture" #endif # 16 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 17 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 # 18 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, \ __target__("sse3,no-evex512"), __min_vector_width__(128))) #else # 25 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse3"), \ __min_vector_width__(128))) #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #if 0 /* disabled by -frewrite-includes */ #if defined(__cplusplus) && (__cplusplus >= 201103L) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 31 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS constexpr #else # 33 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #define __DEFAULT_FN_ATTRS_CONSTEXPR __DEFAULT_FN_ATTRS #endif # 35 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 /// Loads data from an unaligned memory location to elements in a 128-bit /// vector. /// /// If the address of the data is not 16-byte aligned, the instruction may /// read two adjacent aligned blocks of memory to retrieve the requested /// data. /// /// \headerfile /// /// This intrinsic corresponds to the VLDDQU instruction. /// /// \param __p /// A pointer to a 128-bit integer vector containing integer values. /// \returns A 128-bit vector containing the moved values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_lddqu_si128(__m128i_u const *__p) { return (__m128i)__builtin_ia32_lddqu((char const *)__p); } /// Adds the even-indexed values and subtracts the odd-indexed values of /// two 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VADDSUBPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float] containing the left source operand. /// \param __b /// A 128-bit vector of [4 x float] containing the right source operand. /// \returns A 128-bit vector of [4 x float] containing the alternating sums and /// differences of both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_addsub_ps(__m128 __a, __m128 __b) { return __builtin_ia32_addsubps((__v4sf)__a, (__v4sf)__b); } /// Horizontally adds the adjacent pairs of values contained in two /// 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VHADDPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// The horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// The horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 128-bit vector of [4 x float] containing the horizontal sums of /// both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_hadd_ps(__m128 __a, __m128 __b) { return __builtin_ia32_haddps((__v4sf)__a, (__v4sf)__b); } /// Horizontally subtracts the adjacent pairs of values contained in two /// 128-bit vectors of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VHSUBPS instruction. /// /// \param __a /// A 128-bit vector of [4 x float] containing one of the source operands. /// The horizontal differences between the values are stored in the lower /// bits of the destination. /// \param __b /// A 128-bit vector of [4 x float] containing one of the source operands. /// The horizontal differences between the values are stored in the upper /// bits of the destination. /// \returns A 128-bit vector of [4 x float] containing the horizontal /// differences of both operands. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_hsub_ps(__m128 __a, __m128 __b) { return __builtin_ia32_hsubps((__v4sf)__a, (__v4sf)__b); } /// Moves and duplicates odd-indexed values from a 128-bit vector /// of [4 x float] to float values stored in a 128-bit vector of /// [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSHDUP instruction. /// /// \param __a /// A 128-bit vector of [4 x float]. \n /// Bits [127:96] of the source are written to bits [127:96] and [95:64] of /// the destination. \n /// Bits [63:32] of the source are written to bits [63:32] and [31:0] of the /// destination. /// \returns A 128-bit vector of [4 x float] containing the moved and duplicated /// values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movehdup_ps(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 1, 1, 3, 3); } /// Duplicates even-indexed values from a 128-bit vector of /// [4 x float] to float values stored in a 128-bit vector of [4 x float]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVSLDUP instruction. /// /// \param __a /// A 128-bit vector of [4 x float] \n /// Bits [95:64] of the source are written to bits [127:96] and [95:64] of /// the destination. \n /// Bits [31:0] of the source are written to bits [63:32] and [31:0] of the /// destination. /// \returns A 128-bit vector of [4 x float] containing the moved and duplicated /// values. static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_moveldup_ps(__m128 __a) { return __builtin_shufflevector((__v4sf)__a, (__v4sf)__a, 0, 0, 2, 2); } /// Adds the even-indexed values and subtracts the odd-indexed values of /// two 128-bit vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VADDSUBPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing the left source operand. /// \param __b /// A 128-bit vector of [2 x double] containing the right source operand. /// \returns A 128-bit vector of [2 x double] containing the alternating sums /// and differences of both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_addsub_pd(__m128d __a, __m128d __b) { return __builtin_ia32_addsubpd((__v2df)__a, (__v2df)__b); } /// Horizontally adds the pairs of values contained in two 128-bit /// vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VHADDPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// The horizontal sum of the values is stored in the lower bits of the /// destination. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// The horizontal sum of the values is stored in the upper bits of the /// destination. /// \returns A 128-bit vector of [2 x double] containing the horizontal sums of /// both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_hadd_pd(__m128d __a, __m128d __b) { return __builtin_ia32_haddpd((__v2df)__a, (__v2df)__b); } /// Horizontally subtracts the pairs of values contained in two 128-bit /// vectors of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VHSUBPD instruction. /// /// \param __a /// A 128-bit vector of [2 x double] containing one of the source operands. /// The horizontal difference of the values is stored in the lower bits of /// the destination. /// \param __b /// A 128-bit vector of [2 x double] containing one of the source operands. /// The horizontal difference of the values is stored in the upper bits of /// the destination. /// \returns A 128-bit vector of [2 x double] containing the horizontal /// differences of both operands. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_hsub_pd(__m128d __a, __m128d __b) { return __builtin_ia32_hsubpd((__v2df)__a, (__v2df)__b); } /// Moves and duplicates one double-precision value to double-precision /// values stored in a 128-bit vector of [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_loaddup_pd(double const *dp); /// \endcode /// /// This intrinsic corresponds to the VMOVDDUP instruction. /// /// \param dp /// A pointer to a double-precision value to be moved and duplicated. /// \returns A 128-bit vector of [2 x double] containing the moved and /// duplicated values. #define _mm_loaddup_pd(dp) _mm_load1_pd(dp) /// Moves and duplicates the double-precision value in the lower bits of /// a 128-bit vector of [2 x double] to double-precision values stored in a /// 128-bit vector of [2 x double]. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVDDUP instruction. /// /// \param __a /// A 128-bit vector of [2 x double]. Bits [63:0] are written to bits /// [127:64] and [63:0] of the destination. /// \returns A 128-bit vector of [2 x double] containing the moved and /// duplicated values. static __inline__ __m128d __DEFAULT_FN_ATTRS_CONSTEXPR _mm_movedup_pd(__m128d __a) { return __builtin_shufflevector((__v2df)__a, (__v2df)__a, 0, 0); } /// Establishes a linear address memory range to be monitored and puts /// the processor in the monitor event pending state. Data stored in the /// monitored address range causes the processor to exit the pending state. /// /// The \c MONITOR instruction can be used in kernel mode, and in other modes /// if MSR C001_0015h[MonMwaitUserEn] is set. /// /// \headerfile /// /// This intrinsic corresponds to the \c MONITOR instruction. /// /// \param __p /// The memory range to be monitored. The size of the range is determined by /// CPUID function 0000_0005h. /// \param __extensions /// Optional extensions for the monitoring state. /// \param __hints /// Optional hints for the monitoring state. static __inline__ void __DEFAULT_FN_ATTRS _mm_monitor(void const *__p, unsigned __extensions, unsigned __hints) { __builtin_ia32_monitor(__p, __extensions, __hints); } /// Used with the \c MONITOR instruction to wait while the processor is in /// the monitor event pending state. Data stored in the monitored address /// range, or an interrupt, causes the processor to exit the pending state. /// /// The \c MWAIT instruction can be used in kernel mode, and in other modes if /// MSR C001_0015h[MonMwaitUserEn] is set. /// /// \headerfile /// /// This intrinsic corresponds to the \c MWAIT instruction. /// /// \param __extensions /// Optional extensions for the monitoring state, which can vary by /// processor. /// \param __hints /// Optional hints for the monitoring state, which can vary by processor. static __inline__ void __DEFAULT_FN_ATTRS _mm_mwait(unsigned __extensions, unsigned __hints) { __builtin_ia32_mwait(__extensions, __hints); } #undef __DEFAULT_FN_ATTRS #undef __DEFAULT_FN_ATTRS_CONSTEXPR #endif /* __PMMINTRIN_H */ # 315 "/home/marcus/llvm20/lib/clang/20/include/pmmintrin.h" 3 #endif /* pmmintrin.h expanded by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 2 3 /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, \ __target__("ssse3,no-evex512"), __min_vector_width__(128))) #else # 25 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("ssse3"), \ __min_vector_width__(128))) #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 #define __trunc64(x) \ (__m64) __builtin_shufflevector((__v2di)(x), __extension__(__v2di){}, 0) #define __anyext128(x) \ (__m128i) __builtin_shufflevector((__v2si)(x), __extension__(__v2si){}, 0, \ 1, -1, -1) /// Computes the absolute value of each of the packed 8-bit signed /// integers in the source operand and stores the 8-bit unsigned integer /// results in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PABSB instruction. /// /// \param __a /// A 64-bit vector of [8 x i8]. /// \returns A 64-bit integer vector containing the absolute values of the /// elements in the operand. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_abs_pi8(__m64 __a) { return (__m64)__builtin_elementwise_abs((__v8qs)__a); } /// Computes the absolute value of each of the packed 8-bit signed /// integers in the source operand and stores the 8-bit unsigned integer /// results in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPABSB instruction. /// /// \param __a /// A 128-bit vector of [16 x i8]. /// \returns A 128-bit integer vector containing the absolute values of the /// elements in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_abs_epi8(__m128i __a) { return (__m128i)__builtin_elementwise_abs((__v16qs)__a); } /// Computes the absolute value of each of the packed 16-bit signed /// integers in the source operand and stores the 16-bit unsigned integer /// results in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PABSW instruction. /// /// \param __a /// A 64-bit vector of [4 x i16]. /// \returns A 64-bit integer vector containing the absolute values of the /// elements in the operand. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_abs_pi16(__m64 __a) { return (__m64)__builtin_elementwise_abs((__v4hi)__a); } /// Computes the absolute value of each of the packed 16-bit signed /// integers in the source operand and stores the 16-bit unsigned integer /// results in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPABSW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16]. /// \returns A 128-bit integer vector containing the absolute values of the /// elements in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_abs_epi16(__m128i __a) { return (__m128i)__builtin_elementwise_abs((__v8hi)__a); } /// Computes the absolute value of each of the packed 32-bit signed /// integers in the source operand and stores the 32-bit unsigned integer /// results in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PABSD instruction. /// /// \param __a /// A 64-bit vector of [2 x i32]. /// \returns A 64-bit integer vector containing the absolute values of the /// elements in the operand. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_abs_pi32(__m64 __a) { return (__m64)__builtin_elementwise_abs((__v2si)__a); } /// Computes the absolute value of each of the packed 32-bit signed /// integers in the source operand and stores the 32-bit unsigned integer /// results in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPABSD instruction. /// /// \param __a /// A 128-bit vector of [4 x i32]. /// \returns A 128-bit integer vector containing the absolute values of the /// elements in the operand. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_abs_epi32(__m128i __a) { return (__m128i)__builtin_elementwise_abs((__v4si)__a); } /// Concatenates the two 128-bit integer vector operands, and /// right-shifts the result by the number of bytes specified in the immediate /// operand. /// /// \headerfile /// /// \code /// __m128i _mm_alignr_epi8(__m128i a, __m128i b, const int n); /// \endcode /// /// This intrinsic corresponds to the \c PALIGNR instruction. /// /// \param a /// A 128-bit vector of [16 x i8] containing one of the source operands. /// \param b /// A 128-bit vector of [16 x i8] containing one of the source operands. /// \param n /// An immediate operand specifying how many bytes to right-shift the result. /// \returns A 128-bit integer vector containing the concatenated right-shifted /// value. #define _mm_alignr_epi8(a, b, n) \ ((__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \ (__v16qi)(__m128i)(b), (n))) /// Concatenates the two 64-bit integer vector operands, and right-shifts /// the result by the number of bytes specified in the immediate operand. /// /// \headerfile /// /// \code /// __m64 _mm_alignr_pi8(__m64 a, __m64 b, const int n); /// \endcode /// /// This intrinsic corresponds to the \c PALIGNR instruction. /// /// \param a /// A 64-bit vector of [8 x i8] containing one of the source operands. /// \param b /// A 64-bit vector of [8 x i8] containing one of the source operands. /// \param n /// An immediate operand specifying how many bytes to right-shift the result. /// \returns A 64-bit integer vector containing the concatenated right-shifted /// value. #define _mm_alignr_pi8(a, b, n) \ ((__m64)__builtin_shufflevector( \ __builtin_ia32_psrldqi128_byteshift( \ __builtin_shufflevector((__v1di)(a), (__v1di)(b), 1, 0), \ (n)), __extension__ (__v2di){}, 0)) /// Horizontally adds the adjacent pairs of values contained in 2 packed /// 128-bit vectors of [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPHADDW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 128-bit vector of [8 x i16] containing the horizontal sums of /// both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_hadd_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phaddw128((__v8hi)__a, (__v8hi)__b); } /// Horizontally adds the adjacent pairs of values contained in 2 packed /// 128-bit vectors of [4 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPHADDD instruction. /// /// \param __a /// A 128-bit vector of [4 x i32] containing one of the source operands. The /// horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 128-bit vector of [4 x i32] containing one of the source operands. The /// horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 128-bit vector of [4 x i32] containing the horizontal sums of /// both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_hadd_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phaddd128((__v4si)__a, (__v4si)__b); } /// Horizontally adds the adjacent pairs of values contained in 2 packed /// 64-bit vectors of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the \c PHADDW instruction. /// /// \param __a /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 64-bit vector of [4 x i16] containing the horizontal sums of both /// operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_hadd_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_phaddw128( (__v8hi)__builtin_shufflevector(__a, __b, 0, 1), (__v8hi){})); } /// Horizontally adds the adjacent pairs of values contained in 2 packed /// 64-bit vectors of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the \c PHADDD instruction. /// /// \param __a /// A 64-bit vector of [2 x i32] containing one of the source operands. The /// horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 64-bit vector of [2 x i32] containing one of the source operands. The /// horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 64-bit vector of [2 x i32] containing the horizontal sums of both /// operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_hadd_pi32(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_phaddd128( (__v4si)__builtin_shufflevector(__a, __b, 0, 1), (__v4si){})); } /// Horizontally adds, with saturation, the adjacent pairs of values contained /// in two packed 128-bit vectors of [8 x i16]. /// /// Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums /// less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPHADDSW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated /// sums of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_hadds_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phaddsw128((__v8hi)__a, (__v8hi)__b); } /// Horizontally adds, with saturation, the adjacent pairs of values contained /// in two packed 64-bit vectors of [4 x i16]. /// /// Positive sums greater than 0x7FFF are saturated to 0x7FFF. Negative sums /// less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the \c PHADDSW instruction. /// /// \param __a /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the lower bits of the /// destination. /// \param __b /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal sums of the values are stored in the upper bits of the /// destination. /// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated /// sums of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_hadds_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_phaddsw128( (__v8hi)__builtin_shufflevector(__a, __b, 0, 1), (__v8hi){})); } /// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 128-bit vectors of [8 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPHSUBW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the lower bits of /// the destination. /// \param __b /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the upper bits of /// the destination. /// \returns A 128-bit vector of [8 x i16] containing the horizontal differences /// of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_hsub_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phsubw128((__v8hi)__a, (__v8hi)__b); } /// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 128-bit vectors of [4 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPHSUBD instruction. /// /// \param __a /// A 128-bit vector of [4 x i32] containing one of the source operands. The /// horizontal differences between the values are stored in the lower bits of /// the destination. /// \param __b /// A 128-bit vector of [4 x i32] containing one of the source operands. The /// horizontal differences between the values are stored in the upper bits of /// the destination. /// \returns A 128-bit vector of [4 x i32] containing the horizontal differences /// of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_hsub_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phsubd128((__v4si)__a, (__v4si)__b); } /// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 64-bit vectors of [4 x i16]. /// /// \headerfile /// /// This intrinsic corresponds to the \c PHSUBW instruction. /// /// \param __a /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the lower bits of /// the destination. /// \param __b /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the upper bits of /// the destination. /// \returns A 64-bit vector of [4 x i16] containing the horizontal differences /// of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_hsub_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_phsubw128( (__v8hi)__builtin_shufflevector(__a, __b, 0, 1), (__v8hi){})); } /// Horizontally subtracts the adjacent pairs of values contained in 2 /// packed 64-bit vectors of [2 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the \c PHSUBD instruction. /// /// \param __a /// A 64-bit vector of [2 x i32] containing one of the source operands. The /// horizontal differences between the values are stored in the lower bits of /// the destination. /// \param __b /// A 64-bit vector of [2 x i32] containing one of the source operands. The /// horizontal differences between the values are stored in the upper bits of /// the destination. /// \returns A 64-bit vector of [2 x i32] containing the horizontal differences /// of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_hsub_pi32(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_phsubd128( (__v4si)__builtin_shufflevector(__a, __b, 0, 1), (__v4si){})); } /// Horizontally subtracts, with saturation, the adjacent pairs of values /// contained in two packed 128-bit vectors of [8 x i16]. /// /// Positive differences greater than 0x7FFF are saturated to 0x7FFF. /// Negative differences less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPHSUBSW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the lower bits of /// the destination. /// \param __b /// A 128-bit vector of [8 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the upper bits of /// the destination. /// \returns A 128-bit vector of [8 x i16] containing the horizontal saturated /// differences of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_hsubs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_phsubsw128((__v8hi)__a, (__v8hi)__b); } /// Horizontally subtracts, with saturation, the adjacent pairs of values /// contained in two packed 64-bit vectors of [4 x i16]. /// /// Positive differences greater than 0x7FFF are saturated to 0x7FFF. /// Negative differences less than 0x8000 are saturated to 0x8000. /// /// \headerfile /// /// This intrinsic corresponds to the \c PHSUBSW instruction. /// /// \param __a /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the lower bits of /// the destination. /// \param __b /// A 64-bit vector of [4 x i16] containing one of the source operands. The /// horizontal differences between the values are stored in the upper bits of /// the destination. /// \returns A 64-bit vector of [4 x i16] containing the horizontal saturated /// differences of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_hsubs_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_phsubsw128( (__v8hi)__builtin_shufflevector(__a, __b, 0, 1), (__v8hi){})); } /// Multiplies corresponding pairs of packed 8-bit unsigned integer /// values contained in the first source operand and packed 8-bit signed /// integer values contained in the second source operand, adds pairs of /// contiguous products with signed saturation, and writes the 16-bit sums to /// the corresponding bits in the destination. /// /// For example, bits [7:0] of both operands are multiplied, bits [15:8] of /// both operands are multiplied, and the sum of both results is written to /// bits [15:0] of the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPMADDUBSW instruction. /// /// \param __a /// A 128-bit integer vector containing the first source operand. /// \param __b /// A 128-bit integer vector containing the second source operand. /// \returns A 128-bit integer vector containing the sums of products of both /// operands: \n /// \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n /// \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n /// \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n /// \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7) \n /// \a R4 := (\a __a8 * \a __b8) + (\a __a9 * \a __b9) \n /// \a R5 := (\a __a10 * \a __b10) + (\a __a11 * \a __b11) \n /// \a R6 := (\a __a12 * \a __b12) + (\a __a13 * \a __b13) \n /// \a R7 := (\a __a14 * \a __b14) + (\a __a15 * \a __b15) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_maddubs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmaddubsw128((__v16qi)__a, (__v16qi)__b); } /// Multiplies corresponding pairs of packed 8-bit unsigned integer /// values contained in the first source operand and packed 8-bit signed /// integer values contained in the second source operand, adds pairs of /// contiguous products with signed saturation, and writes the 16-bit sums to /// the corresponding bits in the destination. /// /// For example, bits [7:0] of both operands are multiplied, bits [15:8] of /// both operands are multiplied, and the sum of both results is written to /// bits [15:0] of the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PMADDUBSW instruction. /// /// \param __a /// A 64-bit integer vector containing the first source operand. /// \param __b /// A 64-bit integer vector containing the second source operand. /// \returns A 64-bit integer vector containing the sums of products of both /// operands: \n /// \a R0 := (\a __a0 * \a __b0) + (\a __a1 * \a __b1) \n /// \a R1 := (\a __a2 * \a __b2) + (\a __a3 * \a __b3) \n /// \a R2 := (\a __a4 * \a __b4) + (\a __a5 * \a __b5) \n /// \a R3 := (\a __a6 * \a __b6) + (\a __a7 * \a __b7) static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_maddubs_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pmaddubsw128((__v16qi)__anyext128(__a), (__v16qi)__anyext128(__b))); } /// Multiplies packed 16-bit signed integer values, truncates the 32-bit /// products to the 18 most significant bits by right-shifting, rounds the /// truncated value by adding 1, and writes bits [16:1] to the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPMULHRSW instruction. /// /// \param __a /// A 128-bit vector of [8 x i16] containing one of the source operands. /// \param __b /// A 128-bit vector of [8 x i16] containing one of the source operands. /// \returns A 128-bit vector of [8 x i16] containing the rounded and scaled /// products of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mulhrs_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pmulhrsw128((__v8hi)__a, (__v8hi)__b); } /// Multiplies packed 16-bit signed integer values, truncates the 32-bit /// products to the 18 most significant bits by right-shifting, rounds the /// truncated value by adding 1, and writes bits [16:1] to the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PMULHRSW instruction. /// /// \param __a /// A 64-bit vector of [4 x i16] containing one of the source operands. /// \param __b /// A 64-bit vector of [4 x i16] containing one of the source operands. /// \returns A 64-bit vector of [4 x i16] containing the rounded and scaled /// products of both operands. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_mulhrs_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pmulhrsw128((__v8hi)__anyext128(__a), (__v8hi)__anyext128(__b))); } /// Copies the 8-bit integers from a 128-bit integer vector to the /// destination or clears 8-bit values in the destination, as specified by /// the second source operand. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPSHUFB instruction. /// /// \param __a /// A 128-bit integer vector containing the values to be copied. /// \param __b /// A 128-bit integer vector containing control bytes corresponding to /// positions in the destination: /// Bit 7: \n /// 1: Clear the corresponding byte in the destination. \n /// 0: Copy the selected source byte to the corresponding byte in the /// destination. \n /// Bits [6:4] Reserved. \n /// Bits [3:0] select the source byte to be copied. /// \returns A 128-bit integer vector containing the copied or cleared values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_shuffle_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_pshufb128((__v16qi)__a, (__v16qi)__b); } /// Copies the 8-bit integers from a 64-bit integer vector to the /// destination or clears 8-bit values in the destination, as specified by /// the second source operand. /// /// \headerfile /// /// This intrinsic corresponds to the \c PSHUFB instruction. /// /// \param __a /// A 64-bit integer vector containing the values to be copied. /// \param __b /// A 64-bit integer vector containing control bytes corresponding to /// positions in the destination: /// Bit 7: \n /// 1: Clear the corresponding byte in the destination. \n /// 0: Copy the selected source byte to the corresponding byte in the /// destination. \n /// Bits [2:0] select the source byte to be copied. /// \returns A 64-bit integer vector containing the copied or cleared values. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_shuffle_pi8(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_pshufb128( (__v16qi)__builtin_shufflevector( (__v2si)(__a), __extension__ (__v2si){}, 0, 1, 0, 1), (__v16qi)__anyext128(__b))); } /// For each 8-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the byte in the second source is negative, calculate the two's /// complement of the corresponding byte in the first source, and write that /// value to the destination. If the byte in the second source is positive, /// copy the corresponding byte from the first source to the destination. If /// the byte in the second source is zero, clear the corresponding byte in /// the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPSIGNB instruction. /// /// \param __a /// A 128-bit integer vector containing the values to be copied. /// \param __b /// A 128-bit integer vector containing control bytes corresponding to /// positions in the destination. /// \returns A 128-bit integer vector containing the resultant values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sign_epi8(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psignb128((__v16qi)__a, (__v16qi)__b); } /// For each 16-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the word in the second source is negative, calculate the two's /// complement of the corresponding word in the first source, and write that /// value to the destination. If the word in the second source is positive, /// copy the corresponding word from the first source to the destination. If /// the word in the second source is zero, clear the corresponding word in /// the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPSIGNW instruction. /// /// \param __a /// A 128-bit integer vector containing the values to be copied. /// \param __b /// A 128-bit integer vector containing control words corresponding to /// positions in the destination. /// \returns A 128-bit integer vector containing the resultant values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sign_epi16(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psignw128((__v8hi)__a, (__v8hi)__b); } /// For each 32-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the doubleword in the second source is negative, calculate the two's /// complement of the corresponding word in the first source, and write that /// value to the destination. If the doubleword in the second source is /// positive, copy the corresponding word from the first source to the /// destination. If the doubleword in the second source is zero, clear the /// corresponding word in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c VPSIGND instruction. /// /// \param __a /// A 128-bit integer vector containing the values to be copied. /// \param __b /// A 128-bit integer vector containing control doublewords corresponding to /// positions in the destination. /// \returns A 128-bit integer vector containing the resultant values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_sign_epi32(__m128i __a, __m128i __b) { return (__m128i)__builtin_ia32_psignd128((__v4si)__a, (__v4si)__b); } /// For each 8-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the byte in the second source is negative, calculate the two's /// complement of the corresponding byte in the first source, and write that /// value to the destination. If the byte in the second source is positive, /// copy the corresponding byte from the first source to the destination. If /// the byte in the second source is zero, clear the corresponding byte in /// the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PSIGNB instruction. /// /// \param __a /// A 64-bit integer vector containing the values to be copied. /// \param __b /// A 64-bit integer vector containing control bytes corresponding to /// positions in the destination. /// \returns A 64-bit integer vector containing the resultant values. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sign_pi8(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_psignb128((__v16qi)__anyext128(__a), (__v16qi)__anyext128(__b))); } /// For each 16-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the word in the second source is negative, calculate the two's /// complement of the corresponding word in the first source, and write that /// value to the destination. If the word in the second source is positive, /// copy the corresponding word from the first source to the destination. If /// the word in the second source is zero, clear the corresponding word in /// the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PSIGNW instruction. /// /// \param __a /// A 64-bit integer vector containing the values to be copied. /// \param __b /// A 64-bit integer vector containing control words corresponding to /// positions in the destination. /// \returns A 64-bit integer vector containing the resultant values. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sign_pi16(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_psignw128((__v8hi)__anyext128(__a), (__v8hi)__anyext128(__b))); } /// For each 32-bit integer in the first source operand, perform one of /// the following actions as specified by the second source operand. /// /// If the doubleword in the second source is negative, calculate the two's /// complement of the corresponding doubleword in the first source, and /// write that value to the destination. If the doubleword in the second /// source is positive, copy the corresponding doubleword from the first /// source to the destination. If the doubleword in the second source is /// zero, clear the corresponding doubleword in the destination. /// /// \headerfile /// /// This intrinsic corresponds to the \c PSIGND instruction. /// /// \param __a /// A 64-bit integer vector containing the values to be copied. /// \param __b /// A 64-bit integer vector containing two control doublewords corresponding /// to positions in the destination. /// \returns A 64-bit integer vector containing the resultant values. static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sign_pi32(__m64 __a, __m64 __b) { return __trunc64(__builtin_ia32_psignd128((__v4si)__anyext128(__a), (__v4si)__anyext128(__b))); } #undef __anyext128 #undef __trunc64 #undef __DEFAULT_FN_ATTRS #endif /* __TMMINTRIN_H */ # 811 "/home/marcus/llvm20/lib/clang/20/include/tmmintrin.h" 3 #endif /* tmmintrin.h expanded by -frewrite-includes */ # 18 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 2 3 /* Define the default attributes for the functions in this file. */ #if 0 /* disabled by -frewrite-includes */ #if defined(__EVEX512__) && !defined(__AVX10_1_512__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 21 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, \ __target__("sse4.1,no-evex512"), __min_vector_width__(128))) #else # 25 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse4.1"), \ __min_vector_width__(128))) #endif # 29 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 /* SSE4 Rounding macros. */ #define _MM_FROUND_TO_NEAREST_INT 0x00 #define _MM_FROUND_TO_NEG_INF 0x01 #define _MM_FROUND_TO_POS_INF 0x02 #define _MM_FROUND_TO_ZERO 0x03 #define _MM_FROUND_CUR_DIRECTION 0x04 #define _MM_FROUND_RAISE_EXC 0x00 #define _MM_FROUND_NO_EXC 0x08 #define _MM_FROUND_NINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEAREST_INT) #define _MM_FROUND_FLOOR (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_NEG_INF) #define _MM_FROUND_CEIL (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_POS_INF) #define _MM_FROUND_TRUNC (_MM_FROUND_RAISE_EXC | _MM_FROUND_TO_ZERO) #define _MM_FROUND_RINT (_MM_FROUND_RAISE_EXC | _MM_FROUND_CUR_DIRECTION) #define _MM_FROUND_NEARBYINT (_MM_FROUND_NO_EXC | _MM_FROUND_CUR_DIRECTION) /// Rounds up each element of the 128-bit vector of [4 x float] to an /// integer and returns the rounded values in a 128-bit vector of /// [4 x float]. /// /// \headerfile /// /// \code /// __m128 _mm_ceil_ps(__m128 X); /// \endcode /// /// This intrinsic corresponds to the VROUNDPS / ROUNDPS instruction. /// /// \param X /// A 128-bit vector of [4 x float] values to be rounded up. /// \returns A 128-bit vector of [4 x float] containing the rounded values. #define _mm_ceil_ps(X) _mm_round_ps((X), _MM_FROUND_CEIL) /// Rounds up each element of the 128-bit vector of [2 x double] to an /// integer and returns the rounded values in a 128-bit vector of /// [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_ceil_pd(__m128d X); /// \endcode /// /// This intrinsic corresponds to the VROUNDPD / ROUNDPD instruction. /// /// \param X /// A 128-bit vector of [2 x double] values to be rounded up. /// \returns A 128-bit vector of [2 x double] containing the rounded values. #define _mm_ceil_pd(X) _mm_round_pd((X), _MM_FROUND_CEIL) /// Copies three upper elements of the first 128-bit vector operand to /// the corresponding three upper elements of the 128-bit result vector of /// [4 x float]. Rounds up the lowest element of the second 128-bit vector /// operand to an integer and copies it to the lowest element of the 128-bit /// result vector of [4 x float]. /// /// \headerfile /// /// \code /// __m128 _mm_ceil_ss(__m128 X, __m128 Y); /// \endcode /// /// This intrinsic corresponds to the VROUNDSS / ROUNDSS instruction. /// /// \param X /// A 128-bit vector of [4 x float]. The values stored in bits [127:32] are /// copied to the corresponding bits of the result. /// \param Y /// A 128-bit vector of [4 x float]. The value stored in bits [31:0] is /// rounded up to the nearest integer and copied to the corresponding bits /// of the result. /// \returns A 128-bit vector of [4 x float] containing the copied and rounded /// values. #define _mm_ceil_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_CEIL) /// Copies the upper element of the first 128-bit vector operand to the /// corresponding upper element of the 128-bit result vector of [2 x double]. /// Rounds up the lower element of the second 128-bit vector operand to an /// integer and copies it to the lower element of the 128-bit result vector /// of [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_ceil_sd(__m128d X, __m128d Y); /// \endcode /// /// This intrinsic corresponds to the VROUNDSD / ROUNDSD instruction. /// /// \param X /// A 128-bit vector of [2 x double]. The value stored in bits [127:64] is /// copied to the corresponding bits of the result. /// \param Y /// A 128-bit vector of [2 x double]. The value stored in bits [63:0] is /// rounded up to the nearest integer and copied to the corresponding bits /// of the result. /// \returns A 128-bit vector of [2 x double] containing the copied and rounded /// values. #define _mm_ceil_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_CEIL) /// Rounds down each element of the 128-bit vector of [4 x float] to an /// an integer and returns the rounded values in a 128-bit vector of /// [4 x float]. /// /// \headerfile /// /// \code /// __m128 _mm_floor_ps(__m128 X); /// \endcode /// /// This intrinsic corresponds to the VROUNDPS / ROUNDPS instruction. /// /// \param X /// A 128-bit vector of [4 x float] values to be rounded down. /// \returns A 128-bit vector of [4 x float] containing the rounded values. #define _mm_floor_ps(X) _mm_round_ps((X), _MM_FROUND_FLOOR) /// Rounds down each element of the 128-bit vector of [2 x double] to an /// integer and returns the rounded values in a 128-bit vector of /// [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_floor_pd(__m128d X); /// \endcode /// /// This intrinsic corresponds to the VROUNDPD / ROUNDPD instruction. /// /// \param X /// A 128-bit vector of [2 x double]. /// \returns A 128-bit vector of [2 x double] containing the rounded values. #define _mm_floor_pd(X) _mm_round_pd((X), _MM_FROUND_FLOOR) /// Copies three upper elements of the first 128-bit vector operand to /// the corresponding three upper elements of the 128-bit result vector of /// [4 x float]. Rounds down the lowest element of the second 128-bit vector /// operand to an integer and copies it to the lowest element of the 128-bit /// result vector of [4 x float]. /// /// \headerfile /// /// \code /// __m128 _mm_floor_ss(__m128 X, __m128 Y); /// \endcode /// /// This intrinsic corresponds to the VROUNDSS / ROUNDSS instruction. /// /// \param X /// A 128-bit vector of [4 x float]. The values stored in bits [127:32] are /// copied to the corresponding bits of the result. /// \param Y /// A 128-bit vector of [4 x float]. The value stored in bits [31:0] is /// rounded down to the nearest integer and copied to the corresponding bits /// of the result. /// \returns A 128-bit vector of [4 x float] containing the copied and rounded /// values. #define _mm_floor_ss(X, Y) _mm_round_ss((X), (Y), _MM_FROUND_FLOOR) /// Copies the upper element of the first 128-bit vector operand to the /// corresponding upper element of the 128-bit result vector of [2 x double]. /// Rounds down the lower element of the second 128-bit vector operand to an /// integer and copies it to the lower element of the 128-bit result vector /// of [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_floor_sd(__m128d X, __m128d Y); /// \endcode /// /// This intrinsic corresponds to the VROUNDSD / ROUNDSD instruction. /// /// \param X /// A 128-bit vector of [2 x double]. The value stored in bits [127:64] is /// copied to the corresponding bits of the result. /// \param Y /// A 128-bit vector of [2 x double]. The value stored in bits [63:0] is /// rounded down to the nearest integer and copied to the corresponding bits /// of the result. /// \returns A 128-bit vector of [2 x double] containing the copied and rounded /// values. #define _mm_floor_sd(X, Y) _mm_round_sd((X), (Y), _MM_FROUND_FLOOR) /// Rounds each element of the 128-bit vector of [4 x float] to an /// integer value according to the rounding control specified by the second /// argument and returns the rounded values in a 128-bit vector of /// [4 x float]. /// /// \headerfile /// /// \code /// __m128 _mm_round_ps(__m128 X, const int M); /// \endcode /// /// This intrinsic corresponds to the VROUNDPS / ROUNDPS instruction. /// /// \param X /// A 128-bit vector of [4 x float]. /// \param M /// An integer value that specifies the rounding operation. \n /// Bits [7:4] are reserved. \n /// Bit [3] is a precision exception value: \n /// 0: A normal PE exception is used \n /// 1: The PE field is not updated \n /// Bit [2] is the rounding control source: \n /// 0: Use bits [1:0] of \a M \n /// 1: Use the current MXCSR setting \n /// Bits [1:0] contain the rounding control definition: \n /// 00: Nearest \n /// 01: Downward (toward negative infinity) \n /// 10: Upward (toward positive infinity) \n /// 11: Truncated /// \returns A 128-bit vector of [4 x float] containing the rounded values. #define _mm_round_ps(X, M) \ ((__m128)__builtin_ia32_roundps((__v4sf)(__m128)(X), (M))) /// Copies three upper elements of the first 128-bit vector operand to /// the corresponding three upper elements of the 128-bit result vector of /// [4 x float]. Rounds the lowest element of the second 128-bit vector /// operand to an integer value according to the rounding control specified /// by the third argument and copies it to the lowest element of the 128-bit /// result vector of [4 x float]. /// /// \headerfile /// /// \code /// __m128 _mm_round_ss(__m128 X, __m128 Y, const int M); /// \endcode /// /// This intrinsic corresponds to the VROUNDSS / ROUNDSS instruction. /// /// \param X /// A 128-bit vector of [4 x float]. The values stored in bits [127:32] are /// copied to the corresponding bits of the result. /// \param Y /// A 128-bit vector of [4 x float]. The value stored in bits [31:0] is /// rounded to the nearest integer using the specified rounding control and /// copied to the corresponding bits of the result. /// \param M /// An integer value that specifies the rounding operation. \n /// Bits [7:4] are reserved. \n /// Bit [3] is a precision exception value: \n /// 0: A normal PE exception is used \n /// 1: The PE field is not updated \n /// Bit [2] is the rounding control source: \n /// 0: Use bits [1:0] of \a M \n /// 1: Use the current MXCSR setting \n /// Bits [1:0] contain the rounding control definition: \n /// 00: Nearest \n /// 01: Downward (toward negative infinity) \n /// 10: Upward (toward positive infinity) \n /// 11: Truncated /// \returns A 128-bit vector of [4 x float] containing the copied and rounded /// values. #define _mm_round_ss(X, Y, M) \ ((__m128)__builtin_ia32_roundss((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), \ (M))) /// Rounds each element of the 128-bit vector of [2 x double] to an /// integer value according to the rounding control specified by the second /// argument and returns the rounded values in a 128-bit vector of /// [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_round_pd(__m128d X, const int M); /// \endcode /// /// This intrinsic corresponds to the VROUNDPD / ROUNDPD instruction. /// /// \param X /// A 128-bit vector of [2 x double]. /// \param M /// An integer value that specifies the rounding operation. \n /// Bits [7:4] are reserved. \n /// Bit [3] is a precision exception value: \n /// 0: A normal PE exception is used \n /// 1: The PE field is not updated \n /// Bit [2] is the rounding control source: \n /// 0: Use bits [1:0] of \a M \n /// 1: Use the current MXCSR setting \n /// Bits [1:0] contain the rounding control definition: \n /// 00: Nearest \n /// 01: Downward (toward negative infinity) \n /// 10: Upward (toward positive infinity) \n /// 11: Truncated /// \returns A 128-bit vector of [2 x double] containing the rounded values. #define _mm_round_pd(X, M) \ ((__m128d)__builtin_ia32_roundpd((__v2df)(__m128d)(X), (M))) /// Copies the upper element of the first 128-bit vector operand to the /// corresponding upper element of the 128-bit result vector of [2 x double]. /// Rounds the lower element of the second 128-bit vector operand to an /// integer value according to the rounding control specified by the third /// argument and copies it to the lower element of the 128-bit result vector /// of [2 x double]. /// /// \headerfile /// /// \code /// __m128d _mm_round_sd(__m128d X, __m128d Y, const int M); /// \endcode /// /// This intrinsic corresponds to the VROUNDSD / ROUNDSD instruction. /// /// \param X /// A 128-bit vector of [2 x double]. The value stored in bits [127:64] is /// copied to the corresponding bits of the result. /// \param Y /// A 128-bit vector of [2 x double]. The value stored in bits [63:0] is /// rounded to the nearest integer using the specified rounding control and /// copied to the corresponding bits of the result. /// \param M /// An integer value that specifies the rounding operation. \n /// Bits [7:4] are reserved. \n /// Bit [3] is a precision exception value: \n /// 0: A normal PE exception is used \n /// 1: The PE field is not updated \n /// Bit [2] is the rounding control source: \n /// 0: Use bits [1:0] of \a M \n /// 1: Use the current MXCSR setting \n /// Bits [1:0] contain the rounding control definition: \n /// 00: Nearest \n /// 01: Downward (toward negative infinity) \n /// 10: Upward (toward positive infinity) \n /// 11: Truncated /// \returns A 128-bit vector of [2 x double] containing the copied and rounded /// values. #define _mm_round_sd(X, Y, M) \ ((__m128d)__builtin_ia32_roundsd((__v2df)(__m128d)(X), (__v2df)(__m128d)(Y), \ (M))) /* SSE4 Packed Blending Intrinsics. */ /// Returns a 128-bit vector of [2 x double] where the values are /// selected from either the first or second operand as specified by the /// third operand, the control mask. /// /// \headerfile /// /// \code /// __m128d _mm_blend_pd(__m128d V1, __m128d V2, const int M); /// \endcode /// /// This intrinsic corresponds to the VBLENDPD / BLENDPD instruction. /// /// \param V1 /// A 128-bit vector of [2 x double]. /// \param V2 /// A 128-bit vector of [2 x double]. /// \param M /// An immediate integer operand, with mask bits [1:0] specifying how the /// values are to be copied. The position of the mask bit corresponds to the /// index of a copied value. When a mask bit is 0, the corresponding 64-bit /// element in operand \a V1 is copied to the same position in the result. /// When a mask bit is 1, the corresponding 64-bit element in operand \a V2 /// is copied to the same position in the result. /// \returns A 128-bit vector of [2 x double] containing the copied values. #define _mm_blend_pd(V1, V2, M) \ ((__m128d)__builtin_ia32_blendpd((__v2df)(__m128d)(V1), \ (__v2df)(__m128d)(V2), (int)(M))) /// Returns a 128-bit vector of [4 x float] where the values are selected /// from either the first or second operand as specified by the third /// operand, the control mask. /// /// \headerfile /// /// \code /// __m128 _mm_blend_ps(__m128 V1, __m128 V2, const int M); /// \endcode /// /// This intrinsic corresponds to the VBLENDPS / BLENDPS instruction. /// /// \param V1 /// A 128-bit vector of [4 x float]. /// \param V2 /// A 128-bit vector of [4 x float]. /// \param M /// An immediate integer operand, with mask bits [3:0] specifying how the /// values are to be copied. The position of the mask bit corresponds to the /// index of a copied value. When a mask bit is 0, the corresponding 32-bit /// element in operand \a V1 is copied to the same position in the result. /// When a mask bit is 1, the corresponding 32-bit element in operand \a V2 /// is copied to the same position in the result. /// \returns A 128-bit vector of [4 x float] containing the copied values. #define _mm_blend_ps(V1, V2, M) \ ((__m128)__builtin_ia32_blendps((__v4sf)(__m128)(V1), (__v4sf)(__m128)(V2), \ (int)(M))) /// Returns a 128-bit vector of [2 x double] where the values are /// selected from either the first or second operand as specified by the /// third operand, the control mask. /// /// \headerfile /// /// This intrinsic corresponds to the VBLENDVPD / BLENDVPD instruction. /// /// \param __V1 /// A 128-bit vector of [2 x double]. /// \param __V2 /// A 128-bit vector of [2 x double]. /// \param __M /// A 128-bit vector operand, with mask bits 127 and 63 specifying how the /// values are to be copied. The position of the mask bit corresponds to the /// most significant bit of a copied value. When a mask bit is 0, the /// corresponding 64-bit element in operand \a __V1 is copied to the same /// position in the result. When a mask bit is 1, the corresponding 64-bit /// element in operand \a __V2 is copied to the same position in the result. /// \returns A 128-bit vector of [2 x double] containing the copied values. static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_blendv_pd(__m128d __V1, __m128d __V2, __m128d __M) { return (__m128d)__builtin_ia32_blendvpd((__v2df)__V1, (__v2df)__V2, (__v2df)__M); } /// Returns a 128-bit vector of [4 x float] where the values are /// selected from either the first or second operand as specified by the /// third operand, the control mask. /// /// \headerfile /// /// This intrinsic corresponds to the VBLENDVPS / BLENDVPS instruction. /// /// \param __V1 /// A 128-bit vector of [4 x float]. /// \param __V2 /// A 128-bit vector of [4 x float]. /// \param __M /// A 128-bit vector operand, with mask bits 127, 95, 63, and 31 specifying /// how the values are to be copied. The position of the mask bit corresponds /// to the most significant bit of a copied value. When a mask bit is 0, the /// corresponding 32-bit element in operand \a __V1 is copied to the same /// position in the result. When a mask bit is 1, the corresponding 32-bit /// element in operand \a __V2 is copied to the same position in the result. /// \returns A 128-bit vector of [4 x float] containing the copied values. static __inline__ __m128 __DEFAULT_FN_ATTRS _mm_blendv_ps(__m128 __V1, __m128 __V2, __m128 __M) { return (__m128)__builtin_ia32_blendvps((__v4sf)__V1, (__v4sf)__V2, (__v4sf)__M); } /// Returns a 128-bit vector of [16 x i8] where the values are selected /// from either of the first or second operand as specified by the third /// operand, the control mask. /// /// \headerfile /// /// This intrinsic corresponds to the VPBLENDVB / PBLENDVB instruction. /// /// \param __V1 /// A 128-bit vector of [16 x i8]. /// \param __V2 /// A 128-bit vector of [16 x i8]. /// \param __M /// A 128-bit vector operand, with mask bits 127, 119, 111...7 specifying /// how the values are to be copied. The position of the mask bit corresponds /// to the most significant bit of a copied value. When a mask bit is 0, the /// corresponding 8-bit element in operand \a __V1 is copied to the same /// position in the result. When a mask bit is 1, the corresponding 8-bit /// element in operand \a __V2 is copied to the same position in the result. /// \returns A 128-bit vector of [16 x i8] containing the copied values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_blendv_epi8(__m128i __V1, __m128i __V2, __m128i __M) { return (__m128i)__builtin_ia32_pblendvb128((__v16qi)__V1, (__v16qi)__V2, (__v16qi)__M); } /// Returns a 128-bit vector of [8 x i16] where the values are selected /// from either of the first or second operand as specified by the third /// operand, the control mask. /// /// \headerfile /// /// \code /// __m128i _mm_blend_epi16(__m128i V1, __m128i V2, const int M); /// \endcode /// /// This intrinsic corresponds to the VPBLENDW / PBLENDW instruction. /// /// \param V1 /// A 128-bit vector of [8 x i16]. /// \param V2 /// A 128-bit vector of [8 x i16]. /// \param M /// An immediate integer operand, with mask bits [7:0] specifying how the /// values are to be copied. The position of the mask bit corresponds to the /// index of a copied value. When a mask bit is 0, the corresponding 16-bit /// element in operand \a V1 is copied to the same position in the result. /// When a mask bit is 1, the corresponding 16-bit element in operand \a V2 /// is copied to the same position in the result. /// \returns A 128-bit vector of [8 x i16] containing the copied values. #define _mm_blend_epi16(V1, V2, M) \ ((__m128i)__builtin_ia32_pblendw128((__v8hi)(__m128i)(V1), \ (__v8hi)(__m128i)(V2), (int)(M))) /* SSE4 Dword Multiply Instructions. */ /// Multiples corresponding elements of two 128-bit vectors of [4 x i32] /// and returns the lower 32 bits of the each product in a 128-bit vector of /// [4 x i32]. /// /// \headerfile /// /// This intrinsic corresponds to the VPMULLD / PMULLD instruction. /// /// \param __V1 /// A 128-bit integer vector. /// \param __V2 /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the products of both operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mullo_epi32(__m128i __V1, __m128i __V2) { return (__m128i)((__v4su)__V1 * (__v4su)__V2); } /// Multiplies corresponding even-indexed elements of two 128-bit /// vectors of [4 x i32] and returns a 128-bit vector of [2 x i64] /// containing the products. /// /// \headerfile /// /// This intrinsic corresponds to the VPMULDQ / PMULDQ instruction. /// /// \param __V1 /// A 128-bit vector of [4 x i32]. /// \param __V2 /// A 128-bit vector of [4 x i32]. /// \returns A 128-bit vector of [2 x i64] containing the products of both /// operands. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_mul_epi32(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_ia32_pmuldq128((__v4si)__V1, (__v4si)__V2); } /* SSE4 Floating Point Dot Product Instructions. */ /// Computes the dot product of the two 128-bit vectors of [4 x float] /// and returns it in the elements of the 128-bit result vector of /// [4 x float]. /// /// The immediate integer operand controls which input elements /// will contribute to the dot product, and where the final results are /// returned. /// /// \headerfile /// /// \code /// __m128 _mm_dp_ps(__m128 X, __m128 Y, const int M); /// \endcode /// /// This intrinsic corresponds to the VDPPS / DPPS instruction. /// /// \param X /// A 128-bit vector of [4 x float]. /// \param Y /// A 128-bit vector of [4 x float]. /// \param M /// An immediate integer operand. Mask bits [7:4] determine which elements /// of the input vectors are used, with bit [4] corresponding to the lowest /// element and bit [7] corresponding to the highest element of each [4 x /// float] vector. If a bit is set, the corresponding elements from the two /// input vectors are used as an input for dot product; otherwise that input /// is treated as zero. Bits [3:0] determine which elements of the result /// will receive a copy of the final dot product, with bit [0] corresponding /// to the lowest element and bit [3] corresponding to the highest element of /// each [4 x float] subvector. If a bit is set, the dot product is returned /// in the corresponding element; otherwise that element is set to zero. /// \returns A 128-bit vector of [4 x float] containing the dot product. #define _mm_dp_ps(X, Y, M) \ ((__m128)__builtin_ia32_dpps((__v4sf)(__m128)(X), (__v4sf)(__m128)(Y), (M))) /// Computes the dot product of the two 128-bit vectors of [2 x double] /// and returns it in the elements of the 128-bit result vector of /// [2 x double]. /// /// The immediate integer operand controls which input /// elements will contribute to the dot product, and where the final results /// are returned. /// /// \headerfile /// /// \code /// __m128d _mm_dp_pd(__m128d X, __m128d Y, const int M); /// \endcode /// /// This intrinsic corresponds to the VDPPD / DPPD instruction. /// /// \param X /// A 128-bit vector of [2 x double]. /// \param Y /// A 128-bit vector of [2 x double]. /// \param M /// An immediate integer operand. Mask bits [5:4] determine which elements /// of the input vectors are used, with bit [4] corresponding to the lowest /// element and bit [5] corresponding to the highest element of each of [2 x /// double] vector. If a bit is set, the corresponding elements from the two /// input vectors are used as an input for dot product; otherwise that input /// is treated as zero. Bits [1:0] determine which elements of the result /// will receive a copy of the final dot product, with bit [0] corresponding /// to the lowest element and bit [1] corresponding to the highest element of /// each [2 x double] vector. If a bit is set, the dot product is returned in /// the corresponding element; otherwise that element is set to zero. #define _mm_dp_pd(X, Y, M) \ ((__m128d)__builtin_ia32_dppd((__v2df)(__m128d)(X), (__v2df)(__m128d)(Y), \ (M))) /* SSE4 Streaming Load Hint Instruction. */ /// Loads integer values from a 128-bit aligned memory location to a /// 128-bit integer vector. /// /// \headerfile /// /// This intrinsic corresponds to the VMOVNTDQA / MOVNTDQA instruction. /// /// \param __V /// A pointer to a 128-bit aligned memory location that contains the integer /// values. /// \returns A 128-bit integer vector containing the data stored at the /// specified memory location. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_stream_load_si128(const void *__V) { return (__m128i)__builtin_nontemporal_load((const __v2di *)__V); } /* SSE4 Packed Integer Min/Max Instructions. */ /// Compares the corresponding elements of two 128-bit vectors of /// [16 x i8] and returns a 128-bit vector of [16 x i8] containing the lesser /// of the two values. /// /// \headerfile /// /// This intrinsic corresponds to the VPMINSB / PMINSB instruction. /// /// \param __V1 /// A 128-bit vector of [16 x i8]. /// \param __V2 /// A 128-bit vector of [16 x i8] /// \returns A 128-bit vector of [16 x i8] containing the lesser values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi8(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_min((__v16qs)__V1, (__v16qs)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [16 x i8] and returns a 128-bit vector of [16 x i8] containing the /// greater value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMAXSB / PMAXSB instruction. /// /// \param __V1 /// A 128-bit vector of [16 x i8]. /// \param __V2 /// A 128-bit vector of [16 x i8]. /// \returns A 128-bit vector of [16 x i8] containing the greater values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi8(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_max((__v16qs)__V1, (__v16qs)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [8 x u16] and returns a 128-bit vector of [8 x u16] containing the lesser /// value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMINUW / PMINUW instruction. /// /// \param __V1 /// A 128-bit vector of [8 x u16]. /// \param __V2 /// A 128-bit vector of [8 x u16]. /// \returns A 128-bit vector of [8 x u16] containing the lesser values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu16(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_min((__v8hu)__V1, (__v8hu)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [8 x u16] and returns a 128-bit vector of [8 x u16] containing the /// greater value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMAXUW / PMAXUW instruction. /// /// \param __V1 /// A 128-bit vector of [8 x u16]. /// \param __V2 /// A 128-bit vector of [8 x u16]. /// \returns A 128-bit vector of [8 x u16] containing the greater values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu16(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_max((__v8hu)__V1, (__v8hu)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [4 x i32] and returns a 128-bit vector of [4 x i32] containing the lesser /// value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMINSD / PMINSD instruction. /// /// \param __V1 /// A 128-bit vector of [4 x i32]. /// \param __V2 /// A 128-bit vector of [4 x i32]. /// \returns A 128-bit vector of [4 x i32] containing the lesser values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epi32(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_min((__v4si)__V1, (__v4si)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [4 x i32] and returns a 128-bit vector of [4 x i32] containing the /// greater value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMAXSD / PMAXSD instruction. /// /// \param __V1 /// A 128-bit vector of [4 x i32]. /// \param __V2 /// A 128-bit vector of [4 x i32]. /// \returns A 128-bit vector of [4 x i32] containing the greater values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epi32(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_max((__v4si)__V1, (__v4si)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [4 x u32] and returns a 128-bit vector of [4 x u32] containing the lesser /// value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMINUD / PMINUD instruction. /// /// \param __V1 /// A 128-bit vector of [4 x u32]. /// \param __V2 /// A 128-bit vector of [4 x u32]. /// \returns A 128-bit vector of [4 x u32] containing the lesser values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_min_epu32(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_min((__v4su)__V1, (__v4su)__V2); } /// Compares the corresponding elements of two 128-bit vectors of /// [4 x u32] and returns a 128-bit vector of [4 x u32] containing the /// greater value of the two. /// /// \headerfile /// /// This intrinsic corresponds to the VPMAXUD / PMAXUD instruction. /// /// \param __V1 /// A 128-bit vector of [4 x u32]. /// \param __V2 /// A 128-bit vector of [4 x u32]. /// \returns A 128-bit vector of [4 x u32] containing the greater values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_max_epu32(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_elementwise_max((__v4su)__V1, (__v4su)__V2); } /* SSE4 Insertion and Extraction from XMM Register Instructions. */ /// Takes the first argument \a X and inserts an element from the second /// argument \a Y as selected by the third argument \a N. That result then /// has elements zeroed out also as selected by the third argument \a N. The /// resulting 128-bit vector of [4 x float] is then returned. /// /// \headerfile /// /// \code /// __m128 _mm_insert_ps(__m128 X, __m128 Y, const int N); /// \endcode /// /// This intrinsic corresponds to the VINSERTPS instruction. /// /// \param X /// A 128-bit vector source operand of [4 x float]. With the exception of /// those bits in the result copied from parameter \a Y and zeroed by bits /// [3:0] of \a N, all bits from this parameter are copied to the result. /// \param Y /// A 128-bit vector source operand of [4 x float]. One single-precision /// floating-point element from this source, as determined by the immediate /// parameter, is copied to the result. /// \param N /// Specifies which bits from operand \a Y will be copied, which bits in the /// result they will be copied to, and which bits in the result will be /// cleared. The following assignments are made: \n /// Bits [7:6] specify the bits to copy from operand \a Y: \n /// 00: Selects bits [31:0] from operand \a Y. \n /// 01: Selects bits [63:32] from operand \a Y. \n /// 10: Selects bits [95:64] from operand \a Y. \n /// 11: Selects bits [127:96] from operand \a Y. \n /// Bits [5:4] specify the bits in the result to which the selected bits /// from operand \a Y are copied: \n /// 00: Copies the selected bits from \a Y to result bits [31:0]. \n /// 01: Copies the selected bits from \a Y to result bits [63:32]. \n /// 10: Copies the selected bits from \a Y to result bits [95:64]. \n /// 11: Copies the selected bits from \a Y to result bits [127:96]. \n /// Bits[3:0]: If any of these bits are set, the corresponding result /// element is cleared. /// \returns A 128-bit vector of [4 x float] containing the copied /// single-precision floating point elements from the operands. #define _mm_insert_ps(X, Y, N) __builtin_ia32_insertps128((X), (Y), (N)) /// Extracts a 32-bit integer from a 128-bit vector of [4 x float] and /// returns it, using the immediate value parameter \a N as a selector. /// /// \headerfile /// /// \code /// int _mm_extract_ps(__m128 X, const int N); /// \endcode /// /// This intrinsic corresponds to the VEXTRACTPS / EXTRACTPS /// instruction. /// /// \param X /// A 128-bit vector of [4 x float]. /// \param N /// An immediate value. Bits [1:0] determines which bits from the argument /// \a X are extracted and returned: \n /// 00: Bits [31:0] of parameter \a X are returned. \n /// 01: Bits [63:32] of parameter \a X are returned. \n /// 10: Bits [95:64] of parameter \a X are returned. \n /// 11: Bits [127:96] of parameter \a X are returned. /// \returns A 32-bit integer containing the extracted 32 bits of float data. #define _mm_extract_ps(X, N) \ __builtin_bit_cast( \ int, __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N))) /* Miscellaneous insert and extract macros. */ /* Extract a single-precision float from X at index N into D. */ #define _MM_EXTRACT_FLOAT(D, X, N) \ do { \ (D) = __builtin_ia32_vec_ext_v4sf((__v4sf)(__m128)(X), (int)(N)); \ } while (0) /* Or together 2 sets of indexes (X and Y) with the zeroing bits (Z) to create an index suitable for _mm_insert_ps. */ #define _MM_MK_INSERTPS_NDX(X, Y, Z) (((X) << 6) | ((Y) << 4) | (Z)) /* Extract a float from X at index N into the first index of the return. */ #define _MM_PICK_OUT_PS(X, N) \ _mm_insert_ps(_mm_setzero_ps(), (X), _MM_MK_INSERTPS_NDX((N), 0, 0x0e)) /* Insert int into packed integer array at index. */ /// Constructs a 128-bit vector of [16 x i8] by first making a copy of /// the 128-bit integer vector parameter, and then inserting the lower 8 bits /// of an integer parameter \a I into an offset specified by the immediate /// value parameter \a N. /// /// \headerfile /// /// \code /// __m128i _mm_insert_epi8(__m128i X, int I, const int N); /// \endcode /// /// This intrinsic corresponds to the VPINSRB / PINSRB instruction. /// /// \param X /// A 128-bit integer vector of [16 x i8]. This vector is copied to the /// result and then one of the sixteen elements in the result vector is /// replaced by the lower 8 bits of \a I. /// \param I /// An integer. The lower 8 bits of this operand are written to the result /// beginning at the offset specified by \a N. /// \param N /// An immediate value. Bits [3:0] specify the bit offset in the result at /// which the lower 8 bits of \a I are written. \n /// 0000: Bits [7:0] of the result are used for insertion. \n /// 0001: Bits [15:8] of the result are used for insertion. \n /// 0010: Bits [23:16] of the result are used for insertion. \n /// 0011: Bits [31:24] of the result are used for insertion. \n /// 0100: Bits [39:32] of the result are used for insertion. \n /// 0101: Bits [47:40] of the result are used for insertion. \n /// 0110: Bits [55:48] of the result are used for insertion. \n /// 0111: Bits [63:56] of the result are used for insertion. \n /// 1000: Bits [71:64] of the result are used for insertion. \n /// 1001: Bits [79:72] of the result are used for insertion. \n /// 1010: Bits [87:80] of the result are used for insertion. \n /// 1011: Bits [95:88] of the result are used for insertion. \n /// 1100: Bits [103:96] of the result are used for insertion. \n /// 1101: Bits [111:104] of the result are used for insertion. \n /// 1110: Bits [119:112] of the result are used for insertion. \n /// 1111: Bits [127:120] of the result are used for insertion. /// \returns A 128-bit integer vector containing the constructed values. #define _mm_insert_epi8(X, I, N) \ ((__m128i)__builtin_ia32_vec_set_v16qi((__v16qi)(__m128i)(X), (int)(I), \ (int)(N))) /// Constructs a 128-bit vector of [4 x i32] by first making a copy of /// the 128-bit integer vector parameter, and then inserting the 32-bit /// integer parameter \a I at the offset specified by the immediate value /// parameter \a N. /// /// \headerfile /// /// \code /// __m128i _mm_insert_epi32(__m128i X, int I, const int N); /// \endcode /// /// This intrinsic corresponds to the VPINSRD / PINSRD instruction. /// /// \param X /// A 128-bit integer vector of [4 x i32]. This vector is copied to the /// result and then one of the four elements in the result vector is /// replaced by \a I. /// \param I /// A 32-bit integer that is written to the result beginning at the offset /// specified by \a N. /// \param N /// An immediate value. Bits [1:0] specify the bit offset in the result at /// which the integer \a I is written. \n /// 00: Bits [31:0] of the result are used for insertion. \n /// 01: Bits [63:32] of the result are used for insertion. \n /// 10: Bits [95:64] of the result are used for insertion. \n /// 11: Bits [127:96] of the result are used for insertion. /// \returns A 128-bit integer vector containing the constructed values. #define _mm_insert_epi32(X, I, N) \ ((__m128i)__builtin_ia32_vec_set_v4si((__v4si)(__m128i)(X), (int)(I), \ (int)(N))) #ifdef __x86_64__ /// Constructs a 128-bit vector of [2 x i64] by first making a copy of /// the 128-bit integer vector parameter, and then inserting the 64-bit /// integer parameter \a I, using the immediate value parameter \a N as an /// insertion location selector. /// /// \headerfile /// /// \code /// __m128i _mm_insert_epi64(__m128i X, long long I, const int N); /// \endcode /// /// This intrinsic corresponds to the VPINSRQ / PINSRQ instruction. /// /// \param X /// A 128-bit integer vector of [2 x i64]. This vector is copied to the /// result and then one of the two elements in the result vector is replaced /// by \a I. /// \param I /// A 64-bit integer that is written to the result beginning at the offset /// specified by \a N. /// \param N /// An immediate value. Bit [0] specifies the bit offset in the result at /// which the integer \a I is written. \n /// 0: Bits [63:0] of the result are used for insertion. \n /// 1: Bits [127:64] of the result are used for insertion. \n /// \returns A 128-bit integer vector containing the constructed values. #define _mm_insert_epi64(X, I, N) \ ((__m128i)__builtin_ia32_vec_set_v2di((__v2di)(__m128i)(X), (long long)(I), \ (int)(N))) #endif /* __x86_64__ */ # 995 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 /* Extract int from packed integer array at index. This returns the element * as a zero extended value, so it is unsigned. */ /// Extracts an 8-bit element from the 128-bit integer vector of /// [16 x i8], using the immediate value parameter \a N as a selector. /// /// \headerfile /// /// \code /// int _mm_extract_epi8(__m128i X, const int N); /// \endcode /// /// This intrinsic corresponds to the VPEXTRB / PEXTRB instruction. /// /// \param X /// A 128-bit integer vector. /// \param N /// An immediate value. Bits [3:0] specify which 8-bit vector element from /// the argument \a X to extract and copy to the result. \n /// 0000: Bits [7:0] of parameter \a X are extracted. \n /// 0001: Bits [15:8] of the parameter \a X are extracted. \n /// 0010: Bits [23:16] of the parameter \a X are extracted. \n /// 0011: Bits [31:24] of the parameter \a X are extracted. \n /// 0100: Bits [39:32] of the parameter \a X are extracted. \n /// 0101: Bits [47:40] of the parameter \a X are extracted. \n /// 0110: Bits [55:48] of the parameter \a X are extracted. \n /// 0111: Bits [63:56] of the parameter \a X are extracted. \n /// 1000: Bits [71:64] of the parameter \a X are extracted. \n /// 1001: Bits [79:72] of the parameter \a X are extracted. \n /// 1010: Bits [87:80] of the parameter \a X are extracted. \n /// 1011: Bits [95:88] of the parameter \a X are extracted. \n /// 1100: Bits [103:96] of the parameter \a X are extracted. \n /// 1101: Bits [111:104] of the parameter \a X are extracted. \n /// 1110: Bits [119:112] of the parameter \a X are extracted. \n /// 1111: Bits [127:120] of the parameter \a X are extracted. /// \returns An unsigned integer, whose lower 8 bits are selected from the /// 128-bit integer vector parameter and the remaining bits are assigned /// zeros. #define _mm_extract_epi8(X, N) \ ((int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \ (int)(N))) /// Extracts a 32-bit element from the 128-bit integer vector of /// [4 x i32], using the immediate value parameter \a N as a selector. /// /// \headerfile /// /// \code /// int _mm_extract_epi32(__m128i X, const int N); /// \endcode /// /// This intrinsic corresponds to the VPEXTRD / PEXTRD instruction. /// /// \param X /// A 128-bit integer vector. /// \param N /// An immediate value. Bits [1:0] specify which 32-bit vector element from /// the argument \a X to extract and copy to the result. \n /// 00: Bits [31:0] of the parameter \a X are extracted. \n /// 01: Bits [63:32] of the parameter \a X are extracted. \n /// 10: Bits [95:64] of the parameter \a X are extracted. \n /// 11: Bits [127:96] of the parameter \a X are exracted. /// \returns An integer, whose lower 32 bits are selected from the 128-bit /// integer vector parameter and the remaining bits are assigned zeros. #define _mm_extract_epi32(X, N) \ ((int)__builtin_ia32_vec_ext_v4si((__v4si)(__m128i)(X), (int)(N))) /// Extracts a 64-bit element from the 128-bit integer vector of /// [2 x i64], using the immediate value parameter \a N as a selector. /// /// \headerfile /// /// \code /// long long _mm_extract_epi64(__m128i X, const int N); /// \endcode /// /// This intrinsic corresponds to the VPEXTRQ / PEXTRQ instruction /// in 64-bit mode. /// /// \param X /// A 128-bit integer vector. /// \param N /// An immediate value. Bit [0] specifies which 64-bit vector element from /// the argument \a X to return. \n /// 0: Bits [63:0] are returned. \n /// 1: Bits [127:64] are returned. \n /// \returns A 64-bit integer. #define _mm_extract_epi64(X, N) \ ((long long)__builtin_ia32_vec_ext_v2di((__v2di)(__m128i)(X), (int)(N))) /* SSE4 128-bit Packed Integer Comparisons. */ /// Tests whether the specified bits in a 128-bit integer vector are all /// zeros. /// /// \headerfile /// /// This intrinsic corresponds to the VPTEST / PTEST instruction. /// /// \param __M /// A 128-bit integer vector containing the bits to be tested. /// \param __V /// A 128-bit integer vector selecting which bits to test in operand \a __M. /// \returns TRUE if the specified bits are all zeros; FALSE otherwise. static __inline__ int __DEFAULT_FN_ATTRS _mm_testz_si128(__m128i __M, __m128i __V) { return __builtin_ia32_ptestz128((__v2di)__M, (__v2di)__V); } /// Tests whether the specified bits in a 128-bit integer vector are all /// ones. /// /// \headerfile /// /// This intrinsic corresponds to the VPTEST / PTEST instruction. /// /// \param __M /// A 128-bit integer vector containing the bits to be tested. /// \param __V /// A 128-bit integer vector selecting which bits to test in operand \a __M. /// \returns TRUE if the specified bits are all ones; FALSE otherwise. static __inline__ int __DEFAULT_FN_ATTRS _mm_testc_si128(__m128i __M, __m128i __V) { return __builtin_ia32_ptestc128((__v2di)__M, (__v2di)__V); } /// Tests whether the specified bits in a 128-bit integer vector are /// neither all zeros nor all ones. /// /// \headerfile /// /// This intrinsic corresponds to the VPTEST / PTEST instruction. /// /// \param __M /// A 128-bit integer vector containing the bits to be tested. /// \param __V /// A 128-bit integer vector selecting which bits to test in operand \a __M. /// \returns TRUE if the specified bits are neither all zeros nor all ones; /// FALSE otherwise. static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M, __m128i __V) { return __builtin_ia32_ptestnzc128((__v2di)__M, (__v2di)__V); } /// Tests whether the specified bits in a 128-bit integer vector are all /// ones. /// /// \headerfile /// /// \code /// int _mm_test_all_ones(__m128i V); /// \endcode /// /// This intrinsic corresponds to the VPTEST / PTEST instruction. /// /// \param V /// A 128-bit integer vector containing the bits to be tested. /// \returns TRUE if the bits specified in the operand are all set to 1; FALSE /// otherwise. #define _mm_test_all_ones(V) _mm_testc_si128((V), _mm_set1_epi32(-1)) /// Tests whether the specified bits in a 128-bit integer vector are /// neither all zeros nor all ones. /// /// \headerfile /// /// \code /// int _mm_test_mix_ones_zeros(__m128i M, __m128i V); /// \endcode /// /// This intrinsic corresponds to the VPTEST / PTEST instruction. /// /// \param M /// A 128-bit integer vector containing the bits to be tested. /// \param V /// A 128-bit integer vector selecting which bits to test in operand \a M. /// \returns TRUE if the specified bits are neither all zeros nor all ones; /// FALSE otherwise. #define _mm_test_mix_ones_zeros(M, V) _mm_testnzc_si128((M), (V)) /// Tests whether the specified bits in a 128-bit integer vector are all /// zeros. /// /// \headerfile /// /// \code /// int _mm_test_all_zeros(__m128i M, __m128i V); /// \endcode /// /// This intrinsic corresponds to the VPTEST / PTEST instruction. /// /// \param M /// A 128-bit integer vector containing the bits to be tested. /// \param V /// A 128-bit integer vector selecting which bits to test in operand \a M. /// \returns TRUE if the specified bits are all zeros; FALSE otherwise. #define _mm_test_all_zeros(M, V) _mm_testz_si128((M), (V)) /* SSE4 64-bit Packed Integer Comparisons. */ /// Compares each of the corresponding 64-bit values of the 128-bit /// integer vectors for equality. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPEQQ / PCMPEQQ instruction. /// /// \param __V1 /// A 128-bit integer vector. /// \param __V2 /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi64(__m128i __V1, __m128i __V2) { return (__m128i)((__v2di)__V1 == (__v2di)__V2); } /* SSE4 Packed Integer Sign-Extension. */ /// Sign-extends each of the lower eight 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 16-bit values and returns them in a /// 128-bit vector of [8 x i16]. The upper eight elements of the input vector /// are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVSXBW / PMOVSXBW instruction. /// /// \param __V /// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are /// sign-extended to 16-bit values. /// \returns A 128-bit vector of [8 x i16] containing the sign-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi16(__m128i __V) { /* This function always performs a signed extension, but __v16qi is a char which may be signed or unsigned, so use __v16qs. */ return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); } /// Sign-extends each of the lower four 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 32-bit values and returns them in a /// 128-bit vector of [4 x i32]. The upper twelve elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVSXBD / PMOVSXBD instruction. /// /// \param __V /// A 128-bit vector of [16 x i8]. The lower four 8-bit elements are /// sign-extended to 32-bit values. /// \returns A 128-bit vector of [4 x i32] containing the sign-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi32(__m128i __V) { /* This function always performs a signed extension, but __v16qi is a char which may be signed or unsigned, so use __v16qs. */ return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1, 2, 3), __v4si); } /// Sign-extends each of the lower two 8-bit integer elements of a /// 128-bit integer vector of [16 x i8] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper fourteen elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVSXBQ / PMOVSXBQ instruction. /// /// \param __V /// A 128-bit vector of [16 x i8]. The lower two 8-bit elements are /// sign-extended to 64-bit values. /// \returns A 128-bit vector of [2 x i64] containing the sign-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi8_epi64(__m128i __V) { /* This function always performs a signed extension, but __v16qi is a char which may be signed or unsigned, so use __v16qs. */ return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v16qs)__V, (__v16qs)__V, 0, 1), __v2di); } /// Sign-extends each of the lower four 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 32-bit values and returns them in /// a 128-bit vector of [4 x i32]. The upper four elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVSXWD / PMOVSXWD instruction. /// /// \param __V /// A 128-bit vector of [8 x i16]. The lower four 16-bit elements are /// sign-extended to 32-bit values. /// \returns A 128-bit vector of [4 x i32] containing the sign-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi16_epi32(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1, 2, 3), __v4si); } /// Sign-extends each of the lower two 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper six elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVSXWQ / PMOVSXWQ instruction. /// /// \param __V /// A 128-bit vector of [8 x i16]. The lower two 16-bit elements are /// sign-extended to 64-bit values. /// \returns A 128-bit vector of [2 x i64] containing the sign-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi16_epi64(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v8hi)__V, (__v8hi)__V, 0, 1), __v2di); } /// Sign-extends each of the lower two 32-bit integer elements of a /// 128-bit integer vector of [4 x i32] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper two elements of the input vector /// are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVSXDQ / PMOVSXDQ instruction. /// /// \param __V /// A 128-bit vector of [4 x i32]. The lower two 32-bit elements are /// sign-extended to 64-bit values. /// \returns A 128-bit vector of [2 x i64] containing the sign-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepi32_epi64(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v4si)__V, (__v4si)__V, 0, 1), __v2di); } /* SSE4 Packed Integer Zero-Extension. */ /// Zero-extends each of the lower eight 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 16-bit values and returns them in a /// 128-bit vector of [8 x i16]. The upper eight elements of the input vector /// are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVZXBW / PMOVZXBW instruction. /// /// \param __V /// A 128-bit vector of [16 x i8]. The lower eight 8-bit elements are /// zero-extended to 16-bit values. /// \returns A 128-bit vector of [8 x i16] containing the zero-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi16(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3, 4, 5, 6, 7), __v8hi); } /// Zero-extends each of the lower four 8-bit integer elements of a /// 128-bit vector of [16 x i8] to 32-bit values and returns them in a /// 128-bit vector of [4 x i32]. The upper twelve elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVZXBD / PMOVZXBD instruction. /// /// \param __V /// A 128-bit vector of [16 x i8]. The lower four 8-bit elements are /// zero-extended to 32-bit values. /// \returns A 128-bit vector of [4 x i32] containing the zero-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi32(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1, 2, 3), __v4si); } /// Zero-extends each of the lower two 8-bit integer elements of a /// 128-bit integer vector of [16 x i8] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper fourteen elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVZXBQ / PMOVZXBQ instruction. /// /// \param __V /// A 128-bit vector of [16 x i8]. The lower two 8-bit elements are /// zero-extended to 64-bit values. /// \returns A 128-bit vector of [2 x i64] containing the zero-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu8_epi64(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v16qu)__V, (__v16qu)__V, 0, 1), __v2di); } /// Zero-extends each of the lower four 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 32-bit values and returns them in /// a 128-bit vector of [4 x i32]. The upper four elements of the input /// vector are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVZXWD / PMOVZXWD instruction. /// /// \param __V /// A 128-bit vector of [8 x i16]. The lower four 16-bit elements are /// zero-extended to 32-bit values. /// \returns A 128-bit vector of [4 x i32] containing the zero-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu16_epi32(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1, 2, 3), __v4si); } /// Zero-extends each of the lower two 16-bit integer elements of a /// 128-bit integer vector of [8 x i16] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper six elements of the input vector /// are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVZXWQ / PMOVZXWQ instruction. /// /// \param __V /// A 128-bit vector of [8 x i16]. The lower two 16-bit elements are /// zero-extended to 64-bit values. /// \returns A 128-bit vector of [2 x i64] containing the zero-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu16_epi64(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v8hu)__V, (__v8hu)__V, 0, 1), __v2di); } /// Zero-extends each of the lower two 32-bit integer elements of a /// 128-bit integer vector of [4 x i32] to 64-bit values and returns them in /// a 128-bit vector of [2 x i64]. The upper two elements of the input vector /// are unused. /// /// \headerfile /// /// This intrinsic corresponds to the VPMOVZXDQ / PMOVZXDQ instruction. /// /// \param __V /// A 128-bit vector of [4 x i32]. The lower two 32-bit elements are /// zero-extended to 64-bit values. /// \returns A 128-bit vector of [2 x i64] containing the zero-extended values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cvtepu32_epi64(__m128i __V) { return (__m128i) __builtin_convertvector( __builtin_shufflevector((__v4su)__V, (__v4su)__V, 0, 1), __v2di); } /* SSE4 Pack with Unsigned Saturation. */ /// Converts, with saturation, 32-bit signed integers from both 128-bit integer /// vector operands into 16-bit unsigned integers, and returns the packed /// result. /// /// Values greater than 0xFFFF are saturated to 0xFFFF. Values less than /// 0x0000 are saturated to 0x0000. /// /// \headerfile /// /// This intrinsic corresponds to the VPACKUSDW / PACKUSDW instruction. /// /// \param __V1 /// A 128-bit vector of [4 x i32]. The converted [4 x i16] values are /// written to the lower 64 bits of the result. /// \param __V2 /// A 128-bit vector of [4 x i32]. The converted [4 x i16] values are /// written to the higher 64 bits of the result. /// \returns A 128-bit vector of [8 x i16] containing the converted values. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_packus_epi32(__m128i __V1, __m128i __V2) { return (__m128i)__builtin_ia32_packusdw128((__v4si)__V1, (__v4si)__V2); } /* SSE4 Multiple Packed Sums of Absolute Difference. */ /// Subtracts 8-bit unsigned integer values and computes the absolute /// values of the differences to the corresponding bits in the destination. /// Then sums of the absolute differences are returned according to the bit /// fields in the immediate operand. /// /// \headerfile /// /// \code /// __m128i _mm_mpsadbw_epu8(__m128i X, __m128i Y, const int M); /// \endcode /// /// This intrinsic corresponds to the VMPSADBW / MPSADBW instruction. /// /// \param X /// A 128-bit vector of [16 x i8]. /// \param Y /// A 128-bit vector of [16 x i8]. /// \param M /// An 8-bit immediate operand specifying how the absolute differences are to /// be calculated, according to the following algorithm: /// \code /// // M2 represents bit 2 of the immediate operand /// // M10 represents bits [1:0] of the immediate operand /// i = M2 * 4; /// j = M10 * 4; /// for (k = 0; k < 8; k = k + 1) { /// d0 = abs(X[i + k + 0] - Y[j + 0]); /// d1 = abs(X[i + k + 1] - Y[j + 1]); /// d2 = abs(X[i + k + 2] - Y[j + 2]); /// d3 = abs(X[i + k + 3] - Y[j + 3]); /// r[k] = d0 + d1 + d2 + d3; /// } /// \endcode /// \returns A 128-bit integer vector containing the sums of the sets of /// absolute differences between both operands. #define _mm_mpsadbw_epu8(X, Y, M) \ ((__m128i)__builtin_ia32_mpsadbw128((__v16qi)(__m128i)(X), \ (__v16qi)(__m128i)(Y), (M))) /// Finds the minimum unsigned 16-bit element in the input 128-bit /// vector of [8 x u16] and returns it and along with its index. /// /// \headerfile /// /// This intrinsic corresponds to the VPHMINPOSUW / PHMINPOSUW /// instruction. /// /// \param __V /// A 128-bit vector of [8 x u16]. /// \returns A 128-bit value where bits [15:0] contain the minimum value found /// in parameter \a __V, bits [18:16] contain the index of the minimum value /// and the remaining bits are set to 0. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_minpos_epu16(__m128i __V) { return (__m128i)__builtin_ia32_phminposuw128((__v8hi)__V); } /* Handle the sse4.2 definitions here. */ /* These definitions are normally in nmmintrin.h, but gcc puts them in here so we'll do the same. */ #undef __DEFAULT_FN_ATTRS #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("sse4.2"))) /* These specify the type of data that we're comparing. */ #define _SIDD_UBYTE_OPS 0x00 #define _SIDD_UWORD_OPS 0x01 #define _SIDD_SBYTE_OPS 0x02 #define _SIDD_SWORD_OPS 0x03 /* These specify the type of comparison operation. */ #define _SIDD_CMP_EQUAL_ANY 0x00 #define _SIDD_CMP_RANGES 0x04 #define _SIDD_CMP_EQUAL_EACH 0x08 #define _SIDD_CMP_EQUAL_ORDERED 0x0c /* These macros specify the polarity of the operation. */ #define _SIDD_POSITIVE_POLARITY 0x00 #define _SIDD_NEGATIVE_POLARITY 0x10 #define _SIDD_MASKED_POSITIVE_POLARITY 0x20 #define _SIDD_MASKED_NEGATIVE_POLARITY 0x30 /* These macros are used in _mm_cmpXstri() to specify the return. */ #define _SIDD_LEAST_SIGNIFICANT 0x00 #define _SIDD_MOST_SIGNIFICANT 0x40 /* These macros are used in _mm_cmpXstri() to specify the return. */ #define _SIDD_BIT_MASK 0x00 #define _SIDD_UNIT_MASK 0x40 /* SSE4.2 Packed Comparison Intrinsics. */ /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns a 128-bit integer vector representing the result /// mask of the comparison. /// /// \headerfile /// /// \code /// __m128i _mm_cmpistrm(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRM / PCMPISTRM /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words, the type of comparison to perform, and the format of the return /// value. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// Bit [6]: Determines whether the result is zero-extended or expanded to 16 /// bytes. \n /// 0: The result is zero-extended to 16 bytes. \n /// 1: The result is expanded to 16 bytes (this expansion is performed by /// repeating each bit 8 or 16 times). /// \returns Returns a 128-bit integer vector representing the result mask of /// the comparison. #define _mm_cmpistrm(A, B, M) \ ((__m128i)__builtin_ia32_pcmpistrm128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns an integer representing the result index of the /// comparison. /// /// \headerfile /// /// \code /// int _mm_cmpistri(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words, the type of comparison to perform, and the format of the return /// value. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// Bit [6]: Determines whether the index of the lowest set bit or the /// highest set bit is returned. \n /// 0: The index of the least significant set bit. \n /// 1: The index of the most significant set bit. \n /// \returns Returns an integer representing the result index of the comparison. #define _mm_cmpistri(A, B, M) \ ((int)__builtin_ia32_pcmpistri128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns a 128-bit integer vector representing the result /// mask of the comparison. /// /// \headerfile /// /// \code /// __m128i _mm_cmpestrm(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRM / PCMPESTRM /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words, the type of comparison to perform, and the format of the return /// value. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// Bit [6]: Determines whether the result is zero-extended or expanded to 16 /// bytes. \n /// 0: The result is zero-extended to 16 bytes. \n /// 1: The result is expanded to 16 bytes (this expansion is performed by /// repeating each bit 8 or 16 times). \n /// \returns Returns a 128-bit integer vector representing the result mask of /// the comparison. #define _mm_cmpestrm(A, LA, B, LB, M) \ ((__m128i)__builtin_ia32_pcmpestrm128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns an integer representing the result index of the /// comparison. /// /// \headerfile /// /// \code /// int _mm_cmpestri(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words, the type of comparison to perform, and the format of the return /// value. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// Bit [6]: Determines whether the index of the lowest set bit or the /// highest set bit is returned. \n /// 0: The index of the least significant set bit. \n /// 1: The index of the most significant set bit. \n /// \returns Returns an integer representing the result index of the comparison. #define _mm_cmpestri(A, LA, B, LB, M) \ ((int)__builtin_ia32_pcmpestri128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /* SSE4.2 Packed Comparison Intrinsics and EFlag Reading. */ /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the bit mask is zero and the length of the /// string in \a B is the maximum, otherwise, returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpistra(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// \returns Returns 1 if the bit mask is zero and the length of the string in /// \a B is the maximum; otherwise, returns 0. #define _mm_cmpistra(A, B, M) \ ((int)__builtin_ia32_pcmpistria128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the bit mask is non-zero, otherwise, returns /// 0. /// /// \headerfile /// /// \code /// int _mm_cmpistrc(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. /// \returns Returns 1 if the bit mask is non-zero, otherwise, returns 0. #define _mm_cmpistrc(A, B, M) \ ((int)__builtin_ia32_pcmpistric128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns bit 0 of the resulting bit mask. /// /// \headerfile /// /// \code /// int _mm_cmpistro(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// \returns Returns bit 0 of the resulting bit mask. #define _mm_cmpistro(A, B, M) \ ((int)__builtin_ia32_pcmpistrio128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a A is less than /// the maximum, otherwise, returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpistrs(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// \returns Returns 1 if the length of the string in \a A is less than the /// maximum, otherwise, returns 0. #define _mm_cmpistrs(A, B, M) \ ((int)__builtin_ia32_pcmpistris128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with implicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a B is less than /// the maximum, otherwise, returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpistrz(__m128i A, __m128i B, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPISTRI / PCMPISTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. /// \returns Returns 1 if the length of the string in \a B is less than the /// maximum, otherwise, returns 0. #define _mm_cmpistrz(A, B, M) \ ((int)__builtin_ia32_pcmpistriz128((__v16qi)(__m128i)(A), \ (__v16qi)(__m128i)(B), (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the bit mask is zero and the length of the /// string in \a B is the maximum, otherwise, returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpestra(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. /// \returns Returns 1 if the bit mask is zero and the length of the string in /// \a B is the maximum, otherwise, returns 0. #define _mm_cmpestra(A, LA, B, LB, M) \ ((int)__builtin_ia32_pcmpestria128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the resulting mask is non-zero, otherwise, /// returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpestrc(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// \returns Returns 1 if the resulting mask is non-zero, otherwise, returns 0. #define _mm_cmpestrc(A, LA, B, LB, M) \ ((int)__builtin_ia32_pcmpestric128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns bit 0 of the resulting bit mask. /// /// \headerfile /// /// \code /// int _mm_cmpestro(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. /// \returns Returns bit 0 of the resulting bit mask. #define _mm_cmpestro(A, LA, B, LB, M) \ ((int)__builtin_ia32_pcmpestrio128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a A is less than /// the maximum, otherwise, returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpestrs(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRI / PCMPESTRI /// instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement in the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. \n /// \returns Returns 1 if the length of the string in \a A is less than the /// maximum, otherwise, returns 0. #define _mm_cmpestrs(A, LA, B, LB, M) \ ((int)__builtin_ia32_pcmpestris128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /// Uses the immediate operand \a M to perform a comparison of string /// data with explicitly defined lengths that is contained in source operands /// \a A and \a B. Returns 1 if the length of the string in \a B is less than /// the maximum, otherwise, returns 0. /// /// \headerfile /// /// \code /// int _mm_cmpestrz(__m128i A, int LA, __m128i B, int LB, const int M); /// \endcode /// /// This intrinsic corresponds to the VPCMPESTRI instruction. /// /// \param A /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LA /// An integer that specifies the length of the string in \a A. /// \param B /// A 128-bit integer vector containing one of the source operands to be /// compared. /// \param LB /// An integer that specifies the length of the string in \a B. /// \param M /// An 8-bit immediate operand specifying whether the characters are bytes or /// words and the type of comparison to perform. \n /// Bits [1:0]: Determine source data format. \n /// 00: 16 unsigned bytes \n /// 01: 8 unsigned words \n /// 10: 16 signed bytes \n /// 11: 8 signed words \n /// Bits [3:2]: Determine comparison type and aggregation method. \n /// 00: Subset: Each character in \a B is compared for equality with all /// the characters in \a A. \n /// 01: Ranges: Each character in \a B is compared to \a A. The comparison /// basis is greater than or equal for even-indexed elements in \a A, /// and less than or equal for odd-indexed elements in \a A. \n /// 10: Match: Compare each pair of corresponding characters in \a A and /// \a B for equality. \n /// 11: Substring: Search \a B for substring matches of \a A. \n /// Bits [5:4]: Determine whether to perform a one's complement on the bit /// mask of the comparison results. \n /// 00: No effect. \n /// 01: Negate the bit mask. \n /// 10: No effect. \n /// 11: Negate the bit mask only for bits with an index less than or equal /// to the size of \a A or \a B. /// \returns Returns 1 if the length of the string in \a B is less than the /// maximum, otherwise, returns 0. #define _mm_cmpestrz(A, LA, B, LB, M) \ ((int)__builtin_ia32_pcmpestriz128((__v16qi)(__m128i)(A), (int)(LA), \ (__v16qi)(__m128i)(B), (int)(LB), \ (int)(M))) /* SSE4.2 Compare Packed Data -- Greater Than. */ /// Compares each of the corresponding 64-bit values of the 128-bit /// integer vectors to determine if the values in the first operand are /// greater than those in the second operand. /// /// Each comparison returns 0x0 for false, 0xFFFFFFFFFFFFFFFF for true. /// /// \headerfile /// /// This intrinsic corresponds to the VPCMPGTQ / PCMPGTQ instruction. /// /// \param __V1 /// A 128-bit integer vector. /// \param __V2 /// A 128-bit integer vector. /// \returns A 128-bit integer vector containing the comparison results. static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpgt_epi64(__m128i __V1, __m128i __V2) { return (__m128i)((__v2di)__V1 > (__v2di)__V2); } #undef __DEFAULT_FN_ATTRS #if 0 /* expanded by -frewrite-includes */ #include #endif /* expanded by -frewrite-includes */ # 2330 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 # 2331 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 #if defined(__CLANG_REWRITTEN_INCLUDES) || defined(__CLANG_REWRITTEN_SYSTEM_INCLUDES) /* crc32intrin.h expanded by -frewrite-includes */ #include #else /* crc32intrin.h expanded by -frewrite-includes */ # 2332 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 # 1 "/home/marcus/llvm20/lib/clang/20/include/crc32intrin.h" 1 3 /*===---- crc32intrin.h - SSE4.2 Accumulate CRC32 intrinsics ---------------=== * * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. * See https://llvm.org/LICENSE.txt for license information. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception * *===-----------------------------------------------------------------------=== */ #ifndef __CRC32INTRIN_H #define __CRC32INTRIN_H #define __DEFAULT_FN_ATTRS \ __attribute__((__always_inline__, __nodebug__, __target__("crc32"))) /// Adds the unsigned integer operand to the CRC-32C checksum of the /// unsigned char operand. /// /// \headerfile /// /// This intrinsic corresponds to the CRC32B instruction. /// /// \param __C /// An unsigned integer operand to add to the CRC-32C checksum of operand /// \a __D. /// \param __D /// An unsigned 8-bit integer operand used to compute the CRC-32C checksum. /// \returns The result of adding operand \a __C to the CRC-32C checksum of /// operand \a __D. static __inline__ unsigned int __DEFAULT_FN_ATTRS _mm_crc32_u8(unsigned int __C, unsigned char __D) { return __builtin_ia32_crc32qi(__C, __D); } /// Adds the unsigned integer operand to the CRC-32C checksum of the /// unsigned short operand. /// /// \headerfile /// /// This intrinsic corresponds to the CRC32W instruction. /// /// \param __C /// An unsigned integer operand to add to the CRC-32C checksum of operand /// \a __D. /// \param __D /// An unsigned 16-bit integer operand used to compute the CRC-32C checksum. /// \returns The result of adding operand \a __C to the CRC-32C checksum of /// operand \a __D. static __inline__ unsigned int __DEFAULT_FN_ATTRS _mm_crc32_u16(unsigned int __C, unsigned short __D) { return __builtin_ia32_crc32hi(__C, __D); } /// Adds the first unsigned integer operand to the CRC-32C checksum of /// the second unsigned integer operand. /// /// \headerfile /// /// This intrinsic corresponds to the CRC32L instruction. /// /// \param __C /// An unsigned integer operand to add to the CRC-32C checksum of operand /// \a __D. /// \param __D /// An unsigned 32-bit integer operand used to compute the CRC-32C checksum. /// \returns The result of adding operand \a __C to the CRC-32C checksum of /// operand \a __D. static __inline__ unsigned int __DEFAULT_FN_ATTRS _mm_crc32_u32(unsigned int __C, unsigned int __D) { return __builtin_ia32_crc32si(__C, __D); } #ifdef __x86_64__ /// Adds the unsigned integer operand to the CRC-32C checksum of the /// unsigned 64-bit integer operand. /// /// \headerfile /// /// This intrinsic corresponds to the CRC32Q instruction. /// /// \param __C /// An unsigned integer operand to add to the CRC-32C checksum of operand /// \a __D. /// \param __D /// An unsigned 64-bit integer operand used to compute the CRC-32C checksum. /// \returns The result of adding operand \a __C to the CRC-32C checksum of /// operand \a __D. static __inline__ unsigned long long __DEFAULT_FN_ATTRS _mm_crc32_u64(unsigned long long __C, unsigned long long __D) { return __builtin_ia32_crc32di(__C, __D); } #endif /* __x86_64__ */ # 97 "/home/marcus/llvm20/lib/clang/20/include/crc32intrin.h" 3 #undef __DEFAULT_FN_ATTRS #endif /* __CRC32INTRIN_H */ # 101 "/home/marcus/llvm20/lib/clang/20/include/crc32intrin.h" 3 #endif /* crc32intrin.h expanded by -frewrite-includes */ # 2333 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 2 3 #endif /* __SMMINTRIN_H */ # 2335 "/home/marcus/llvm20/lib/clang/20/include/smmintrin.h" 3 #endif /* smmintrin.h expanded by -frewrite-includes */ # 38 "../mesa/src/util/rounding.h" 2 #endif # 39 "../mesa/src/util/rounding.h" /* The C standard library has functions round()/rint()/nearbyint() that round * their arguments according to the rounding mode set in the floating-point * control register. While there are trunc()/ceil()/floor() functions that do * a specific operation without modifying the rounding mode, there is no * roundeven() in any version of C. * * Technical Specification 18661 (ISO/IEC TS 18661-1:2014) adds roundeven(), * but it's unfortunately not implemented by glibc. * * This implementation differs in that it does not raise the inexact exception. * * We use rint() to implement these functions, with the assumption that the * floating-point rounding mode has not been changed from the default Round * to Nearest. */ /** * \brief Rounds \c x to the nearest integer, with ties to the even integer. */ static inline float _mesa_roundevenf(float x) { #ifdef __SSE4_1__ float ret; __m128 m = _mm_load_ss(&x); m = _mm_round_ss(m, m, _MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC); _mm_store_ss(&ret, m); return ret; #else # 69 "../mesa/src/util/rounding.h" return rintf(x); #endif # 71 "../mesa/src/util/rounding.h" } /** * \brief Rounds \c x to the nearest integer, with ties to the even integer. */ static inline double _mesa_roundeven(double x) { #ifdef __SSE4_1__ double ret; __m128d m = _mm_load_sd(&x); m = _mm_round_sd(m, m, _MM_FROUND_CUR_DIRECTION | _MM_FROUND_NO_EXC); _mm_store_sd(&ret, m); return ret; #else # 86 "../mesa/src/util/rounding.h" return rint(x); #endif # 88 "../mesa/src/util/rounding.h" } /** * \brief Rounds \c x to the nearest integer, with ties to the even integer, * and returns the value as a long int. */ static inline long _mesa_lroundevenf(float x) { #if 0 /* disabled by -frewrite-includes */ #if defined(__SSE__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) || (defined(_M_X64) && !defined(_M_ARM64EC)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 98 "../mesa/src/util/rounding.h" #if 0 /* disabled by -frewrite-includes */ #if LONG_MAX == INT64_MAX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 99 "../mesa/src/util/rounding.h" return _mm_cvtss_si64(_mm_load_ss(&x)); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif LONG_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 101 "../mesa/src/util/rounding.h" return _mm_cvtss_si32(_mm_load_ss(&x)); #else # 103 "../mesa/src/util/rounding.h" #error "Unsupported long size" #endif # 105 "../mesa/src/util/rounding.h" #else # 106 "../mesa/src/util/rounding.h" return lrintf(x); #endif # 108 "../mesa/src/util/rounding.h" } /** * \brief Rounds \c x to the nearest integer, with ties to the even integer, * and returns the value as a long int. */ static inline long _mesa_lroundeven(double x) { #if 0 /* disabled by -frewrite-includes */ #if defined(__SSE2__) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || (defined(_M_X64) && !defined(_M_ARM64EC)) #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 118 "../mesa/src/util/rounding.h" #if 0 /* disabled by -frewrite-includes */ #if LONG_MAX == INT64_MAX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 119 "../mesa/src/util/rounding.h" return _mm_cvtsd_si64(_mm_load_sd(&x)); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif LONG_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 121 "../mesa/src/util/rounding.h" return _mm_cvtsd_si32(_mm_load_sd(&x)); #else # 123 "../mesa/src/util/rounding.h" #error "Unsupported long size" #endif # 125 "../mesa/src/util/rounding.h" #else # 126 "../mesa/src/util/rounding.h" return lrint(x); #endif # 128 "../mesa/src/util/rounding.h" } /** * \brief Rounds \c x to the nearest integer, with ties to the even integer, * and returns the value as an int64_t. */ static inline int64_t _mesa_i64roundevenf(float x) { #if 0 /* disabled by -frewrite-includes */ #if LONG_MAX == INT64_MAX #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 138 "../mesa/src/util/rounding.h" return _mesa_lroundevenf(x); #if 0 /* disabled by -frewrite-includes */ #if 0 #elif LONG_MAX == INT32_MAX #endif #endif /* disabled by -frewrite-includes */ #elif 0 /* evaluated by -frewrite-includes */ # 140 "../mesa/src/util/rounding.h" return llrintf(x); #else # 142 "../mesa/src/util/rounding.h" #error "Unsupported long size" #endif # 144 "../mesa/src/util/rounding.h" } #endif # 147 "../mesa/src/util/rounding.h" #endif /* rounding.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/macros.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "util/compiler.h" #endif /* expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/macros.h" # 38 "../mesa/src/mesa/main/macros.h" #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 38 "../mesa/src/mesa/main/macros.h" # 39 "../mesa/src/mesa/main/macros.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* mesa_private.h expanded by -frewrite-includes */ #include "mesa_private.h" #else /* mesa_private.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/main/macros.h" # 1 "../mesa/src/mesa/main/mesa_private.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /** * \file mesa_private.h * Contains mesa internal values * */ #ifndef MESA_PRIVATE_H #define MESA_PRIVATE_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/mesa_private.h" # 35 "../mesa/src/mesa/main/mesa_private.h" #ifdef __cplusplus extern "C" { #endif # 39 "../mesa/src/mesa/main/mesa_private.h" /** * Sometimes we treat floats as ints. On x86 systems, moving a float * 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. * The following union typedef is used to solve that. */ typedef union { float f; int i; unsigned u; } fi_type; #ifdef __cplusplus } #endif # 55 "../mesa/src/mesa/main/mesa_private.h" #endif /* MESA_PRIVATE_H */ # 57 "../mesa/src/mesa/main/mesa_private.h" #endif /* mesa_private.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/macros.h" 2 /** * \name Integer / float conversion for colors, normals, etc. */ /*@{*/ /** Convert GLubyte in [0,255] to GLfloat in [0.0,1.0] */ extern GLfloat _mesa_ubyte_to_float_color_tab[256]; #define UBYTE_TO_FLOAT(u) _mesa_ubyte_to_float_color_tab[(unsigned int)(u)] /** Convert GLfloat in [0.0,1.0] to GLubyte in [0,255] */ #define FLOAT_TO_UBYTE(X) ((GLubyte) (GLint) ((X) * 255.0F)) /** Convert GLbyte in [-128,127] to GLfloat in [-1.0,1.0] */ #define BYTE_TO_FLOAT(B) ((2.0F * (B) + 1.0F) * (1.0F/255.0F)) /** Convert GLfloat in [-1.0,1.0] to GLbyte in [-128,127] */ #define FLOAT_TO_BYTE(X) ( (((GLint) (255.0F * (X))) - 1) / 2 ) /** Convert GLbyte to GLfloat while preserving zero */ #define BYTE_TO_FLOATZ(B) ((B) == 0 ? 0.0F : BYTE_TO_FLOAT(B)) /** Convert GLbyte in [-128,127] to GLfloat in [-1.0,1.0], texture/fb data */ #define BYTE_TO_FLOAT_TEX(B) ((B) == -128 ? -1.0F : (B) * (1.0F/127.0F)) /** Convert GLfloat in [-1.0,1.0] to GLbyte in [-128,127], texture/fb data */ #define FLOAT_TO_BYTE_TEX(X) CLAMP( (GLint) (127.0F * (X)), -128, 127 ) /** Convert GLushort in [0,65535] to GLfloat in [0.0,1.0] */ #define USHORT_TO_FLOAT(S) ((GLfloat) (S) * (1.0F / 65535.0F)) /** Convert GLfloat in [0.0,1.0] to GLushort in [0, 65535] */ #define FLOAT_TO_USHORT(X) ((GLuint) ((X) * 65535.0F)) /** Convert GLshort in [-32768,32767] to GLfloat in [-1.0,1.0] */ #define SHORT_TO_FLOAT(S) ((2.0F * (S) + 1.0F) * (1.0F/65535.0F)) /** Convert GLfloat in [-1.0,1.0] to GLshort in [-32768,32767] */ #define FLOAT_TO_SHORT(X) ( (((GLint) (65535.0F * (X))) - 1) / 2 ) /** Convert GLshort to GLfloat while preserving zero */ #define SHORT_TO_FLOATZ(S) ((S) == 0 ? 0.0F : SHORT_TO_FLOAT(S)) /** Convert GLshort in [-32768,32767] to GLfloat in [-1.0,1.0], texture/fb data */ #define SHORT_TO_FLOAT_TEX(S) ((S) == -32768 ? -1.0F : (S) * (1.0F/32767.0F)) /** Convert GLfloat in [-1.0,1.0] to GLshort in [-32768,32767], texture/fb data */ #define FLOAT_TO_SHORT_TEX(X) ( (GLint) (32767.0F * (X)) ) /** Convert GLuint in [0,4294967295] to GLfloat in [0.0,1.0] */ #define UINT_TO_FLOAT(U) ((GLfloat) ((U) * (1.0F / 4294967295.0))) /** Convert GLfloat in [0.0,1.0] to GLuint in [0,4294967295] */ #define FLOAT_TO_UINT(X) ((GLuint) ((X) * 4294967295.0)) /** Convert GLint in [-2147483648,2147483647] to GLfloat in [-1.0,1.0] */ #define INT_TO_FLOAT(I) ((GLfloat) ((2.0F * (I) + 1.0F) * (1.0F/4294967294.0))) /** Convert GLfloat in [-1.0,1.0] to GLint in [-2147483648,2147483647] */ /* causes overflow: #define FLOAT_TO_INT(X) ( (((GLint) (4294967294.0 * (X))) - 1) / 2 ) */ /* a close approximation: */ #define FLOAT_TO_INT(X) ( (GLint) (2147483647.0 * (X)) ) /** Convert GLfloat in [-1.0,1.0] to GLint64 in [-(1<<63),(1 << 63) -1] */ #define FLOAT_TO_INT64(X) ( (GLint64) (9223372036854775807.0 * (double)(X)) ) /** Convert GLint in [-2147483648,2147483647] to GLfloat in [-1.0,1.0], texture/fb data */ #define INT_TO_FLOAT_TEX(I) ((I) == -2147483648 ? -1.0F : (I) * (1.0F/2147483647.0)) /** Convert GLfloat in [-1.0,1.0] to GLint in [-2147483648,2147483647], texture/fb data */ #define FLOAT_TO_INT_TEX(X) ( (GLint) (2147483647.0 * (X)) ) #define BYTE_TO_UBYTE(b) ((GLubyte) ((b) < 0 ? 0 : (GLubyte) (b))) #define SHORT_TO_UBYTE(s) ((GLubyte) ((s) < 0 ? 0 : (GLubyte) ((s) >> 7))) #define USHORT_TO_UBYTE(s) ((GLubyte) ((s) >> 8)) #define INT_TO_UBYTE(i) ((GLubyte) ((i) < 0 ? 0 : (GLubyte) ((i) >> 23))) #define UINT_TO_UBYTE(i) ((GLubyte) ((i) >> 24)) #define BYTE_TO_USHORT(b) ((b) < 0 ? 0 : ((GLushort) (((b) * 65535) / 255))) #define UBYTE_TO_USHORT(b) (((GLushort) (b) << 8) | (GLushort) (b)) #define SHORT_TO_USHORT(s) ((s) < 0 ? 0 : ((GLushort) (((s) * 65535 / 32767)))) #define INT_TO_USHORT(i) ((i) < 0 ? 0 : ((GLushort) ((i) >> 15))) #define UINT_TO_USHORT(i) ((i) < 0 ? 0 : ((GLushort) ((i) >> 16))) #define UNCLAMPED_FLOAT_TO_USHORT(us, f) \ us = ( (GLushort) _mesa_lroundevenf( CLAMP((f), 0.0F, 1.0F) * 65535.0F) ) #define CLAMPED_FLOAT_TO_USHORT(us, f) \ us = ( (GLushort) _mesa_lroundevenf( (f) * 65535.0F) ) #define UNCLAMPED_FLOAT_TO_SHORT(s, f) \ s = ( (GLshort) _mesa_lroundevenf( CLAMP((f), -1.0F, 1.0F) * 32767.0F) ) /*** *** UNCLAMPED_FLOAT_TO_UBYTE: clamp float to [0,1] and map to ubyte in [0,255] *** CLAMPED_FLOAT_TO_UBYTE: map float known to be in [0,1] to ubyte in [0,255] ***/ #if 0 /* disabled by -frewrite-includes */ #if !MESA_DEBUG #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 149 "../mesa/src/mesa/main/macros.h" /* This function/macro is sensitive to precision. Test very carefully * if you change it! */ #define UNCLAMPED_FLOAT_TO_UBYTE(UB, FLT) \ do { \ fi_type __tmp; \ __tmp.f = (FLT); \ if (__tmp.i < 0) \ UB = (GLubyte) 0; \ else if (__tmp.i >= IEEE_ONE) \ UB = (GLubyte) 255; \ else { \ __tmp.f = __tmp.f * (255.0F/256.0F) + 32768.0F; \ UB = (GLubyte) __tmp.i; \ } \ } while (0) #define CLAMPED_FLOAT_TO_UBYTE(UB, FLT) \ do { \ fi_type __tmp; \ __tmp.f = (FLT) * (255.0F/256.0F) + 32768.0F; \ UB = (GLubyte) __tmp.i; \ } while (0) #else # 172 "../mesa/src/mesa/main/macros.h" #define UNCLAMPED_FLOAT_TO_UBYTE(ub, f) \ ub = ((GLubyte) _mesa_lroundevenf(CLAMP((f), 0.0F, 1.0F) * 255.0F)) #define CLAMPED_FLOAT_TO_UBYTE(ub, f) \ ub = ((GLubyte) _mesa_lroundevenf((f) * 255.0F)) #endif # 177 "../mesa/src/mesa/main/macros.h" static fi_type UINT_AS_UNION(GLuint u) { fi_type tmp; tmp.u = u; return tmp; } static inline fi_type INT_AS_UNION(GLint i) { fi_type tmp; tmp.i = i; return tmp; } static inline fi_type FLOAT_AS_UNION(GLfloat f) { fi_type tmp; tmp.f = f; return tmp; } static inline uint64_t DOUBLE_AS_UINT64(double d) { union { double d; uint64_t u64; } tmp; tmp.d = d; return tmp.u64; } static inline double UINT64_AS_DOUBLE(uint64_t u) { union { double d; uint64_t u64; } tmp; tmp.u64 = u; return tmp.d; } /* First sign-extend x, then return uint32_t. */ #define INT_AS_UINT(x) ((uint32_t)((int32_t)(x))) #define FLOAT_AS_UINT(x) (FLOAT_AS_UNION(x).u) /** * Convert a floating point value to an unsigned fixed point value. * * \param frac_bits The number of bits used to store the fractional part. */ static inline uint32_t U_FIXED(float value, uint32_t frac_bits) { value *= (1 << frac_bits); return value < 0.0f ? 0 : (uint32_t) value; } /** * Convert a floating point value to an signed fixed point value. * * \param frac_bits The number of bits used to store the fractional part. */ static inline int32_t S_FIXED(float value, uint32_t frac_bits) { return (int32_t) (value * (1 << frac_bits)); } /*@}*/ /** Stepping a GLfloat pointer by a byte stride */ #define STRIDE_F(p, i) (p = (GLfloat *)((GLubyte *)p + i)) /** Stepping a GLuint pointer by a byte stride */ #define STRIDE_UI(p, i) (p = (GLuint *)((GLubyte *)p + i)) /** Stepping a GLubyte[4] pointer by a byte stride */ #define STRIDE_4UB(p, i) (p = (GLubyte (*)[4])((GLubyte *)p + i)) /** Stepping a GLfloat[4] pointer by a byte stride */ #define STRIDE_4F(p, i) (p = (GLfloat (*)[4])((GLubyte *)p + i)) /** Stepping a \p t pointer by a byte stride */ #define STRIDE_T(p, t, i) (p = (t)((GLubyte *)p + i)) /**********************************************************************/ /** \name 4-element vector operations */ /*@{*/ /** Zero */ #define ZERO_4V( DST ) (DST)[0] = (DST)[1] = (DST)[2] = (DST)[3] = 0 /** Test for equality */ #define TEST_EQ_4V(a,b) ((a)[0] == (b)[0] && \ (a)[1] == (b)[1] && \ (a)[2] == (b)[2] && \ (a)[3] == (b)[3]) /** Test for equality (unsigned bytes) */ static inline GLboolean TEST_EQ_4UBV(const GLubyte a[4], const GLubyte b[4]) { #if 0 /* disabled by -frewrite-includes */ #if defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 278 "../mesa/src/mesa/main/macros.h" return *((const GLuint *) a) == *((const GLuint *) b); #else # 280 "../mesa/src/mesa/main/macros.h" return TEST_EQ_4V(a, b); #endif # 282 "../mesa/src/mesa/main/macros.h" } /** Copy a 4-element vector */ #define COPY_4V( DST, SRC ) \ do { \ (DST)[0] = (SRC)[0]; \ (DST)[1] = (SRC)[1]; \ (DST)[2] = (SRC)[2]; \ (DST)[3] = (SRC)[3]; \ } while (0) /** Copy a 4-element unsigned byte vector */ static inline void COPY_4UBV(GLubyte dst[4], const GLubyte src[4]) { #if 0 /* disabled by -frewrite-includes */ #if defined(__i386__) #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 299 "../mesa/src/mesa/main/macros.h" *((GLuint *) dst) = *((GLuint *) src); #else # 301 "../mesa/src/mesa/main/macros.h" /* The GLuint cast might fail if DST or SRC are not dword-aligned (RISC) */ COPY_4V(dst, src); #endif # 304 "../mesa/src/mesa/main/macros.h" } /** Copy \p SZ elements into a 4-element vector */ #define COPY_SZ_4V(DST, SZ, SRC) \ do { \ switch (SZ) { \ case 4: (DST)[3] = (SRC)[3]; \ FALLTHROUGH; \ case 3: (DST)[2] = (SRC)[2]; \ FALLTHROUGH; \ case 2: (DST)[1] = (SRC)[1]; \ FALLTHROUGH; \ case 1: (DST)[0] = (SRC)[0]; \ } \ } while(0) /** Copy \p SZ elements into a homegeneous (4-element) vector, giving * default values to the remaining */ #define COPY_CLEAN_4V(DST, SZ, SRC) \ do { \ ASSIGN_4V( DST, 0, 0, 0, 1 ); \ COPY_SZ_4V( DST, SZ, SRC ); \ } while (0) /** Subtraction */ #define SUB_4V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] - (SRCB)[0]; \ (DST)[1] = (SRCA)[1] - (SRCB)[1]; \ (DST)[2] = (SRCA)[2] - (SRCB)[2]; \ (DST)[3] = (SRCA)[3] - (SRCB)[3]; \ } while (0) /** Addition */ #define ADD_4V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] + (SRCB)[0]; \ (DST)[1] = (SRCA)[1] + (SRCB)[1]; \ (DST)[2] = (SRCA)[2] + (SRCB)[2]; \ (DST)[3] = (SRCA)[3] + (SRCB)[3]; \ } while (0) /** Element-wise multiplication */ #define SCALE_4V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] * (SRCB)[0]; \ (DST)[1] = (SRCA)[1] * (SRCB)[1]; \ (DST)[2] = (SRCA)[2] * (SRCB)[2]; \ (DST)[3] = (SRCA)[3] * (SRCB)[3]; \ } while (0) /** In-place addition */ #define ACC_4V( DST, SRC ) \ do { \ (DST)[0] += (SRC)[0]; \ (DST)[1] += (SRC)[1]; \ (DST)[2] += (SRC)[2]; \ (DST)[3] += (SRC)[3]; \ } while (0) /** Element-wise multiplication and addition */ #define ACC_SCALE_4V( DST, SRCA, SRCB ) \ do { \ (DST)[0] += (SRCA)[0] * (SRCB)[0]; \ (DST)[1] += (SRCA)[1] * (SRCB)[1]; \ (DST)[2] += (SRCA)[2] * (SRCB)[2]; \ (DST)[3] += (SRCA)[3] * (SRCB)[3]; \ } while (0) /** In-place scalar multiplication and addition */ #define ACC_SCALE_SCALAR_4V( DST, S, SRCB ) \ do { \ (DST)[0] += S * (SRCB)[0]; \ (DST)[1] += S * (SRCB)[1]; \ (DST)[2] += S * (SRCB)[2]; \ (DST)[3] += S * (SRCB)[3]; \ } while (0) /** Scalar multiplication */ #define SCALE_SCALAR_4V( DST, S, SRCB ) \ do { \ (DST)[0] = S * (SRCB)[0]; \ (DST)[1] = S * (SRCB)[1]; \ (DST)[2] = S * (SRCB)[2]; \ (DST)[3] = S * (SRCB)[3]; \ } while (0) /** In-place scalar multiplication */ #define SELF_SCALE_SCALAR_4V( DST, S ) \ do { \ (DST)[0] *= S; \ (DST)[1] *= S; \ (DST)[2] *= S; \ (DST)[3] *= S; \ } while (0) /*@}*/ /**********************************************************************/ /** \name 3-element vector operations*/ /*@{*/ /** Zero */ #define ZERO_3V( DST ) (DST)[0] = (DST)[1] = (DST)[2] = 0 /** Test for equality */ #define TEST_EQ_3V(a,b) \ ((a)[0] == (b)[0] && \ (a)[1] == (b)[1] && \ (a)[2] == (b)[2]) /** Copy a 3-element vector */ #define COPY_3V( DST, SRC ) \ do { \ (DST)[0] = (SRC)[0]; \ (DST)[1] = (SRC)[1]; \ (DST)[2] = (SRC)[2]; \ } while (0) /** Copy a 3-element vector with cast */ #define COPY_3V_CAST( DST, SRC, CAST ) \ do { \ (DST)[0] = (CAST)(SRC)[0]; \ (DST)[1] = (CAST)(SRC)[1]; \ (DST)[2] = (CAST)(SRC)[2]; \ } while (0) /** Copy a 3-element float vector */ #define COPY_3FV( DST, SRC ) \ do { \ const GLfloat *_tmp = (SRC); \ (DST)[0] = _tmp[0]; \ (DST)[1] = _tmp[1]; \ (DST)[2] = _tmp[2]; \ } while (0) /** Subtraction */ #define SUB_3V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] - (SRCB)[0]; \ (DST)[1] = (SRCA)[1] - (SRCB)[1]; \ (DST)[2] = (SRCA)[2] - (SRCB)[2]; \ } while (0) /** Addition */ #define ADD_3V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] + (SRCB)[0]; \ (DST)[1] = (SRCA)[1] + (SRCB)[1]; \ (DST)[2] = (SRCA)[2] + (SRCB)[2]; \ } while (0) /** In-place scalar multiplication */ #define SCALE_3V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] * (SRCB)[0]; \ (DST)[1] = (SRCA)[1] * (SRCB)[1]; \ (DST)[2] = (SRCA)[2] * (SRCB)[2]; \ } while (0) /** In-place element-wise multiplication */ #define SELF_SCALE_3V( DST, SRC ) \ do { \ (DST)[0] *= (SRC)[0]; \ (DST)[1] *= (SRC)[1]; \ (DST)[2] *= (SRC)[2]; \ } while (0) /** In-place addition */ #define ACC_3V( DST, SRC ) \ do { \ (DST)[0] += (SRC)[0]; \ (DST)[1] += (SRC)[1]; \ (DST)[2] += (SRC)[2]; \ } while (0) /** Element-wise multiplication and addition */ #define ACC_SCALE_3V( DST, SRCA, SRCB ) \ do { \ (DST)[0] += (SRCA)[0] * (SRCB)[0]; \ (DST)[1] += (SRCA)[1] * (SRCB)[1]; \ (DST)[2] += (SRCA)[2] * (SRCB)[2]; \ } while (0) /** Scalar multiplication */ #define SCALE_SCALAR_3V( DST, S, SRCB ) \ do { \ (DST)[0] = S * (SRCB)[0]; \ (DST)[1] = S * (SRCB)[1]; \ (DST)[2] = S * (SRCB)[2]; \ } while (0) /** In-place scalar multiplication and addition */ #define ACC_SCALE_SCALAR_3V( DST, S, SRCB ) \ do { \ (DST)[0] += S * (SRCB)[0]; \ (DST)[1] += S * (SRCB)[1]; \ (DST)[2] += S * (SRCB)[2]; \ } while (0) /** In-place scalar multiplication */ #define SELF_SCALE_SCALAR_3V( DST, S ) \ do { \ (DST)[0] *= S; \ (DST)[1] *= S; \ (DST)[2] *= S; \ } while (0) /** In-place scalar addition */ #define ACC_SCALAR_3V( DST, S ) \ do { \ (DST)[0] += S; \ (DST)[1] += S; \ (DST)[2] += S; \ } while (0) /** Assignment */ #define ASSIGN_3V( V, V0, V1, V2 ) \ do { \ V[0] = V0; \ V[1] = V1; \ V[2] = V2; \ } while(0) /*@}*/ /**********************************************************************/ /** \name 2-element vector operations*/ /*@{*/ /** Zero */ #define ZERO_2V( DST ) (DST)[0] = (DST)[1] = 0 /** Copy a 2-element vector */ #define COPY_2V( DST, SRC ) \ do { \ (DST)[0] = (SRC)[0]; \ (DST)[1] = (SRC)[1]; \ } while (0) /** Copy a 2-element vector with cast */ #define COPY_2V_CAST( DST, SRC, CAST ) \ do { \ (DST)[0] = (CAST)(SRC)[0]; \ (DST)[1] = (CAST)(SRC)[1]; \ } while (0) /** Copy a 2-element float vector */ #define COPY_2FV( DST, SRC ) \ do { \ const GLfloat *_tmp = (SRC); \ (DST)[0] = _tmp[0]; \ (DST)[1] = _tmp[1]; \ } while (0) /** Subtraction */ #define SUB_2V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] - (SRCB)[0]; \ (DST)[1] = (SRCA)[1] - (SRCB)[1]; \ } while (0) /** Addition */ #define ADD_2V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] + (SRCB)[0]; \ (DST)[1] = (SRCA)[1] + (SRCB)[1]; \ } while (0) /** In-place scalar multiplication */ #define SCALE_2V( DST, SRCA, SRCB ) \ do { \ (DST)[0] = (SRCA)[0] * (SRCB)[0]; \ (DST)[1] = (SRCA)[1] * (SRCB)[1]; \ } while (0) /** In-place addition */ #define ACC_2V( DST, SRC ) \ do { \ (DST)[0] += (SRC)[0]; \ (DST)[1] += (SRC)[1]; \ } while (0) /** Element-wise multiplication and addition */ #define ACC_SCALE_2V( DST, SRCA, SRCB ) \ do { \ (DST)[0] += (SRCA)[0] * (SRCB)[0]; \ (DST)[1] += (SRCA)[1] * (SRCB)[1]; \ } while (0) /** Scalar multiplication */ #define SCALE_SCALAR_2V( DST, S, SRCB ) \ do { \ (DST)[0] = S * (SRCB)[0]; \ (DST)[1] = S * (SRCB)[1]; \ } while (0) /** In-place scalar multiplication and addition */ #define ACC_SCALE_SCALAR_2V( DST, S, SRCB ) \ do { \ (DST)[0] += S * (SRCB)[0]; \ (DST)[1] += S * (SRCB)[1]; \ } while (0) /** In-place scalar multiplication */ #define SELF_SCALE_SCALAR_2V( DST, S ) \ do { \ (DST)[0] *= S; \ (DST)[1] *= S; \ } while (0) /** In-place scalar addition */ #define ACC_SCALAR_2V( DST, S ) \ do { \ (DST)[0] += S; \ (DST)[1] += S; \ } while (0) /** Assign scalers to short vectors */ #define ASSIGN_2V( V, V0, V1 ) \ do { \ V[0] = V0; \ V[1] = V1; \ } while(0) /*@}*/ /** Copy \p sz elements into a homegeneous (4-element) vector, giving * default values to the remaining components. * The default values are chosen based on \p type. */ static inline void COPY_CLEAN_4V_TYPE_AS_UNION(fi_type dst[4], int sz, const fi_type src[4], GLenum type) { switch (type) { case GL_FLOAT: ASSIGN_4V(dst, FLOAT_AS_UNION(0), FLOAT_AS_UNION(0), FLOAT_AS_UNION(0), FLOAT_AS_UNION(1)); break; case GL_INT: ASSIGN_4V(dst, INT_AS_UNION(0), INT_AS_UNION(0), INT_AS_UNION(0), INT_AS_UNION(1)); break; case GL_UNSIGNED_INT: ASSIGN_4V(dst, UINT_AS_UNION(0), UINT_AS_UNION(0), UINT_AS_UNION(0), UINT_AS_UNION(1)); break; default: ASSIGN_4V(dst, FLOAT_AS_UNION(0), FLOAT_AS_UNION(0), FLOAT_AS_UNION(0), FLOAT_AS_UNION(1)); /* silence warnings */ assert(!"Unexpected type in COPY_CLEAN_4V_TYPE_AS_UNION macro"); } COPY_SZ_4V(dst, sz, src); } /** \name Linear interpolation functions */ /*@{*/ static inline GLfloat LINTERP(GLfloat t, GLfloat out, GLfloat in) { return out + t * (in - out); } static inline void INTERP_3F(GLfloat t, GLfloat dst[3], const GLfloat out[3], const GLfloat in[3]) { dst[0] = LINTERP( t, out[0], in[0] ); dst[1] = LINTERP( t, out[1], in[1] ); dst[2] = LINTERP( t, out[2], in[2] ); } static inline void INTERP_4F(GLfloat t, GLfloat dst[4], const GLfloat out[4], const GLfloat in[4]) { dst[0] = LINTERP( t, out[0], in[0] ); dst[1] = LINTERP( t, out[1], in[1] ); dst[2] = LINTERP( t, out[2], in[2] ); dst[3] = LINTERP( t, out[3], in[3] ); } /*@}*/ /** Cross product of two 3-element vectors */ static inline void CROSS3(GLfloat n[3], const GLfloat u[3], const GLfloat v[3]) { n[0] = u[1] * v[2] - u[2] * v[1]; n[1] = u[2] * v[0] - u[0] * v[2]; n[2] = u[0] * v[1] - u[1] * v[0]; } /** Dot product of two 2-element vectors */ static inline GLfloat DOT2(const GLfloat a[2], const GLfloat b[2]) { return a[0] * b[0] + a[1] * b[1]; } static inline GLfloat DOT3(const GLfloat a[3], const GLfloat b[3]) { return a[0] * b[0] + a[1] * b[1] + a[2] * b[2]; } static inline GLfloat DOT4(const GLfloat a[4], const GLfloat b[4]) { return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]; } static inline GLfloat LEN_SQUARED_3FV(const GLfloat v[3]) { return DOT3(v, v); } static inline GLfloat LEN_SQUARED_2FV(const GLfloat v[2]) { return DOT2(v, v); } static inline GLfloat LEN_3FV(const GLfloat v[3]) { return sqrtf(LEN_SQUARED_3FV(v)); } static inline GLfloat LEN_2FV(const GLfloat v[2]) { return sqrtf(LEN_SQUARED_2FV(v)); } /* Normalize a 3-element vector to unit length. */ static inline void NORMALIZE_3FV(GLfloat v[3]) { GLfloat len = (GLfloat) LEN_SQUARED_3FV(v); if (len) { len = 1.0f / sqrtf(len); v[0] *= len; v[1] *= len; v[2] *= len; } } /** Test two floats have opposite signs */ static inline GLboolean DIFFERENT_SIGNS(GLfloat x, GLfloat y) { #ifdef _MSC_VER #pragma warning( push ) #pragma warning( disable : 6334 ) /* sizeof operator applied to an expression with an operator may yield unexpected results */ #endif # 770 "../mesa/src/mesa/main/macros.h" return signbit(x) != signbit(y); #ifdef _MSC_VER #pragma warning( pop ) #endif # 774 "../mesa/src/mesa/main/macros.h" } /** casts to silence warnings with some compilers */ #define ENUM_TO_INT(E) ((GLint)(E)) #define ENUM_TO_FLOAT(E) ((GLfloat)(GLint)(E)) #define ENUM_TO_DOUBLE(E) ((GLdouble)(GLint)(E)) #define ENUM_TO_BOOLEAN(E) ((E) ? GL_TRUE : GL_FALSE) /* Stringify */ #define STRINGIFY(x) #x /* * For GL_ARB_vertex_buffer_object we need to treat vertex array pointers * as offsets into buffer stores. Since the vertex array pointer and * buffer store pointer are both pointers and we need to add them, we use * this macro. * Both pointers/offsets are expressed in bytes. */ #define ADD_POINTERS(A, B) ( (GLubyte *) (A) + (uintptr_t) (B) ) #endif # 797 "../mesa/src/mesa/main/macros.h" #endif /* macros.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/vbo/vbo.h" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* vbo_attrib.h expanded by -frewrite-includes */ #include "vbo_attrib.h" #else /* vbo_attrib.h expanded by -frewrite-includes */ # 39 "../mesa/src/mesa/vbo/vbo.h" # 1 "../mesa/src/mesa/vbo/vbo_attrib.h" 1 /* Copyright (C) Intel Corp. 2006. All Rights Reserved. Intel funded Tungsten Graphics to develop this 3D driver. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **********************************************************************/ /* * Authors: * Keith Whitwell */ #ifndef VBO_ATTRIB_H #define VBO_ATTRIB_H /* * Note: The first 32 attributes match the VERT_ATTRIB_* definitions. * However, we have extra attributes for storing per-vertex glMaterial * values. The material attributes get shifted into the generic positions * at draw time. * * One reason we can't alias materials and generics here is display lists. * A display list might contain both generic attributes and material * attributes which are selected at draw time depending on whether we're * using fixed function or a shader. */ enum vbo_attrib { VBO_ATTRIB_POS, VBO_ATTRIB_NORMAL, VBO_ATTRIB_COLOR0, VBO_ATTRIB_COLOR1, VBO_ATTRIB_FOG, VBO_ATTRIB_COLOR_INDEX, VBO_ATTRIB_TEX0, VBO_ATTRIB_TEX1, VBO_ATTRIB_TEX2, VBO_ATTRIB_TEX3, VBO_ATTRIB_TEX4, VBO_ATTRIB_TEX5, VBO_ATTRIB_TEX6, VBO_ATTRIB_TEX7, VBO_ATTRIB_POINT_SIZE, VBO_ATTRIB_GENERIC0, /* Not used? */ VBO_ATTRIB_GENERIC1, VBO_ATTRIB_GENERIC2, VBO_ATTRIB_GENERIC3, VBO_ATTRIB_GENERIC4, VBO_ATTRIB_GENERIC5, VBO_ATTRIB_GENERIC6, VBO_ATTRIB_GENERIC7, VBO_ATTRIB_GENERIC8, VBO_ATTRIB_GENERIC9, VBO_ATTRIB_GENERIC10, VBO_ATTRIB_GENERIC11, VBO_ATTRIB_GENERIC12, VBO_ATTRIB_GENERIC13, VBO_ATTRIB_GENERIC14, VBO_ATTRIB_GENERIC15, VBO_ATTRIB_EDGEFLAG, /* XXX: in the vertex program inputs_read flag, we alias * materials and generics and use knowledge about the program * (whether it is a fixed-function emulation) to * differentiate. Here we must keep them apart instead. */ VBO_ATTRIB_MAT_FRONT_AMBIENT, VBO_ATTRIB_MAT_BACK_AMBIENT, VBO_ATTRIB_MAT_FRONT_DIFFUSE, VBO_ATTRIB_MAT_BACK_DIFFUSE, VBO_ATTRIB_MAT_FRONT_SPECULAR, VBO_ATTRIB_MAT_BACK_SPECULAR, VBO_ATTRIB_MAT_FRONT_EMISSION, VBO_ATTRIB_MAT_BACK_EMISSION, VBO_ATTRIB_MAT_FRONT_SHININESS, VBO_ATTRIB_MAT_BACK_SHININESS, VBO_ATTRIB_MAT_FRONT_INDEXES, VBO_ATTRIB_MAT_BACK_INDEXES, /* Offset into HW GL_SELECT result buffer. */ VBO_ATTRIB_SELECT_RESULT_OFFSET, VBO_ATTRIB_MAX }; #define VBO_ATTRIB_FIRST_MATERIAL VBO_ATTRIB_MAT_FRONT_AMBIENT #define VBO_ATTRIB_LAST_MATERIAL VBO_ATTRIB_MAT_BACK_INDEXES /** VBO_ATTRIB_POS .. VBO_ATTRIB_POINT_SIZE */ #define VBO_ATTRIBS_LEGACY (BITFIELD64_MASK(VBO_ATTRIB_GENERIC0) | \ BITFIELD64_BIT(VBO_ATTRIB_EDGEFLAG)) /** VBO_ATTRIB_MAT_FRONT_AMBIENT .. VBO_ATTRIB_MAT_BACK_INDEXES */ #define VBO_ATTRIBS_MATERIALS BITFIELD64_RANGE(VBO_ATTRIB_MAT_FRONT_AMBIENT, \ VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1) /** * Move material attribs to the last generic attribs, moving LAST_MATERIAL * to GENERIC15, etc. */ #define VBO_MATERIAL_SHIFT (VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_GENERIC15) #define VBO_MAX_COPIED_VERTS 31 #endif # 128 "../mesa/src/mesa/vbo/vbo_attrib.h" #endif /* vbo_attrib.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/vbo/vbo.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "gallium/include/pipe/p_state.h" #endif /* expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/vbo/vbo.h" # 41 "../mesa/src/mesa/vbo/vbo.h" #ifdef __cplusplus extern "C" { #endif # 45 "../mesa/src/mesa/vbo/vbo.h" struct gl_context; struct pipe_draw_info; struct pipe_draw_start_count_bias; /** * Max number of primitives (number of glBegin/End pairs) per VBO. */ #define VBO_MAX_PRIM 64 /** * Current vertex processing mode: fixed function vs. shader. * In reality, fixed function is probably implemented by a shader but that's * not what we care about here. */ typedef enum { VP_MODE_FF, /**< legacy / fixed function */ VP_MODE_SHADER, /**< ARB vertex program or GLSL vertex shader */ VP_MODE_MAX /**< for sizing arrays */ } gl_vertex_processing_mode; struct vbo_exec_eval1_map { struct gl_1d_map *map; GLuint sz; }; struct vbo_exec_eval2_map { struct gl_2d_map *map; GLuint sz; }; struct vbo_exec_copied_vtx { fi_type buffer[VBO_ATTRIB_MAX * 4 * VBO_MAX_COPIED_VERTS]; GLuint nr; }; struct vbo_markers { /** * If false and the primitive is a line loop, the first vertex is * the beginning of the line loop and it won't be drawn. * Instead, it will be moved to the end. * * Drivers shouldn't reset the line stipple pattern walker if begin is * false and mode is a line strip. */ bool begin; /** * If true and the primitive is a line loop, it will be closed. */ bool end; }; struct vbo_exec_context { struct { /* Multi draw where the mode can vary between draws. */ struct pipe_draw_info info; struct pipe_draw_start_count_bias draw[VBO_MAX_PRIM]; GLubyte mode[VBO_MAX_PRIM]; /**< primitive modes per draw */ struct vbo_markers markers[VBO_MAX_PRIM]; unsigned prim_count; struct gl_buffer_object *bufferobj; GLuint vertex_size; /* in dwords */ GLuint vertex_size_no_pos; fi_type *buffer_map; fi_type *buffer_ptr; /* cursor, points into buffer */ GLuint buffer_used; /* in bytes */ unsigned buffer_offset; /* only for persistent mappings */ fi_type vertex[VBO_ATTRIB_MAX*4]; /* current vertex */ GLuint vert_count; /**< Number of vertices currently in buffer */ GLuint max_vert; /**< Max number of vertices allowed in buffer */ struct vbo_exec_copied_vtx copied; GLbitfield64 enabled; /**< mask of enabled vbo arrays. */ /* Keep these packed in a structure for faster access. */ struct { GLenum16 type; /**< GL_FLOAT, GL_DOUBLE, GL_INT, etc */ GLubyte active_size; /**< number of components, but can shrink */ GLubyte size; /**< number of components (1..4) */ } attr[VBO_ATTRIB_MAX]; /** pointers into the current 'vertex' array, declared above */ fi_type *attrptr[VBO_ATTRIB_MAX]; } vtx; struct { GLboolean recalculate_maps; struct vbo_exec_eval1_map map1[VERT_ATTRIB_MAX]; struct vbo_exec_eval2_map map2[VERT_ATTRIB_MAX]; } eval; #ifndef NDEBUG GLint flush_call_depth; #endif # 149 "../mesa/src/mesa/vbo/vbo.h" }; struct vbo_save_context { GLbitfield64 enabled; /**< mask of enabled vbo arrays. */ GLubyte attrsz[VBO_ATTRIB_MAX]; /**< 1, 2, 3 or 4 */ GLenum16 attrtype[VBO_ATTRIB_MAX]; /**< GL_FLOAT, GL_INT, etc */ GLubyte active_sz[VBO_ATTRIB_MAX]; /**< 1, 2, 3 or 4 */ GLuint vertex_size; /**< size in GLfloats */ struct gl_vertex_array_object *VAO[VP_MODE_MAX]; struct vbo_save_vertex_store *vertex_store; struct vbo_save_primitive_store *prim_store; struct gl_buffer_object *current_bo; unsigned current_bo_bytes_used; fi_type vertex[VBO_ATTRIB_MAX*4]; /* current values */ fi_type *attrptr[VBO_ATTRIB_MAX]; struct { fi_type *buffer; GLuint nr; } copied; fi_type *current[VBO_ATTRIB_MAX]; /* points into ctx->ListState */ GLubyte *currentsz[VBO_ATTRIB_MAX]; GLboolean dangling_attr_ref; GLboolean out_of_memory; /**< True if last VBO allocation failed */ bool no_current_update; }; GLboolean _mesa_using_noop_vtxfmt(const struct _glapi_table *dispatch); GLboolean _vbo_CreateContext(struct gl_context *ctx); void _vbo_DestroyContext(struct gl_context *ctx); void vbo_init_dispatch_begin_end(struct gl_context *ctx); void vbo_init_dispatch_hw_select_begin_end(struct gl_context *ctx); void vbo_install_exec_vtxfmt_noop(struct gl_context *ctx); void vbo_install_save_vtxfmt_noop(struct gl_context *ctx); void vbo_exec_update_eval_maps(struct gl_context *ctx); void vbo_reset_all_attr(struct gl_context *ctx); void vbo_exec_FlushVertices(struct gl_context *ctx, GLuint flags); void vbo_save_SaveFlushVertices(struct gl_context *ctx); void vbo_save_NotifyBegin(struct gl_context *ctx, GLenum mode, bool no_current_update); void vbo_save_NewList(struct gl_context *ctx, GLuint list, GLenum mode); void vbo_save_EndList(struct gl_context *ctx); void vbo_delete_minmax_cache(struct gl_buffer_object *bufferObj); void vbo_get_minmax_index_mapped(unsigned count, unsigned index_size, unsigned restartIndex, bool restart, const void *indices, unsigned *min_index, unsigned *max_index); void vbo_get_minmax_index(struct gl_context *ctx, struct gl_buffer_object *obj, const void *ptr, GLintptr offset, unsigned count, unsigned index_size, bool primitive_restart, unsigned restart_index, GLuint *min_index, GLuint *max_index); bool vbo_get_minmax_indices_gallium(struct gl_context *ctx, struct pipe_draw_info *info, const struct pipe_draw_start_count_bias *draws, unsigned num_draws); const struct gl_array_attributes* _vbo_current_attrib(const struct gl_context *ctx, gl_vert_attrib attr); void GLAPIENTRY _es_Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a); void GLAPIENTRY _es_Normal3f(GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _es_MultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); void GLAPIENTRY _es_Materialfv(GLenum face, GLenum pname, const GLfloat *params); void GLAPIENTRY _es_Materialf(GLenum face, GLenum pname, GLfloat param); #ifdef __cplusplus } // extern "C" #endif # 267 "../mesa/src/mesa/vbo/vbo.h" #endif # 269 "../mesa/src/mesa/vbo/vbo.h" #endif /* vbo.h expanded by -frewrite-includes */ # 58 "../mesa/src/mesa/main/mtypes.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "pipe/p_state.h" #endif /* expanded by -frewrite-includes */ # 59 "../mesa/src/mesa/main/mtypes.h" # 60 "../mesa/src/mesa/main/mtypes.h" #if defined(__CLANG_REWRITTEN_INCLUDES) /* api.h expanded by -frewrite-includes */ #include "frontend/api.h" #else /* api.h expanded by -frewrite-includes */ # 61 "../mesa/src/mesa/main/mtypes.h" # 1 "../mesa/src/gallium/include/frontend/api.h" 1 /********************************************************** * Copyright 2010 VMware, Inc. All rights reserved. * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, copy, * modify, merge, publish, distribute, sublicense, and/or sell copies * of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * **********************************************************/ #ifndef _API_H_ #define _API_H_ #if 0 /* expanded by -frewrite-includes */ #include "util/format/u_formats.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/gallium/include/frontend/api.h" # 31 "../mesa/src/gallium/include/frontend/api.h" struct st_context; /** * \file API for communication between gallium frontends and supporting * frontends such as DRI. * * This file defines the API that the GL frontend uses to talk to * the DRI/GLX/WGL frontends. */ /** * Context flags. */ #define ST_CONTEXT_FLAG_DEBUG (1 << 0) #define ST_CONTEXT_FLAG_FORWARD_COMPATIBLE (1 << 1) #define ST_CONTEXT_FLAG_NO_ERROR (1 << 2) #define ST_CONTEXT_FLAG_RELEASE_NONE (1 << 3) /** * Reasons that context creation might fail. */ enum st_context_error { ST_CONTEXT_SUCCESS = 0, ST_CONTEXT_ERROR_NO_MEMORY, ST_CONTEXT_ERROR_BAD_VERSION, }; /** * Available attachments of framebuffer. */ enum st_attachment_type { ST_ATTACHMENT_FRONT_LEFT, ST_ATTACHMENT_BACK_LEFT, ST_ATTACHMENT_FRONT_RIGHT, ST_ATTACHMENT_BACK_RIGHT, ST_ATTACHMENT_DEPTH_STENCIL, ST_ATTACHMENT_ACCUM, ST_ATTACHMENT_COUNT, ST_ATTACHMENT_INVALID = -1 }; /* for buffer_mask in st_visual */ #define ST_ATTACHMENT_FRONT_LEFT_MASK (1 << ST_ATTACHMENT_FRONT_LEFT) #define ST_ATTACHMENT_BACK_LEFT_MASK (1 << ST_ATTACHMENT_BACK_LEFT) #define ST_ATTACHMENT_FRONT_RIGHT_MASK (1 << ST_ATTACHMENT_FRONT_RIGHT) #define ST_ATTACHMENT_BACK_RIGHT_MASK (1 << ST_ATTACHMENT_BACK_RIGHT) #define ST_ATTACHMENT_DEPTH_STENCIL_MASK (1 << ST_ATTACHMENT_DEPTH_STENCIL) #define ST_ATTACHMENT_ACCUM_MASK (1 << ST_ATTACHMENT_ACCUM) /** * Flush flags. */ #define ST_FLUSH_FRONT (1 << 0) #define ST_FLUSH_END_OF_FRAME (1 << 1) #define ST_FLUSH_WAIT (1 << 2) #define ST_FLUSH_FENCE_FD (1 << 3) /** * State invalidation flags to notify st_context that states have been changed * behind their back. */ #define ST_INVALIDATE_FS_SAMPLER_VIEWS (1 << 0) #define ST_INVALIDATE_FS_CONSTBUF0 (1 << 1) #define ST_INVALIDATE_VS_CONSTBUF0 (1 << 2) #define ST_INVALIDATE_VERTEX_BUFFERS (1 << 3) #define ST_INVALIDATE_FB_STATE (1 << 4) /** * Value to pipe_frontend_streen::get_param function. */ enum st_manager_param { /** * The DRI frontend on old libGL's doesn't do the right thing * with regards to invalidating the framebuffers. * * For the GL gallium frontend that means that it needs to invalidate * the framebuffer in glViewport itself. */ ST_MANAGER_BROKEN_INVALIDATE }; struct pipe_resource; struct util_queue_monitoring; /** * Used in pipe_frontend_screen::get_egl_image. */ struct st_egl_image { /* this is owned by the caller */ struct pipe_resource *texture; /* format only differs from texture->format for multi-planar (YUV): */ enum pipe_format format; unsigned level; unsigned layer; /* GL internal format. */ unsigned internalformat; /* one of __DRI_YUV_COLOR_SPACE_* */ unsigned yuv_color_space; /* one of __DRI_YUV_RANGE_* */ unsigned yuv_range; bool imported_dmabuf; }; /** * Represent the visual of a framebuffer. */ struct st_visual { /** * Available buffers. Bitfield of ST_ATTACHMENT_*_MASK bits. */ unsigned buffer_mask; /** * Buffer formats. The formats are always set even when the buffer is * not available. */ enum pipe_format color_format; enum pipe_format depth_stencil_format; enum pipe_format accum_format; unsigned samples; }; /** * Configuration options from driconf */ struct st_config_options { bool disable_blend_func_extended; bool disable_glsl_line_continuations; bool disable_arb_gpu_shader5; bool disable_uniform_array_resize; char *alias_shader_extension; bool allow_vertex_texture_bias; bool force_compat_shaders; bool force_glsl_extensions_warn; unsigned force_glsl_version; bool allow_extra_pp_tokens; bool allow_glsl_extension_directive_midshader; bool allow_glsl_120_subset_in_110; bool allow_glsl_builtin_const_expression; bool allow_glsl_relaxed_es; bool allow_glsl_builtin_variable_redeclaration; bool allow_higher_compat_version; bool allow_glsl_compat_shaders; bool glsl_ignore_write_to_readonly_var; bool glsl_zero_init; bool vs_position_always_invariant; bool vs_position_always_precise; bool force_glsl_abs_sqrt; bool allow_glsl_cross_stage_interpolation_mismatch; bool do_dce_before_clip_cull_analysis; bool allow_draw_out_of_order; bool glthread_nop_check_framebuffer_status; bool ignore_map_unsynchronized; bool ignore_discard_framebuffer; bool force_integer_tex_nearest; int reuse_gl_names; bool force_gl_map_buffer_synchronized; bool transcode_etc; bool transcode_astc; bool allow_compressed_fallback; char *force_gl_vendor; char *force_gl_renderer; char *mesa_extension_override; bool allow_multisampled_copyteximage; unsigned char config_options_sha1[20]; }; struct pipe_frontend_screen; /** * Represent a windowing system drawable. * * This is inherited by the drawable implementation of the DRI/GLX/WGL * frontends, e.g. this is the first field in dri_drawable. * * st_context uses the callbacks to invoke one of the DRI/GLX/WGL-specific * functions. * * This drawable can be shared between different threads. The atomic stamp * is used to communicate that the drawable has been changed, and * the framebuffer state should be updated. */ struct pipe_frontend_drawable { /** * Atomic stamp which changes when framebuffers need to be updated. */ int32_t stamp; /** * Identifier that uniquely identifies the framebuffer interface object. */ uint32_t ID; /** * The frontend screen for DRI/GLX/WGL. This is e.g. dri_screen. */ struct pipe_frontend_screen *fscreen; /** * The visual of the framebuffer. */ const struct st_visual *visual; /** * Flush the front buffer. * * On some window systems, changes to the front buffers are not immediately * visible. They need to be flushed. * * @att is one of the front buffer attachments. */ bool (*flush_front)(struct st_context *st, struct pipe_frontend_drawable *drawable, enum st_attachment_type statt); /** * The GL frontend asks for the framebuffer attachments it needs. * * It should try to only ask for attachments that it currently renders * to, thus allowing the winsys to delay the allocation of textures not * needed. For example front buffer attachments are not needed if you * only do back buffer rendering. * * The implementor of this function needs to also ensure * thread safty as this call might be done from multiple threads. * * The returned textures are owned by the caller. They should be * unreferenced when no longer used. If this function is called multiple * times with different sets of attachments, those buffers not included in * the last call might be destroyed. */ bool (*validate)(struct st_context *st, struct pipe_frontend_drawable *drawable, const enum st_attachment_type *statts, unsigned count, struct pipe_resource **out, struct pipe_resource **resolve); bool (*flush_swapbuffers)(struct st_context *st, struct pipe_frontend_drawable *drawable); }; /** * This is inherited by a screen in the DRI/GLX/WGL frontends, e.g. dri_screen. */ struct pipe_frontend_screen { struct pipe_screen *screen; /** * Look up and return the info of an EGLImage. * * This is used to implement for example EGLImageTargetTexture2DOES. * The GLeglImageOES agrument of that call is passed directly to this * function call and the information needed to access this is returned * in the given struct out. * * @fscreen: the screen * @egl_image: EGLImage that caller recived * @out: return struct filled out with access information. * * This function is optional. */ bool (*get_egl_image)(struct pipe_frontend_screen *fscreen, void *egl_image, struct st_egl_image *out); /** * Validate EGLImage passed to get_egl_image. */ bool (*validate_egl_image)(struct pipe_frontend_screen *fscreen, void *egl_image); /** * Query a feature or property from the DRI/GLX/WGL frontend. */ int (*get_param)(struct pipe_frontend_screen *fscreen, enum st_manager_param param); /** * Call the loader function setBackgroundContext. Called from the worker * thread. */ void (*set_background_context)(struct st_context *st, struct util_queue_monitoring *queue_info); /** * GL frontend state associated with the screen. * * This is where st_context stores the state shared by all contexts. */ void *st_screen; }; #endif /* _API_H_ */ # 342 "../mesa/src/gallium/include/frontend/api.h" #endif /* api.h expanded by -frewrite-includes */ # 62 "../mesa/src/mesa/main/mtypes.h" 2 #ifdef __cplusplus extern "C" { #endif # 66 "../mesa/src/mesa/main/mtypes.h" #define GET_COLORMASK_BIT(mask, buf, chan) (((mask) >> (4 * (buf) + (chan))) & 0x1) #define GET_COLORMASK(mask, buf) (((mask) >> (4 * (buf))) & 0xf) /** * \name Some forward type declarations */ /*@{*/ struct gl_attrib_node; struct gl_list_extensions; struct gl_meta_state; struct gl_program_cache; struct gl_texture_object; struct gl_debug_state; struct gl_context; struct st_context; struct gl_uniform_storage; struct prog_instruction; struct gl_program_parameter_list; struct gl_shader_spirv_data; struct set; struct shader_includes; /*@}*/ /** Extra draw modes beyond GL_POINTS, GL_TRIANGLE_FAN, etc */ #define PRIM_MAX GL_PATCHES #define PRIM_OUTSIDE_BEGIN_END (PRIM_MAX + 1) #define PRIM_UNKNOWN (PRIM_MAX + 2) /** * Bit flags for all renderbuffers */ #define BUFFER_BIT_FRONT_LEFT (1 << BUFFER_FRONT_LEFT) #define BUFFER_BIT_BACK_LEFT (1 << BUFFER_BACK_LEFT) #define BUFFER_BIT_FRONT_RIGHT (1 << BUFFER_FRONT_RIGHT) #define BUFFER_BIT_BACK_RIGHT (1 << BUFFER_BACK_RIGHT) #define BUFFER_BIT_DEPTH (1 << BUFFER_DEPTH) #define BUFFER_BIT_STENCIL (1 << BUFFER_STENCIL) #define BUFFER_BIT_ACCUM (1 << BUFFER_ACCUM) #define BUFFER_BIT_COLOR0 (1 << BUFFER_COLOR0) #define BUFFER_BIT_COLOR1 (1 << BUFFER_COLOR1) #define BUFFER_BIT_COLOR2 (1 << BUFFER_COLOR2) #define BUFFER_BIT_COLOR3 (1 << BUFFER_COLOR3) #define BUFFER_BIT_COLOR4 (1 << BUFFER_COLOR4) #define BUFFER_BIT_COLOR5 (1 << BUFFER_COLOR5) #define BUFFER_BIT_COLOR6 (1 << BUFFER_COLOR6) #define BUFFER_BIT_COLOR7 (1 << BUFFER_COLOR7) /** * Mask of all the color buffer bits (but not accum). */ #define BUFFER_BITS_COLOR (BUFFER_BIT_FRONT_LEFT | \ BUFFER_BIT_BACK_LEFT | \ BUFFER_BIT_FRONT_RIGHT | \ BUFFER_BIT_BACK_RIGHT | \ BUFFER_BIT_COLOR0 | \ BUFFER_BIT_COLOR1 | \ BUFFER_BIT_COLOR2 | \ BUFFER_BIT_COLOR3 | \ BUFFER_BIT_COLOR4 | \ BUFFER_BIT_COLOR5 | \ BUFFER_BIT_COLOR6 | \ BUFFER_BIT_COLOR7) /* Mask of bits for depth+stencil buffers */ #define BUFFER_BITS_DEPTH_STENCIL (BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL) #define FRONT_MATERIAL_BITS (MAT_BIT_FRONT_EMISSION | \ MAT_BIT_FRONT_AMBIENT | \ MAT_BIT_FRONT_DIFFUSE | \ MAT_BIT_FRONT_SPECULAR | \ MAT_BIT_FRONT_SHININESS | \ MAT_BIT_FRONT_INDEXES) #define BACK_MATERIAL_BITS (MAT_BIT_BACK_EMISSION | \ MAT_BIT_BACK_AMBIENT | \ MAT_BIT_BACK_DIFFUSE | \ MAT_BIT_BACK_SPECULAR | \ MAT_BIT_BACK_SHININESS | \ MAT_BIT_BACK_INDEXES) #define ALL_MATERIAL_BITS (FRONT_MATERIAL_BITS | BACK_MATERIAL_BITS) /*@}*/ /** * Material state. */ struct gl_material { GLfloat Attrib[MAT_ATTRIB_MAX][4]; }; /** * Light state flags. */ /*@{*/ #define LIGHT_SPOT 0x1 #define LIGHT_LOCAL_VIEWER 0x2 #define LIGHT_POSITIONAL 0x4 #define LIGHT_NEED_VERTICES (LIGHT_POSITIONAL|LIGHT_LOCAL_VIEWER) /*@}*/ /** * Light source state. */ struct gl_light { GLboolean Enabled; /**< On/off flag */ /** * \name Derived fields */ /*@{*/ GLbitfield _Flags; /**< Mask of LIGHT_x bits defined above */ GLfloat _Position[4]; /**< position in eye/obj coordinates */ GLfloat _VP_inf_norm[3]; /**< Norm direction to infinite light */ GLfloat _h_inf_norm[3]; /**< Norm( _VP_inf_norm + <0,0,1> ) */ GLfloat _NormSpotDirection[4]; /**< normalized spotlight direction */ GLfloat _VP_inf_spot_attenuation; GLfloat _MatAmbient[2][3]; /**< material ambient * light ambient */ GLfloat _MatDiffuse[2][3]; /**< material diffuse * light diffuse */ GLfloat _MatSpecular[2][3]; /**< material spec * light specular */ /*@}*/ }; /** * Light model state. */ struct gl_lightmodel { GLfloat Ambient[4]; /**< ambient color */ GLboolean LocalViewer; /**< Local (or infinite) view point? */ GLboolean TwoSide; /**< Two (or one) sided lighting? */ GLenum16 ColorControl; /**< either GL_SINGLE_COLOR or GL_SEPARATE_SPECULAR_COLOR */ }; /** * Accumulation buffer attribute group (GL_ACCUM_BUFFER_BIT) */ struct gl_accum_attrib { GLfloat ClearColor[4]; /**< Accumulation buffer clear color */ }; /** * Used for storing clear color, texture border color, etc. * The float values are typically unclamped. */ union gl_color_union { GLfloat f[4]; GLint i[4]; GLuint ui[4]; }; /** * Color buffer attribute group (GL_COLOR_BUFFER_BIT). */ struct gl_colorbuffer_attrib { GLuint ClearIndex; /**< Index for glClear */ union gl_color_union ClearColor; /**< Color for glClear, unclamped */ GLuint IndexMask; /**< Color index write mask */ /** 4 colormask bits per draw buffer, max 8 draw buffers. 4*8 = 32 bits */ GLbitfield ColorMask; GLenum16 DrawBuffer[MAX_DRAW_BUFFERS]; /**< Which buffer to draw into */ /** * \name alpha testing */ /*@{*/ GLboolean AlphaEnabled; /**< Alpha test enabled flag */ GLenum16 AlphaFunc; /**< Alpha test function */ GLfloat AlphaRefUnclamped; GLclampf AlphaRef; /**< Alpha reference value */ /*@}*/ /** * \name Blending */ /*@{*/ GLbitfield BlendEnabled; /**< Per-buffer blend enable flags */ /* NOTE: this does _not_ depend on fragment clamping or any other clamping * control, only on the fixed-pointness of the render target. * The query does however depend on fragment color clamping. */ GLfloat BlendColorUnclamped[4]; /**< Blending color */ GLfloat BlendColor[4]; /**< Blending color */ struct { GLenum16 SrcRGB; /**< RGB blend source term */ GLenum16 DstRGB; /**< RGB blend dest term */ GLenum16 SrcA; /**< Alpha blend source term */ GLenum16 DstA; /**< Alpha blend dest term */ GLenum16 EquationRGB; /**< GL_ADD, GL_SUBTRACT, etc. */ GLenum16 EquationA; /**< GL_ADD, GL_SUBTRACT, etc. */ } Blend[MAX_DRAW_BUFFERS]; /** Bitfield of color buffers with enabled dual source blending. */ GLbitfield _BlendUsesDualSrc; /** Are the blend func terms currently different for each buffer/target? */ GLboolean _BlendFuncPerBuffer; /** Are the blend equations currently different for each buffer/target? */ GLboolean _BlendEquationPerBuffer; /** * Which advanced blending mode is in use (or BLEND_NONE). * * KHR_blend_equation_advanced only allows advanced blending with a single * draw buffer, and NVX_blend_equation_advanced_multi_draw_buffer still * requires all draw buffers to match, so we only need a single value. */ enum gl_advanced_blend_mode _AdvancedBlendMode; /** Coherency requested via glEnable(GL_BLEND_ADVANCED_COHERENT_KHR)? */ bool BlendCoherent; /*@}*/ /** * \name Logic op */ /*@{*/ GLboolean IndexLogicOpEnabled; /**< Color index logic op enabled flag */ GLboolean ColorLogicOpEnabled; /**< RGBA logic op enabled flag */ GLenum16 LogicOp; /**< Logic operator */ enum gl_logicop_mode _LogicOp; /*@}*/ GLboolean DitherFlag; /**< Dither enable flag */ GLboolean _ClampFragmentColor; /** < with GL_FIXED_ONLY_ARB resolved */ GLenum16 ClampFragmentColor; /**< GL_TRUE, GL_FALSE or GL_FIXED_ONLY_ARB */ GLenum16 ClampReadColor; /**< GL_TRUE, GL_FALSE or GL_FIXED_ONLY_ARB */ GLboolean sRGBEnabled; /**< Framebuffer sRGB blending/updating requested */ }; /** * Vertex format to describe a vertex element. */ struct gl_vertex_format { union gl_vertex_format_user User; enum pipe_format _PipeFormat:16; /**< pipe_format for Gallium */ GLushort _ElementSize; /**< Size of each element in bytes */ }; /** * Current attribute group (GL_CURRENT_BIT). */ struct gl_current_attrib { /** * \name Current vertex attributes (color, texcoords, etc). * \note Values are valid only after FLUSH_VERTICES has been called. * \note Index and Edgeflag current values are stored as floats in the * SIX and SEVEN attribute slots. * \note We need double storage for 64-bit vertex attributes */ GLfloat Attrib[VERT_ATTRIB_MAX][4*2]; /** * \name Current raster position attributes (always up to date after a * glRasterPos call). */ GLfloat RasterPos[4]; GLfloat RasterDistance; GLfloat RasterColor[4]; GLfloat RasterSecondaryColor[4]; GLfloat RasterTexCoords[MAX_TEXTURE_COORD_UNITS][4]; GLboolean RasterPosValid; }; /** * Depth buffer attribute group (GL_DEPTH_BUFFER_BIT). */ struct gl_depthbuffer_attrib { GLenum16 Func; /**< Function for depth buffer compare */ GLclampd Clear; /**< Value to clear depth buffer to */ GLboolean Test; /**< Depth buffering enabled flag */ GLboolean Mask; /**< Depth buffer writable? */ GLboolean BoundsTest; /**< GL_EXT_depth_bounds_test */ GLclampd BoundsMin, BoundsMax;/**< GL_EXT_depth_bounds_test */ }; /** * Evaluator attribute group (GL_EVAL_BIT). */ struct gl_eval_attrib { /** * \name Enable bits */ /*@{*/ GLboolean Map1Color4; GLboolean Map1Index; GLboolean Map1Normal; GLboolean Map1TextureCoord1; GLboolean Map1TextureCoord2; GLboolean Map1TextureCoord3; GLboolean Map1TextureCoord4; GLboolean Map1Vertex3; GLboolean Map1Vertex4; GLboolean Map2Color4; GLboolean Map2Index; GLboolean Map2Normal; GLboolean Map2TextureCoord1; GLboolean Map2TextureCoord2; GLboolean Map2TextureCoord3; GLboolean Map2TextureCoord4; GLboolean Map2Vertex3; GLboolean Map2Vertex4; GLboolean AutoNormal; /*@}*/ /** * \name Map Grid endpoints and divisions and calculated du values */ /*@{*/ GLint MapGrid1un; GLfloat MapGrid1u1, MapGrid1u2, MapGrid1du; GLint MapGrid2un, MapGrid2vn; GLfloat MapGrid2u1, MapGrid2u2, MapGrid2du; GLfloat MapGrid2v1, MapGrid2v2, MapGrid2dv; /*@}*/ }; /** * Compressed fog mode. */ enum gl_fog_mode { FOG_NONE, FOG_LINEAR, FOG_EXP, FOG_EXP2, }; /** * Fog attribute group (GL_FOG_BIT). */ struct gl_fog_attrib { GLboolean Enabled; /**< Fog enabled flag */ GLboolean ColorSumEnabled; uint8_t _PackedMode; /**< Fog mode as 2 bits */ uint8_t _PackedEnabledMode; /**< Masked CompressedMode */ GLfloat ColorUnclamped[4]; /**< Fog color */ GLfloat Color[4]; /**< Fog color */ GLfloat Density; /**< Density >= 0.0 */ GLfloat Start; /**< Start distance in eye coords */ GLfloat End; /**< End distance in eye coords */ GLfloat Index; /**< Fog index */ GLenum16 Mode; /**< Fog mode */ GLenum16 FogCoordinateSource;/**< GL_EXT_fog_coord */ GLenum16 FogDistanceMode; /**< GL_NV_fog_distance */ }; /** * Hint attribute group (GL_HINT_BIT). * * Values are always one of GL_FASTEST, GL_NICEST, or GL_DONT_CARE. */ struct gl_hint_attrib { GLenum16 PerspectiveCorrection; GLenum16 PointSmooth; GLenum16 LineSmooth; GLenum16 PolygonSmooth; GLenum16 Fog; GLenum16 TextureCompression; /**< GL_ARB_texture_compression */ GLenum16 GenerateMipmap; /**< GL_SGIS_generate_mipmap */ GLenum16 FragmentShaderDerivative; /**< GL_ARB_fragment_shader */ GLuint MaxShaderCompilerThreads; /**< GL_ARB_parallel_shader_compile */ }; struct gl_light_uniforms { /* These must be in the same order as the STATE_* enums, * which should also match the order of gl_LightSource members. */ GLfloat Ambient[4]; /**< STATE_AMBIENT */ GLfloat Diffuse[4]; /**< STATE_DIFFUSE */ GLfloat Specular[4]; /**< STATE_SPECULAR */ GLfloat EyePosition[4]; /**< STATE_POSITION in eye coordinates */ GLfloat _HalfVector[4]; /**< STATE_HALF_VECTOR */ GLfloat SpotDirection[3]; /**< STATE_SPOT_DIRECTION in eye coordinates */ GLfloat _CosCutoff; /**< = MAX(0, cos(SpotCutoff)) */ GLfloat ConstantAttenuation; /**< STATE_ATTENUATION */ GLfloat LinearAttenuation; GLfloat QuadraticAttenuation; GLfloat SpotExponent; GLfloat SpotCutoff; /**< STATE_SPOT_CUTOFF in degrees */ }; /** * Lighting attribute group (GL_LIGHT_BIT). */ struct gl_light_attrib { /* gl_LightSource uniforms */ union { struct gl_light_uniforms LightSource[MAX_LIGHTS]; GLfloat LightSourceData[(sizeof(struct gl_light_uniforms) / 4) * MAX_LIGHTS]; }; struct gl_light Light[MAX_LIGHTS]; /**< Array of light sources */ struct gl_lightmodel Model; /**< Lighting model */ /** * Front and back material values. * Note: must call FLUSH_VERTICES() before using. */ struct gl_material Material; GLboolean Enabled; /**< Lighting enabled flag */ GLboolean ColorMaterialEnabled; GLenum16 ShadeModel; /**< GL_FLAT or GL_SMOOTH */ GLenum16 ProvokingVertex; /**< GL_EXT_provoking_vertex */ GLenum16 ColorMaterialFace; /**< GL_FRONT, BACK or FRONT_AND_BACK */ GLenum16 ColorMaterialMode; /**< GL_AMBIENT, GL_DIFFUSE, etc */ GLbitfield _ColorMaterialBitmask; /**< bitmask formed from Face and Mode */ GLboolean _ClampVertexColor; GLenum16 ClampVertexColor; /**< GL_TRUE, GL_FALSE, GL_FIXED_ONLY */ /** * Derived state for optimizations: */ /*@{*/ GLbitfield _EnabledLights; /**< bitmask containing enabled lights */ GLboolean _NeedEyeCoords; GLboolean _NeedVertices; /**< Use fast shader? */ GLfloat _BaseColor[2][3]; /*@}*/ }; /** * Line attribute group (GL_LINE_BIT). */ struct gl_line_attrib { GLboolean SmoothFlag; /**< GL_LINE_SMOOTH enabled? */ GLboolean StippleFlag; /**< GL_LINE_STIPPLE enabled? */ GLushort StipplePattern; /**< Stipple pattern */ GLint StippleFactor; /**< Stipple repeat factor */ GLfloat Width; /**< Line width */ }; /** * Display list attribute group (GL_LIST_BIT). */ struct gl_list_attrib { GLuint ListBase; }; /** * Multisample attribute group (GL_MULTISAMPLE_BIT). */ struct gl_multisample_attrib { GLboolean Enabled; GLboolean SampleAlphaToCoverage; GLboolean SampleAlphaToOne; GLboolean SampleCoverage; GLboolean SampleCoverageInvert; GLboolean SampleShading; /* ARB_texture_multisample / GL3.2 additions */ GLboolean SampleMask; GLfloat SampleCoverageValue; /**< In range [0, 1] */ GLfloat MinSampleShadingValue; /**< In range [0, 1] */ /** The GL spec defines this as an array but >32x MSAA is madness */ GLbitfield SampleMaskValue; /* NV_alpha_to_coverage_dither_control */ GLenum SampleAlphaToCoverageDitherControl; }; /** * A pixelmap (see glPixelMap) */ struct gl_pixelmap { GLint Size; GLfloat Map[MAX_PIXEL_MAP_TABLE]; }; /** * Collection of all pixelmaps */ struct gl_pixelmaps { struct gl_pixelmap RtoR; /**< i.e. GL_PIXEL_MAP_R_TO_R */ struct gl_pixelmap GtoG; struct gl_pixelmap BtoB; struct gl_pixelmap AtoA; struct gl_pixelmap ItoR; struct gl_pixelmap ItoG; struct gl_pixelmap ItoB; struct gl_pixelmap ItoA; struct gl_pixelmap ItoI; struct gl_pixelmap StoS; }; /** * Pixel attribute group (GL_PIXEL_MODE_BIT). */ struct gl_pixel_attrib { GLenum16 ReadBuffer; /**< source buffer for glRead/CopyPixels() */ /*--- Begin Pixel Transfer State ---*/ /* Fields are in the order in which they're applied... */ /** Scale & Bias (index shift, offset) */ /*@{*/ GLfloat RedBias, RedScale; GLfloat GreenBias, GreenScale; GLfloat BlueBias, BlueScale; GLfloat AlphaBias, AlphaScale; GLfloat DepthBias, DepthScale; GLint IndexShift, IndexOffset; /*@}*/ /* Pixel Maps */ /* Note: actual pixel maps are not part of this attrib group */ GLboolean MapColorFlag; GLboolean MapStencilFlag; /*--- End Pixel Transfer State ---*/ /** glPixelZoom */ GLfloat ZoomX, ZoomY; }; /** * Point attribute group (GL_POINT_BIT). */ struct gl_point_attrib { GLfloat Size; /**< User-specified point size */ GLfloat Params[3]; /**< GL_EXT_point_parameters */ GLfloat MinSize, MaxSize; /**< GL_EXT_point_parameters */ GLfloat Threshold; /**< GL_EXT_point_parameters */ GLboolean SmoothFlag; /**< True if GL_POINT_SMOOTH is enabled */ GLboolean _Attenuated; /**< True if Params != [1, 0, 0] */ GLboolean PointSprite; /**< GL_NV/ARB_point_sprite */ GLbitfield CoordReplace; /**< GL_ARB_point_sprite*/ GLenum16 SpriteOrigin; /**< GL_ARB_point_sprite */ }; /** * Polygon attribute group (GL_POLYGON_BIT). */ struct gl_polygon_attrib { GLenum16 FrontFace; /**< Either GL_CW or GL_CCW */ GLenum FrontMode; /**< Either GL_POINT, GL_LINE or GL_FILL */ GLenum BackMode; /**< Either GL_POINT, GL_LINE or GL_FILL */ GLboolean CullFlag; /**< Culling on/off flag */ GLboolean SmoothFlag; /**< True if GL_POLYGON_SMOOTH is enabled */ GLboolean StippleFlag; /**< True if GL_POLYGON_STIPPLE is enabled */ GLenum16 CullFaceMode; /**< Culling mode GL_FRONT or GL_BACK */ GLfloat OffsetFactor; /**< Polygon offset factor, from user */ GLfloat OffsetUnits; /**< Polygon offset units, from user */ GLfloat OffsetClamp; /**< Polygon offset clamp, from user */ GLboolean OffsetPoint; /**< Offset in GL_POINT mode */ GLboolean OffsetLine; /**< Offset in GL_LINE mode */ GLboolean OffsetFill; /**< Offset in GL_FILL mode */ }; /** * Scissor attributes (GL_SCISSOR_BIT). */ struct gl_scissor_rect { GLint X, Y; /**< Lower left corner of box */ GLsizei Width, Height; /**< Size of box */ }; struct gl_scissor_attrib { GLbitfield EnableFlags; /**< Scissor test enabled? */ struct gl_scissor_rect ScissorArray[MAX_VIEWPORTS]; GLint NumWindowRects; /**< Count of enabled window rectangles */ GLenum16 WindowRectMode; /**< Whether to include or exclude the rects */ struct gl_scissor_rect WindowRects[MAX_WINDOW_RECTANGLES]; }; /** * Stencil attribute group (GL_STENCIL_BUFFER_BIT). * * Three sets of stencil data are tracked so that OpenGL 2.0, * GL_EXT_stencil_two_side, and GL_ATI_separate_stencil can all be supported * simultaneously. In each of the stencil state arrays, element 0 corresponds * to GL_FRONT. Element 1 corresponds to the OpenGL 2.0 / * GL_ATI_separate_stencil GL_BACK state. Element 2 corresponds to the * GL_EXT_stencil_two_side GL_BACK state. * * The derived value \c _BackFace is either 1 or 2 depending on whether or * not GL_STENCIL_TEST_TWO_SIDE_EXT is enabled. * * The derived value \c _TestTwoSide is set when the front-face and back-face * stencil state are different. */ struct gl_stencil_attrib { GLboolean Enabled; /**< Enabled flag */ GLboolean TestTwoSide; /**< GL_EXT_stencil_two_side */ GLubyte ActiveFace; /**< GL_EXT_stencil_two_side (0 or 2) */ GLubyte _BackFace; /**< Current back stencil state (1 or 2) */ GLenum16 Function[3]; /**< Stencil function */ GLenum16 FailFunc[3]; /**< Fail function */ GLenum16 ZPassFunc[3]; /**< Depth buffer pass function */ GLenum16 ZFailFunc[3]; /**< Depth buffer fail function */ GLint Ref[3]; /**< Reference value */ GLuint ValueMask[3]; /**< Value mask */ GLuint WriteMask[3]; /**< Write mask */ GLuint Clear; /**< Clear value */ }; /** * Bit flags for each type of texture object */ /*@{*/ #define TEXTURE_2D_MULTISAMPLE_BIT (1 << TEXTURE_2D_MULTISAMPLE_INDEX) #define TEXTURE_2D_MULTISAMPLE_ARRAY_BIT (1 << TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX) #define TEXTURE_CUBE_ARRAY_BIT (1 << TEXTURE_CUBE_ARRAY_INDEX) #define TEXTURE_BUFFER_BIT (1 << TEXTURE_BUFFER_INDEX) #define TEXTURE_2D_ARRAY_BIT (1 << TEXTURE_2D_ARRAY_INDEX) #define TEXTURE_1D_ARRAY_BIT (1 << TEXTURE_1D_ARRAY_INDEX) #define TEXTURE_EXTERNAL_BIT (1 << TEXTURE_EXTERNAL_INDEX) #define TEXTURE_CUBE_BIT (1 << TEXTURE_CUBE_INDEX) #define TEXTURE_3D_BIT (1 << TEXTURE_3D_INDEX) #define TEXTURE_RECT_BIT (1 << TEXTURE_RECT_INDEX) #define TEXTURE_2D_BIT (1 << TEXTURE_2D_INDEX) #define TEXTURE_1D_BIT (1 << TEXTURE_1D_INDEX) /*@}*/ /** * Texture image state. Drivers will typically create a subclass of this * with extra fields for memory buffers, etc. */ struct gl_texture_image { GLint InternalFormat; /**< Internal format as given by the user */ GLenum16 _BaseFormat; /**< Either GL_RGB, GL_RGBA, GL_ALPHA, * GL_LUMINANCE, GL_LUMINANCE_ALPHA, * GL_INTENSITY, GL_DEPTH_COMPONENT or * GL_DEPTH_STENCIL_EXT only. Used for * choosing TexEnv arithmetic. */ mesa_format TexFormat; /**< The actual texture memory format */ GLuint Border; /**< 0 or 1 */ GLuint Width; GLuint Height; GLuint Depth; GLuint Width2; /**< = Width - 2*Border */ GLuint Height2; /**< = Height - 2*Border */ GLuint Depth2; /**< = Depth - 2*Border */ GLuint MaxNumLevels; /**< = maximum possible number of mipmap levels, computed from the dimensions */ struct gl_texture_object *TexObject; /**< Pointer back to parent object */ GLuint Level; /**< Which mipmap level am I? */ /** Cube map face: index into gl_texture_object::Image[] array */ GLuint Face; unsigned FormatSwizzle; unsigned FormatSwizzleGLSL130; //for depth formats /** GL_ARB_texture_multisample */ GLuint NumSamples; /**< Sample count, or 0 for non-multisample */ GLboolean FixedSampleLocations; /**< Same sample locations for all pixels? */ /* If stImage->pt != NULL, image data is stored here. * Else there is no image data. */ struct pipe_resource *pt; /* List of transfers, allocated on demand. * transfer[layer] is a mapping for that layer. */ struct st_texture_image_transfer *transfer; unsigned num_transfers; /* For compressed images unsupported by the driver. Keep track of * the original data. This is necessary for mapping/unmapping, * as well as image copies. */ struct st_compressed_data* compressed_data; }; /** * Indexes for cube map faces. */ typedef enum { FACE_POS_X = 0, FACE_NEG_X = 1, FACE_POS_Y = 2, FACE_NEG_Y = 3, FACE_POS_Z = 4, FACE_NEG_Z = 5, MAX_FACES = 6 } gl_face_index; /** * Sampler state saved and restore by glPush/PopAttrib. * * Don't put fields here that glPushAttrib shouldn't save. * E.g. no GLES fields because GLES doesn't have glPushAttrib. */ struct gl_sampler_attrib { GLenum16 WrapS; /**< S-axis texture image wrap mode */ GLenum16 WrapT; /**< T-axis texture image wrap mode */ GLenum16 WrapR; /**< R-axis texture image wrap mode */ GLenum16 MinFilter; /**< minification filter */ GLenum16 MagFilter; /**< magnification filter */ GLenum16 sRGBDecode; /**< GL_DECODE_EXT or GL_SKIP_DECODE_EXT */ GLfloat MinLod; /**< min lambda, OpenGL 1.2 */ GLfloat MaxLod; /**< max lambda, OpenGL 1.2 */ GLfloat LodBias; /**< OpenGL 1.4 */ GLfloat MaxAnisotropy; /**< GL_EXT_texture_filter_anisotropic */ GLenum16 CompareMode; /**< GL_ARB_shadow */ GLenum16 CompareFunc; /**< GL_ARB_shadow */ GLboolean CubeMapSeamless; /**< GL_AMD_seamless_cubemap_per_texture */ GLboolean IsBorderColorNonZero; /**< Does the border color have any effect? */ GLenum16 ReductionMode; /**< GL_EXT_texture_filter_minmax */ struct pipe_sampler_state state; /**< Gallium representation */ }; /** * Texture state saved and restored by glPush/PopAttrib. * * Don't put fields here that glPushAttrib shouldn't save. * E.g. no GLES fields because GLES doesn't have glPushAttrib. */ struct gl_texture_object_attrib { GLfloat Priority; /**< in [0,1] */ GLint BaseLevel; /**< min mipmap level, OpenGL 1.2 */ GLint MaxLevel; /**< max mipmap level (max=1000), OpenGL 1.2 */ GLenum Swizzle[4]; /**< GL_EXT_texture_swizzle */ GLushort _Swizzle; /**< same as Swizzle, but SWIZZLE_* format */ GLenum16 DepthMode; /**< GL_ARB_depth_texture */ GLenum16 ImageFormatCompatibilityType; /**< GL_ARB_shader_image_load_store */ GLushort MinLayer; /**< GL_ARB_texture_view */ GLushort NumLayers; /**< GL_ARB_texture_view */ GLboolean GenerateMipmap; /**< GL_SGIS_generate_mipmap */ GLbyte ImmutableLevels; /**< ES 3.0 / ARB_texture_view */ GLubyte MinLevel; /**< GL_ARB_texture_view */ GLubyte NumLevels; /**< GL_ARB_texture_view */ }; typedef enum { WRAP_S = (1<<0), WRAP_T = (1<<1), WRAP_R = (1<<2), } gl_sampler_wrap; /** * Sampler object state. These objects are new with GL_ARB_sampler_objects * and OpenGL 3.3. Legacy texture objects also contain a sampler object. */ struct gl_sampler_object { GLuint Name; GLchar *Label; /**< GL_KHR_debug */ GLint RefCount; struct gl_sampler_attrib Attrib; /**< State saved by glPushAttrib */ uint8_t glclamp_mask; /**< mask of GL_CLAMP wraps active */ /** GL_ARB_bindless_texture */ bool HandleAllocated; struct util_dynarray Handles; }; /** * YUV color space that should be used to sample textures backed by YUV * images. */ enum gl_texture_yuv_color_space { GL_TEXTURE_YUV_COLOR_SPACE_REC601, GL_TEXTURE_YUV_COLOR_SPACE_REC709, GL_TEXTURE_YUV_COLOR_SPACE_REC2020, }; /** * Texture object state. Contains the array of mipmap images, border color, * wrap modes, filter modes, and shadow/texcompare state. */ struct gl_texture_object { GLint RefCount; /**< reference count */ GLuint Name; /**< the user-visible texture object ID */ GLenum16 Target; /**< GL_TEXTURE_1D, GL_TEXTURE_2D, etc. */ GLchar *Label; /**< GL_KHR_debug */ struct gl_sampler_object Sampler; struct gl_texture_object_attrib Attrib; /**< State saved by glPushAttrib */ gl_texture_index TargetIndex; /**< The gl_texture_unit::CurrentTex index. Only valid when Target is valid. */ GLbyte _MaxLevel; /**< actual max mipmap level (q in the spec) */ GLfloat _MaxLambda; /**< = _MaxLevel - BaseLevel (q - p in spec) */ GLint CropRect[4]; /**< GL_OES_draw_texture */ GLboolean _BaseComplete; /**< Is the base texture level valid? */ GLboolean _MipmapComplete; /**< Is the whole mipmap valid? */ GLboolean _IsIntegerFormat; /**< Does the texture store integer values? */ GLboolean _RenderToTexture; /**< Any rendering to this texture? */ GLboolean Immutable; /**< GL_ARB_texture_storage */ GLboolean _IsFloat; /**< GL_OES_float_texture */ GLboolean _IsHalfFloat; /**< GL_OES_half_float_texture */ bool HandleAllocated; /**< GL_ARB_bindless_texture */ /* This should not be restored by glPopAttrib: */ bool StencilSampling; /**< Should we sample stencil instead of depth? */ /** GL_OES_EGL_image_external */ GLboolean External; GLubyte RequiredTextureImageUnits; GLboolean NullTexture; /**< this texture is incomplete and should be passed to the driver as NULL */ /** GL_EXT_memory_object */ GLenum16 TextureTiling; /** GL_ARB_texture_buffer_object */ GLenum16 BufferObjectFormat; /** Equivalent Mesa format for BufferObjectFormat. */ mesa_format _BufferObjectFormat; /* TODO: BufferObject->Name should be restored by glPopAttrib(GL_TEXTURE_BIT); */ struct gl_buffer_object *BufferObject; /** GL_ARB_texture_buffer_range */ GLintptr BufferOffset; GLsizeiptr BufferSize; /**< if this is -1, use BufferObject->Size instead */ /** Actual texture images, indexed by [cube face] and [mipmap level] */ struct gl_texture_image *Image[MAX_FACES][MAX_TEXTURE_LEVELS]; /** GL_ARB_bindless_texture */ struct util_dynarray SamplerHandles; struct util_dynarray ImageHandles; /** GL_ARB_sparse_texture */ GLboolean IsSparse; GLint VirtualPageSizeIndex; GLint NumSparseLevels; /** GL_EXT_texture_storage_compression */ GLint CompressionRate; /**< Fixed-rate compression bitrate */ /** GL_EXT_texture_compression_astc_decode_mode */ GLenum16 AstcDecodePrecision; /**< ASTC decoding precision */ /* The texture must include at levels [0..lastLevel] once validated: */ GLuint lastLevel; unsigned Swizzle; unsigned SwizzleGLSL130; unsigned int validated_first_level; unsigned int validated_last_level; /* On validation any active images held in main memory or in other * textures will be copied to this texture and the old storage freed. */ struct pipe_resource *pt; /* Protect modifications of the sampler_views array */ simple_mtx_t validate_mutex; /* Container of sampler views (one per context) attached to this texture * object. Created lazily on first binding in context. * * Purely read-only accesses to the current context's own sampler view * require no locking. Another thread may simultaneously replace the * container object in order to grow the array, but the old container will * be kept alive. * * Writing to the container (even for modifying the current context's own * sampler view) always requires taking the validate_mutex to protect against * concurrent container switches. * * NULL'ing another context's sampler view is allowed only while * implementing an API call that modifies the texture: an application which * calls those while simultaneously reading the texture in another context * invokes undefined behavior. (TODO: a dubious violation of this rule is * st_finalize_texture, which is a lazy operation that corresponds to a * texture modification.) */ struct st_sampler_views *sampler_views; /* Old sampler views container objects that have not been freed yet because * other threads/contexts may still be reading from them. */ struct st_sampler_views *sampler_views_old; /* True if this texture comes from the window system. Such a texture * cannot be reallocated and the format can only be changed with a sampler * view or a surface. */ GLboolean surface_based; /* If surface_based is true, this format should be used for all sampler * views and surfaces instead of pt->format. */ enum pipe_format surface_format; /* If surface_based is true and surface_format is a YUV format, these * settings should be used to convert from YUV to RGB. */ enum gl_texture_yuv_color_space yuv_color_space; bool yuv_full_range; /* When non-negative, samplers should use this level instead of the level * range specified by the GL state. * * This is used for EGL images, which may correspond to a single level out * of an imported pipe_resources with multiple mip levels. */ int level_override; /* When non-negative, samplers should use this layer instead of the one * specified by the GL state. * * This is used for EGL images and VDPAU interop, where imported * pipe_resources may be cube, 3D, or array textures (containing layers * with different fields in the case of VDPAU) even though the GL state * describes one non-array texture per field. */ int layer_override; /** * Set when the texture images of this texture object might not all be in * the pipe_resource *pt above. */ bool needs_validation; }; /** Up to four combiner sources are possible with GL_NV_texture_env_combine4 */ #define MAX_COMBINER_TERMS 4 /** * Texture combine environment state. */ struct gl_tex_env_combine_state { GLenum16 ModeRGB; /**< GL_REPLACE, GL_DECAL, GL_ADD, etc. */ GLenum16 ModeA; /**< GL_REPLACE, GL_DECAL, GL_ADD, etc. */ /** Source terms: GL_PRIMARY_COLOR, GL_TEXTURE, etc */ GLenum16 SourceRGB[MAX_COMBINER_TERMS]; GLenum16 SourceA[MAX_COMBINER_TERMS]; /** Source operands: GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, etc */ GLenum16 OperandRGB[MAX_COMBINER_TERMS]; GLenum16 OperandA[MAX_COMBINER_TERMS]; GLubyte ScaleShiftRGB; /**< 0, 1 or 2 */ GLubyte ScaleShiftA; /**< 0, 1 or 2 */ GLubyte _NumArgsRGB; /**< Number of inputs used for the RGB combiner */ GLubyte _NumArgsA; /**< Number of inputs used for the A combiner */ }; /** Compressed TexEnv effective Combine mode */ enum gl_tex_env_mode { TEXENV_MODE_REPLACE, /* r = a0 */ TEXENV_MODE_MODULATE, /* r = a0 * a1 */ TEXENV_MODE_ADD, /* r = a0 + a1 */ TEXENV_MODE_ADD_SIGNED, /* r = a0 + a1 - 0.5 */ TEXENV_MODE_INTERPOLATE, /* r = a0 * a2 + a1 * (1 - a2) */ TEXENV_MODE_SUBTRACT, /* r = a0 - a1 */ TEXENV_MODE_DOT3_RGB, /* r = a0 . a1 */ TEXENV_MODE_DOT3_RGB_EXT, /* r = a0 . a1 */ TEXENV_MODE_DOT3_RGBA, /* r = a0 . a1 */ TEXENV_MODE_DOT3_RGBA_EXT, /* r = a0 . a1 */ TEXENV_MODE_MODULATE_ADD_ATI, /* r = a0 * a2 + a1 */ TEXENV_MODE_MODULATE_SIGNED_ADD_ATI, /* r = a0 * a2 + a1 - 0.5 */ TEXENV_MODE_MODULATE_SUBTRACT_ATI, /* r = a0 * a2 - a1 */ TEXENV_MODE_ADD_PRODUCTS_NV, /* r = a0 * a1 + a2 * a3 */ TEXENV_MODE_ADD_PRODUCTS_SIGNED_NV, /* r = a0 * a1 + a2 * a3 - 0.5 */ }; /** Compressed TexEnv Combine source */ enum gl_tex_env_source { TEXENV_SRC_TEXTURE0, TEXENV_SRC_TEXTURE1, TEXENV_SRC_TEXTURE2, TEXENV_SRC_TEXTURE3, TEXENV_SRC_TEXTURE4, TEXENV_SRC_TEXTURE5, TEXENV_SRC_TEXTURE6, TEXENV_SRC_TEXTURE7, TEXENV_SRC_TEXTURE, TEXENV_SRC_PREVIOUS, TEXENV_SRC_PRIMARY_COLOR, TEXENV_SRC_CONSTANT, TEXENV_SRC_ZERO, TEXENV_SRC_ONE, }; /** Compressed TexEnv Combine operand */ enum gl_tex_env_operand { TEXENV_OPR_COLOR, TEXENV_OPR_ONE_MINUS_COLOR, TEXENV_OPR_ALPHA, TEXENV_OPR_ONE_MINUS_ALPHA, }; /** Compressed TexEnv Combine argument */ struct gl_tex_env_argument { #ifdef __GNUC__ __extension__ uint8_t Source:4; /**< TEXENV_SRC_x */ __extension__ uint8_t Operand:2; /**< TEXENV_OPR_x */ #else # 1146 "../mesa/src/mesa/main/mtypes.h" uint8_t Source; /**< SRC_x */ uint8_t Operand; /**< OPR_x */ #endif # 1149 "../mesa/src/mesa/main/mtypes.h" }; /*** * Compressed TexEnv Combine state. */ struct gl_tex_env_combine_packed { uint32_t ModeRGB:4; /**< Effective mode for RGB as 4 bits */ uint32_t ModeA:4; /**< Effective mode for RGB as 4 bits */ uint32_t ScaleShiftRGB:2; /**< 0, 1 or 2 */ uint32_t ScaleShiftA:2; /**< 0, 1 or 2 */ uint32_t NumArgsRGB:3; /**< Number of inputs used for the RGB combiner */ uint32_t NumArgsA:3; /**< Number of inputs used for the A combiner */ /** Source arguments in a packed manner */ struct gl_tex_env_argument ArgsRGB[MAX_COMBINER_TERMS]; struct gl_tex_env_argument ArgsA[MAX_COMBINER_TERMS]; }; /** * TexGenEnabled flags. */ /*@{*/ #define S_BIT 1 #define T_BIT 2 #define R_BIT 4 #define Q_BIT 8 #define STR_BITS (S_BIT | T_BIT | R_BIT) /*@}*/ /** * Bit flag versions of the corresponding GL_ constants. */ /*@{*/ #define TEXGEN_SPHERE_MAP 0x1 #define TEXGEN_OBJ_LINEAR 0x2 #define TEXGEN_EYE_LINEAR 0x4 #define TEXGEN_REFLECTION_MAP_NV 0x8 #define TEXGEN_NORMAL_MAP_NV 0x10 #define TEXGEN_NEED_NORMALS (TEXGEN_SPHERE_MAP | \ TEXGEN_REFLECTION_MAP_NV | \ TEXGEN_NORMAL_MAP_NV) #define TEXGEN_NEED_EYE_COORD (TEXGEN_SPHERE_MAP | \ TEXGEN_REFLECTION_MAP_NV | \ TEXGEN_NORMAL_MAP_NV | \ TEXGEN_EYE_LINEAR) /*@}*/ /** Tex-gen enabled for texture unit? */ #define ENABLE_TEXGEN(unit) (1 << (unit)) /** Non-identity texture matrix for texture unit? */ #define ENABLE_TEXMAT(unit) (1 << (unit)) /** * Texture coord generation state. */ struct gl_texgen { GLenum16 Mode; /**< GL_EYE_LINEAR, GL_SPHERE_MAP, etc */ GLbitfield8 _ModeBit; /**< TEXGEN_x bit corresponding to Mode */ }; /** * Sampler-related subset of a texture unit, like current texture objects. */ struct gl_texture_unit { GLfloat LodBias; /**< for biasing mipmap levels */ float LodBiasQuantized; /**< to reduce pipe_sampler_state variants */ /** Texture targets that have a non-default texture bound */ GLbitfield _BoundTextures; /** Current sampler object (GL_ARB_sampler_objects) */ struct gl_sampler_object *Sampler; /** Current texture object pointers */ struct gl_texture_object *CurrentTex[NUM_TEXTURE_TARGETS]; /** Points to highest priority, complete and enabled texture object */ struct gl_texture_object *_Current; }; enum { GEN_S, GEN_T, GEN_R, GEN_Q, NUM_GEN, }; /** * Fixed-function-related subset of a texture unit, like enable flags, * texture environment/function/combiners, and texgen state. */ struct gl_fixedfunc_texture_unit { GLbitfield16 Enabled; /**< bitmask of TEXTURE_*_BIT flags */ GLenum16 EnvMode; /**< GL_MODULATE, GL_DECAL, GL_BLEND, etc. */ GLclampf EnvColor[4]; GLfloat EnvColorUnclamped[4]; struct gl_texgen GenS; struct gl_texgen GenT; struct gl_texgen GenR; struct gl_texgen GenQ; GLfloat EyePlane[NUM_GEN][4]; GLfloat ObjectPlane[NUM_GEN][4]; GLbitfield8 TexGenEnabled; /**< Bitwise-OR of [STRQ]_BIT values */ GLbitfield8 _GenFlags; /**< Bitwise-OR of Gen[STRQ]._ModeBit */ /** * \name GL_EXT_texture_env_combine */ struct gl_tex_env_combine_state Combine; /** * Derived state based on \c EnvMode and the \c BaseFormat of the * currently enabled texture. */ struct gl_tex_env_combine_state _EnvMode; /** Current compressed TexEnv & Combine state */ struct gl_tex_env_combine_packed _CurrentCombinePacked; /** * Currently enabled combiner state. This will point to either * \c Combine or \c _EnvMode. */ struct gl_tex_env_combine_state *_CurrentCombine; }; /** * Texture attribute group (GL_TEXTURE_BIT). */ struct gl_texture_attrib { struct gl_texture_object *ProxyTex[NUM_TEXTURE_TARGETS]; /** GL_ARB_texture_buffer_object */ struct gl_buffer_object *BufferObject; GLuint CurrentUnit; /**< GL_ACTIVE_TEXTURE */ /** Texture coord units/sets used for fragment texturing */ GLbitfield8 _EnabledCoordUnits; /** Texture coord units that have texgen enabled */ GLbitfield8 _TexGenEnabled; /** Texture coord units that have non-identity matrices */ GLbitfield8 _TexMatEnabled; /** Bitwise-OR of all Texture.Unit[i]._GenFlags */ GLbitfield8 _GenFlags; /** Largest index of a texture unit with _Current != NULL. */ GLshort _MaxEnabledTexImageUnit; /** Largest index + 1 of texture units that have had any CurrentTex set. */ GLubyte NumCurrentTexUsed; /** GL_ARB_seamless_cubemap */ GLboolean CubeMapSeamless; GLshort NumSamplersWithClamp; struct gl_texture_unit Unit[MAX_COMBINED_TEXTURE_IMAGE_UNITS]; struct gl_fixedfunc_texture_unit FixedFuncUnit[MAX_TEXTURE_COORD_UNITS]; }; /** * Data structure representing a single clip plane (e.g. one of the elements * of the ctx->Transform.EyeUserPlane or ctx->Transform._ClipUserPlane array). */ typedef GLfloat gl_clip_plane[4]; /** * Transformation attribute group (GL_TRANSFORM_BIT). */ struct gl_transform_attrib { GLenum16 MatrixMode; /**< Matrix mode */ gl_clip_plane EyeUserPlane[MAX_CLIP_PLANES]; /**< User clip planes */ gl_clip_plane _ClipUserPlane[MAX_CLIP_PLANES]; /**< derived */ GLbitfield ClipPlanesEnabled; /**< on/off bitmask */ GLboolean Normalize; /**< Normalize all normals? */ GLboolean RescaleNormals; /**< GL_EXT_rescale_normal */ GLboolean RasterPositionUnclipped; /**< GL_IBM_rasterpos_clip */ GLboolean DepthClampNear; /**< GL_AMD_depth_clamp_separate */ GLboolean DepthClampFar; /**< GL_AMD_depth_clamp_separate */ /** GL_ARB_clip_control */ GLenum16 ClipOrigin; /**< GL_LOWER_LEFT or GL_UPPER_LEFT */ GLenum16 ClipDepthMode;/**< GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE */ }; /** * Viewport attribute group (GL_VIEWPORT_BIT). */ struct gl_viewport_attrib { GLfloat X, Y; /**< position */ GLfloat Width, Height; /**< size */ GLfloat Near, Far; /**< Depth buffer range */ /**< GL_NV_viewport_swizzle */ GLenum16 SwizzleX, SwizzleY, SwizzleZ, SwizzleW; }; /** * Fields describing a mapped buffer range. */ struct gl_buffer_mapping { GLbitfield AccessFlags; /**< Mask of GL_MAP_x_BIT flags */ GLvoid *Pointer; /**< User-space address of mapping */ GLintptr Offset; /**< Mapped offset */ GLsizeiptr Length; /**< Mapped length */ }; /** * Usages we've seen for a buffer object. */ typedef enum { USAGE_UNIFORM_BUFFER = 0x1, USAGE_TEXTURE_BUFFER = 0x2, USAGE_ATOMIC_COUNTER_BUFFER = 0x4, USAGE_SHADER_STORAGE_BUFFER = 0x8, USAGE_TRANSFORM_FEEDBACK_BUFFER = 0x10, USAGE_PIXEL_PACK_BUFFER = 0x20, USAGE_ARRAY_BUFFER = 0x40, USAGE_DISABLE_MINMAX_CACHE = 0x100, } gl_buffer_usage; /** * GL_ARB_vertex/pixel_buffer_object buffer object */ struct gl_buffer_object { GLint RefCount; GLuint Name; /** * The context that holds a global buffer reference for the lifetime of * the GL buffer ID to skip refcounting for all its private bind points. * Other contexts must still do refcounting as usual. Shared binding points * like TBO within gl_texture_object are always refcounted. * * Implementation details: * - Only the context that creates the buffer ("creating context") skips * refcounting. * - Only buffers represented by an OpenGL buffer ID skip refcounting. * Other internal buffers don't. (glthread requires refcounting for * internal buffers, etc.) * - glDeleteBuffers removes the global buffer reference and increments * RefCount for all private bind points where the deleted buffer is bound * (e.g. unbound VAOs that are not changed by glDeleteBuffers), * effectively enabling refcounting for that context. This is the main * point where the global buffer reference is removed. * - glDeleteBuffers called from a different context adds the buffer into * the ZombieBufferObjects list, which is a way to notify the creating * context that it should remove its global buffer reference to allow * freeing the buffer. The creating context walks over that list in a few * GL functions. * - xxxDestroyContext walks over all buffers and removes its global * reference from those buffers that it created. */ struct gl_context *Ctx; GLint CtxRefCount; /**< Non-atomic references held by Ctx. */ gl_buffer_usage UsageHistory; /**< How has this buffer been used so far? */ struct pipe_resource *buffer; struct gl_context *private_refcount_ctx; /* This mechanism allows passing buffer references to the driver without * using atomics to increase the reference count. * * This private refcount can be decremented without atomics but only one * context (ctx above) can use this counter to be thread-safe. * * This number is atomically added to buffer->reference.count at * initialization. If it's never used, the same number is atomically * subtracted from buffer->reference.count before destruction. If this * number is decremented, we can pass that reference to the driver without * touching reference.count. At buffer destruction we only subtract * the number of references we did not return. This can possibly turn * a million atomic increments into 1 add and 1 subtract atomic op. */ int private_refcount; GLbitfield StorageFlags; /**< GL_MAP_PERSISTENT_BIT, etc. */ /** Memoization of min/max index computations for static index buffers */ unsigned MinMaxCacheHitIndices; unsigned MinMaxCacheMissIndices; struct hash_table *MinMaxCache; simple_mtx_t MinMaxCacheMutex; bool MinMaxCacheDirty:1; bool DeletePending:1; /**< true if buffer object is removed from the hash */ bool Immutable:1; /**< GL_ARB_buffer_storage */ bool HandleAllocated:1; /**< GL_ARB_bindless_texture */ bool GLThreadInternal:1; /**< Created by glthread. */ GLenum16 Usage; /**< GL_STREAM_DRAW_ARB, GL_STREAM_READ_ARB, etc. */ GLchar *Label; /**< GL_KHR_debug */ GLsizeiptrARB Size; /**< Size of buffer storage in bytes */ /** Counters used for buffer usage warnings */ GLuint NumSubDataCalls; GLuint NumMapBufferWriteCalls; struct gl_buffer_mapping Mappings[MAP_COUNT]; struct pipe_transfer *transfer[MAP_COUNT]; }; /** * Enum for defining the mapping for the position/generic0 attribute. * * Do not change the order of the values as these are used as * array indices. */ typedef enum { ATTRIBUTE_MAP_MODE_IDENTITY, /**< 1:1 mapping */ ATTRIBUTE_MAP_MODE_POSITION, /**< get position and generic0 from position */ ATTRIBUTE_MAP_MODE_GENERIC0, /**< get position and generic0 from generic0 */ ATTRIBUTE_MAP_MODE_MAX /**< for sizing arrays */ } gl_attribute_map_mode; /** * Attributes to describe a vertex array. * * Contains the size, type, format and normalization flag, * along with the index of a vertex buffer binding point. * * Note that the Stride field corresponds to VERTEX_ATTRIB_ARRAY_STRIDE * and is only present for backwards compatibility reasons. * Rendering always uses VERTEX_BINDING_STRIDE. * The gl*Pointer() functions will set VERTEX_ATTRIB_ARRAY_STRIDE * and VERTEX_BINDING_STRIDE to the same value, while * glBindVertexBuffer() will only set VERTEX_BINDING_STRIDE. */ struct gl_array_attributes { /** Points to client array data. Not used when a VBO is bound */ const GLubyte *Ptr; /** Offset of the first element relative to the binding offset */ GLuint RelativeOffset; /** Vertex format */ struct gl_vertex_format Format; /** Stride as specified with gl*Pointer() */ GLshort Stride; /** Index into gl_vertex_array_object::BufferBinding[] array */ GLubyte BufferBindingIndex; /** * Derived effective buffer binding index * * Index into the gl_vertex_buffer_binding array of the vao. * Similar to BufferBindingIndex, but with the mapping of the * position/generic0 attributes applied and with identical * gl_vertex_buffer_binding entries collapsed to a single * entry within the vao. * * The value is valid past calling _mesa_update_vao_derived_arrays. * Note that _mesa_update_vao_derived_arrays is called when binding * the VAO to Array._DrawVAO. */ GLubyte _EffBufferBindingIndex; /** * Derived effective relative offset. * * Relative offset to the effective buffers offset in * gl_vertex_buffer_binding::_EffOffset. * * The value is valid past calling _mesa_update_vao_derived_arrays. * Note that _mesa_update_vao_derived_arrays is called when binding * the VAO to Array._DrawVAO. */ GLushort _EffRelativeOffset; }; /** * This describes the buffer object used for a vertex array (or * multiple vertex arrays). If BufferObj points to the default/null * buffer object, then the vertex array lives in user memory and not a VBO. */ struct gl_vertex_buffer_binding { GLintptr Offset; /**< User-specified offset */ GLsizei Stride; /**< User-specified stride */ GLuint InstanceDivisor; /**< GL_ARB_instanced_arrays */ struct gl_buffer_object *BufferObj; /**< GL_ARB_vertex_buffer_object */ GLbitfield _BoundArrays; /**< Arrays bound to this binding point */ /** * Derived effective bound arrays. * * The effective binding handles enabled arrays past the * position/generic0 attribute mapping and reduces the refered * gl_vertex_buffer_binding entries to a unique subset. * * The value is valid past calling _mesa_update_vao_derived_arrays. * Note that _mesa_update_vao_derived_arrays is called when binding * the VAO to Array._DrawVAO. */ GLbitfield _EffBoundArrays; /** * Derived offset. * * The absolute offset to that we can collapse some attributes * to this unique effective binding. * For user space array bindings this contains the smallest pointer value * in the bound and interleaved arrays. * For VBO bindings this contains an offset that lets the attributes * _EffRelativeOffset stay positive and in bounds with * Const.MaxVertexAttribRelativeOffset * * The value is valid past calling _mesa_update_vao_derived_arrays. * Note that _mesa_update_vao_derived_arrays is called when binding * the VAO to Array._DrawVAO. */ GLintptr _EffOffset; }; /** * A representation of "Vertex Array Objects" (VAOs) from OpenGL 3.1+ / * the GL_ARB_vertex_array_object extension. */ struct gl_vertex_array_object { /** Name of the VAO as received from glGenVertexArray. */ GLuint Name; GLint RefCount; GLchar *Label; /**< GL_KHR_debug */ /** * Has this array object been bound? */ GLboolean EverBound; /** * Marked to true if the object is shared between contexts and immutable. * Then reference counting is done using atomics and thread safe. * Is used for dlist VAOs. */ bool SharedAndImmutable; /** Vertex attribute arrays */ struct gl_array_attributes VertexAttrib[VERT_ATTRIB_MAX]; /** Vertex buffer bindings */ struct gl_vertex_buffer_binding BufferBinding[VERT_ATTRIB_MAX]; /** Mask indicating which vertex arrays have vertex buffer associated. */ GLbitfield VertexAttribBufferMask; /** Mask indicating which vertex arrays have a non-zero instance divisor. */ GLbitfield NonZeroDivisorMask; /** Mask of VERT_BIT_* values indicating which arrays are enabled */ GLbitfield Enabled; /** * Mask of vertex attributes that have: * VertexAttrib[i].BufferBindingIndex != i. */ GLbitfield NonIdentityBufferAttribMapping; /** * Mask indicating which VertexAttrib and BufferBinding structures have * been changed since the VAO creation. No bit is ever cleared to 0 by * state updates. Setting to the default state doesn't update this. * (e.g. unbinding) Setting the derived state (_* fields) doesn't update * this either. */ GLbitfield NonDefaultStateMask; /** Denotes the way the position/generic0 attribute is mapped */ gl_attribute_map_mode _AttributeMapMode; /** "Enabled" with the position/generic0 attribute aliasing resolved */ GLbitfield _EnabledWithMapMode; /** The index buffer (also known as the element array buffer in OpenGL). */ struct gl_buffer_object *IndexBufferObj; }; /** * Vertex array state */ struct gl_array_attrib { /** Currently bound array object. */ struct gl_vertex_array_object *VAO; /** The default vertex array object */ struct gl_vertex_array_object *DefaultVAO; /** The last VAO accessed by a DSA function */ struct gl_vertex_array_object *LastLookedUpVAO; /** These contents are copied to newly created VAOs. */ struct gl_vertex_array_object DefaultVAOState; /** Array objects (GL_ARB_vertex_array_object) */ struct _mesa_HashTable Objects; GLint ActiveTexture; /**< Client Active Texture */ GLuint LockFirst; /**< GL_EXT_compiled_vertex_array */ GLuint LockCount; /**< GL_EXT_compiled_vertex_array */ /** * \name Primitive restart controls * * Primitive restart is enabled if either \c PrimitiveRestart or * \c PrimitiveRestartFixedIndex is set. */ /*@{*/ GLboolean PrimitiveRestart; GLboolean PrimitiveRestartFixedIndex; GLboolean _PrimitiveRestart[3]; /**< Enable indexed by index_size_shift. */ GLuint RestartIndex; GLuint _RestartIndex[3]; /**< Restart indices indexed by index_size_shift. */ /*@}*/ /* GL_ARB_vertex_buffer_object */ struct gl_buffer_object *ArrayBufferObj; /** * Vertex array object that is used with the currently active draw command. * The _DrawVAO is either set to the currently bound VAO for array type * draws or to internal VAO's set up by the vbo module to execute immediate * mode or display list draws. */ struct gl_vertex_array_object *_DrawVAO; /** * Whether per-vertex edge flags are enabled and should be processed by * the vertex shader. */ bool _PerVertexEdgeFlagsEnabled; /** * Whether all edge flags are false, causing all points and lines generated * by polygon mode to be not drawn. (i.e. culled) */ bool _PolygonModeAlwaysCulls; /** * If gallium vertex buffers are dirty, this flag indicates whether gallium * vertex elements are dirty too. If this is false, GL states corresponding * to vertex elements have not been changed. Thus, this affects what will * happen when ST_NEW_VERTEX_ARRAYS is set. * * The driver should clear this when it's done. */ bool NewVertexElements; /** Legal array datatypes and the API for which they have been computed */ GLbitfield LegalTypesMask; gl_api LegalTypesMaskAPI; }; /** * Feedback buffer state */ struct gl_feedback { GLenum16 Type; GLbitfield _Mask; /**< FB_* bits */ GLfloat *Buffer; GLuint BufferSize; GLuint Count; }; /** * Selection buffer state */ struct gl_selection { GLuint *Buffer; /**< selection buffer */ GLuint BufferSize; /**< size of the selection buffer */ GLuint BufferCount; /**< number of values in the selection buffer */ GLuint Hits; /**< number of records in the selection buffer */ GLuint NameStackDepth; /**< name stack depth */ GLuint NameStack[MAX_NAME_STACK_DEPTH]; /**< name stack */ GLboolean HitFlag; /**< hit flag */ GLfloat HitMinZ; /**< minimum hit depth */ GLfloat HitMaxZ; /**< maximum hit depth */ /* HW GL_SELECT */ void *SaveBuffer; /**< array holds multi stack data */ GLuint SaveBufferTail; /**< offset to SaveBuffer's tail */ GLuint SavedStackNum; /**< number of saved stacks */ GLboolean ResultUsed; /**< whether any draw used result buffer */ GLuint ResultOffset; /**< offset into result buffer */ struct gl_buffer_object *Result; /**< result buffer */ }; /** * 1-D Evaluator control points */ struct gl_1d_map { GLuint Order; /**< Number of control points */ GLfloat u1, u2, du; /**< u1, u2, 1.0/(u2-u1) */ GLfloat *Points; /**< Points to contiguous control points */ }; /** * 2-D Evaluator control points */ struct gl_2d_map { GLuint Uorder; /**< Number of control points in U dimension */ GLuint Vorder; /**< Number of control points in V dimension */ GLfloat u1, u2, du; GLfloat v1, v2, dv; GLfloat *Points; /**< Points to contiguous control points */ }; /** * All evaluator control point state */ struct gl_evaluators { /** * \name 1-D maps */ /*@{*/ struct gl_1d_map Map1Vertex3; struct gl_1d_map Map1Vertex4; struct gl_1d_map Map1Index; struct gl_1d_map Map1Color4; struct gl_1d_map Map1Normal; struct gl_1d_map Map1Texture1; struct gl_1d_map Map1Texture2; struct gl_1d_map Map1Texture3; struct gl_1d_map Map1Texture4; /*@}*/ /** * \name 2-D maps */ /*@{*/ struct gl_2d_map Map2Vertex3; struct gl_2d_map Map2Vertex4; struct gl_2d_map Map2Index; struct gl_2d_map Map2Color4; struct gl_2d_map Map2Normal; struct gl_2d_map Map2Texture1; struct gl_2d_map Map2Texture2; struct gl_2d_map Map2Texture3; struct gl_2d_map Map2Texture4; /*@}*/ }; /** * Transform feedback object state */ struct gl_transform_feedback_object { GLuint Name; /**< AKA the object ID */ GLint RefCount; GLchar *Label; /**< GL_KHR_debug */ GLboolean Active; /**< Is transform feedback enabled? */ GLboolean Paused; /**< Is transform feedback paused? */ GLboolean EndedAnytime; /**< Has EndTransformFeedback been called at least once? */ GLboolean EverBound; /**< Has this object been bound? */ /** * Primitive mode from glBeginTransformFeedback. * * The spec doesn't list the primitive mode as part of transform feedback * objects, but it has to be because when transform feedback is resumed, * all draws must be validated against the primitive type that transform * feedback began with instead of whatever last transform feedback object * happened to be used. */ GLenum16 Mode; /** * GLES: if Active is true, remaining number of primitives which can be * rendered without overflow. This is necessary to track because GLES * requires us to generate INVALID_OPERATION if a call to glDrawArrays or * glDrawArraysInstanced would overflow transform feedback buffers. * Undefined if Active is false. * * Not tracked for desktop GL since it's unnecessary. */ unsigned GlesRemainingPrims; /** * The program active when BeginTransformFeedback() was called. * When active and unpaused, this equals ctx->Shader.CurrentProgram[stage], * where stage is the pipeline stage that is the source of data for * transform feedback. */ struct gl_program *program; /** The feedback buffers */ GLuint BufferNames[MAX_FEEDBACK_BUFFERS]; struct gl_buffer_object *Buffers[MAX_FEEDBACK_BUFFERS]; /** Start of feedback data in dest buffer */ GLintptr Offset[MAX_FEEDBACK_BUFFERS]; /** * Max data to put into dest buffer (in bytes). Computed based on * RequestedSize and the actual size of the buffer. */ GLsizeiptr Size[MAX_FEEDBACK_BUFFERS]; /** * Size that was specified when the buffer was bound. If the buffer was * bound with glBindBufferBase() or glBindBufferOffsetEXT(), this value is * zero. */ GLsizeiptr RequestedSize[MAX_FEEDBACK_BUFFERS]; unsigned num_targets; struct pipe_stream_output_target *targets[PIPE_MAX_SO_BUFFERS]; /* This encapsulates the count that can be used as a source for draw_vbo. * It contains stream output targets from the last call of * EndTransformFeedback for each stream. */ struct pipe_stream_output_target *draw_count[MAX_VERTEX_STREAMS]; }; /** * Context state for transform feedback. */ struct gl_transform_feedback_state { GLenum16 Mode; /**< GL_POINTS, GL_LINES or GL_TRIANGLES */ /** The general binding point (GL_TRANSFORM_FEEDBACK_BUFFER) */ struct gl_buffer_object *CurrentBuffer; /** The table of all transform feedback objects */ struct _mesa_HashTable Objects; /** The current xform-fb object (GL_TRANSFORM_FEEDBACK_BINDING) */ struct gl_transform_feedback_object *CurrentObject; /** The default xform-fb object (Name==0) */ struct gl_transform_feedback_object *DefaultObject; }; /** * A "performance monitor" as described in AMD_performance_monitor. */ struct gl_perf_monitor_object { GLuint Name; /** True if the monitor is currently active (Begin called but not End). */ GLboolean Active; /** * True if the monitor has ended. * * This is distinct from !Active because it may never have began. */ GLboolean Ended; /** * A list of groups with currently active counters. * * ActiveGroups[g] == n if there are n counters active from group 'g'. */ unsigned *ActiveGroups; /** * An array of bitsets, subscripted by group ID, then indexed by counter ID. * * Checking whether counter 'c' in group 'g' is active can be done via: * * BITSET_TEST(ActiveCounters[g], c) */ GLuint **ActiveCounters; unsigned num_active_counters; struct gl_perf_counter_object { struct pipe_query *query; int id; int group_id; unsigned batch_index; } *active_counters; struct pipe_query *batch_query; union pipe_query_result *batch_result; }; union gl_perf_monitor_counter_value { float f; uint64_t u64; uint32_t u32; }; struct gl_perf_monitor_counter { /** Human readable name for the counter. */ const char *Name; /** * Data type of the counter. Valid values are FLOAT, UNSIGNED_INT, * UNSIGNED_INT64_AMD, and PERCENTAGE_AMD. */ GLenum16 Type; /** Minimum counter value. */ union gl_perf_monitor_counter_value Minimum; /** Maximum counter value. */ union gl_perf_monitor_counter_value Maximum; unsigned query_type; unsigned flags; }; struct gl_perf_monitor_group { /** Human readable name for the group. */ const char *Name; /** * Maximum number of counters in this group which can be active at the * same time. */ GLuint MaxActiveCounters; /** Array of counters within this group. */ const struct gl_perf_monitor_counter *Counters; GLuint NumCounters; bool has_batch; }; /** * A query object instance as described in INTEL_performance_query. * * NB: We want to keep this and the corresponding backend structure * relatively lean considering that applications may expect to * allocate enough objects to be able to query around all draw calls * in a frame. */ struct gl_perf_query_object { GLuint Id; /**< hash table ID/name */ unsigned Used:1; /**< has been used for 1 or more queries */ unsigned Active:1; /**< inside Begin/EndPerfQuery */ unsigned Ready:1; /**< result is ready? */ }; /** * Context state for AMD_performance_monitor. */ struct gl_perf_monitor_state { /** Array of performance monitor groups (indexed by group ID) */ const struct gl_perf_monitor_group *Groups; GLuint NumGroups; /** The table of all performance monitors. */ struct _mesa_HashTable Monitors; }; /** * Context state for INTEL_performance_query. */ struct gl_perf_query_state { struct _mesa_HashTable Objects; /**< The table of all performance query objects */ }; /** * State common to vertex and fragment programs. */ struct gl_program_state { GLint ErrorPos; /* GL_PROGRAM_ERROR_POSITION_ARB/NV */ const char *ErrorString; /* GL_PROGRAM_ERROR_STRING_ARB/NV */ }; /** * Context state for vertex programs. */ struct gl_vertex_program_state { GLboolean Enabled; /**< User-set GL_VERTEX_PROGRAM_ARB/NV flag */ GLboolean PointSizeEnabled; /**< GL_VERTEX_PROGRAM_POINT_SIZE_ARB/NV */ GLboolean TwoSideEnabled; /**< GL_VERTEX_PROGRAM_TWO_SIDE_ARB/NV */ /** Whether the fixed-func program is being used right now. */ GLboolean _UsesTnlProgram; struct gl_program *Current; /**< User-bound vertex program */ /** Currently enabled and valid vertex program (including internal * programs, user-defined vertex programs and GLSL vertex shaders). * This is the program we must use when rendering. */ struct gl_program *_Current; GLfloat Parameters[MAX_PROGRAM_ENV_PARAMS][4]; /**< Env params */ /** Program to emulate fixed-function T&L (see above) */ struct gl_program *_TnlProgram; /** Cache of fixed-function programs */ struct gl_program_cache *Cache; GLboolean _Overriden; bool _VPModeOptimizesConstantAttribs; /** * If we have a vertex program, a TNL program or no program at all. * Note that this value should be kept up to date all the time, * nevertheless its correctness is asserted in _mesa_update_state. * The reason is to avoid calling _mesa_update_state twice we need * this value on draw *before* actually calling _mesa_update_state. * Also it should need to get recomputed only on changes to the * vertex program which are heavyweight already. */ gl_vertex_processing_mode _VPMode; GLbitfield _VaryingInputs; /**< mask of VERT_BIT_* flags */ GLbitfield _VPModeInputFilter; }; /** * Context state for tessellation control programs. */ struct gl_tess_ctrl_program_state { /** Currently bound and valid shader. */ struct gl_program *_Current; GLint patch_vertices; GLfloat patch_default_outer_level[4]; GLfloat patch_default_inner_level[2]; }; /** * Context state for tessellation evaluation programs. */ struct gl_tess_eval_program_state { /** Currently bound and valid shader. */ struct gl_program *_Current; }; /** * Context state for geometry programs. */ struct gl_geometry_program_state { /** * Currently enabled and valid program (including internal programs * and compiled shader programs). */ struct gl_program *_Current; }; /** * Context state for fragment programs. */ struct gl_fragment_program_state { GLboolean Enabled; /**< User-set fragment program enable flag */ /** Whether the fixed-func program is being used right now. */ GLboolean _UsesTexEnvProgram; struct gl_program *Current; /**< User-bound fragment program */ /** * Currently enabled and valid fragment program (including internal * programs, user-defined fragment programs and GLSL fragment shaders). * This is the program we must use when rendering. */ struct gl_program *_Current; GLfloat Parameters[MAX_PROGRAM_ENV_PARAMS][4]; /**< Env params */ /** Program to emulate fixed-function texture env/combine (see above) */ struct gl_program *_TexEnvProgram; /** Cache of fixed-function programs */ struct gl_program_cache *Cache; }; /** * Context state for compute programs. */ struct gl_compute_program_state { /** Currently enabled and valid program (including internal programs * and compiled shader programs). */ struct gl_program *_Current; }; /** * ATI_fragment_shader runtime state */ struct atifs_instruction; struct atifs_setupinst; /** * ATI fragment shader */ struct ati_fragment_shader { GLuint Id; GLint RefCount; struct atifs_instruction *Instructions[2]; struct atifs_setupinst *SetupInst[2]; GLfloat Constants[8][4]; GLbitfield LocalConstDef; /**< Indicates which constants have been set */ GLubyte numArithInstr[2]; GLubyte regsAssigned[2]; GLubyte NumPasses; /**< 1 or 2 */ /** * Current compile stage: 0 setup pass1, 1 arith pass1, * 2 setup pass2, 3 arith pass2. */ GLubyte cur_pass; GLubyte last_optype; GLboolean interpinp1; GLboolean isValid; /** * Array of 2 bit values for each tex unit to remember whether * STR or STQ swizzle was used */ GLuint swizzlerq; struct gl_program *Program; }; /** * Context state for GL_ATI_fragment_shader */ struct gl_ati_fragment_shader_state { GLboolean Enabled; GLboolean Compiling; GLfloat GlobalConstants[8][4]; struct ati_fragment_shader *Current; }; #define GLSL_DUMP 0x1 /**< Dump shaders to stdout */ #define GLSL_LOG 0x2 /**< Write shaders to files */ #define GLSL_UNIFORMS 0x4 /**< Print glUniform calls */ #define GLSL_NOP_VERT 0x8 /**< Force no-op vertex shaders */ #define GLSL_NOP_FRAG 0x10 /**< Force no-op fragment shaders */ #define GLSL_USE_PROG 0x20 /**< Log glUseProgram calls */ #define GLSL_REPORT_ERRORS 0x40 /**< Print compilation errors */ #define GLSL_DUMP_ON_ERROR 0x80 /**< Dump shaders to stderr on compile error */ #define GLSL_CACHE_INFO 0x100 /**< Print debug information about shader cache */ #define GLSL_CACHE_FALLBACK 0x200 /**< Force shader cache fallback paths */ #define GLSL_SOURCE 0x400 /**< Only dump GLSL */ /** * Context state for GLSL vertex/fragment shaders. * Extended to support pipeline object */ struct gl_pipeline_object { /** Name of the pipeline object as received from glGenProgramPipelines. * It would be 0 for shaders without separate shader objects. */ GLuint Name; GLint RefCount; GLchar *Label; /**< GL_KHR_debug */ /** * Programs used for rendering * * There is a separate program set for each shader stage. */ struct gl_program *CurrentProgram[MESA_SHADER_STAGES]; struct gl_shader_program *ReferencedPrograms[MESA_SHADER_STAGES]; /** * Program used by glUniform calls. * * Explicitly set by \c glUseProgram and \c glActiveProgramEXT. */ struct gl_shader_program *ActiveProgram; GLbitfield Flags; /**< Mask of GLSL_x flags */ GLboolean EverBound; /**< Has the pipeline object been created */ GLboolean Validated; /**< Pipeline Validation status */ GLboolean UserValidated; /**< Validation status initiated by the user */ GLchar *InfoLog; }; /** * Context state for GLSL pipeline shaders. */ struct gl_pipeline_shader_state { /** Currently bound pipeline object. See _mesa_BindProgramPipeline() */ struct gl_pipeline_object *Current; /** Default Object to ensure that _Shader is never NULL */ struct gl_pipeline_object *Default; /** Pipeline objects */ struct _mesa_HashTable Objects; }; /** * Occlusion/timer query object. */ struct gl_query_object { GLenum16 Target; /**< The query target, when active */ GLuint Id; /**< hash table ID/name */ GLchar *Label; /**< GL_KHR_debug */ GLuint64EXT Result; /**< the counter */ GLboolean Active; /**< inside Begin/EndQuery */ GLboolean Ready; /**< result is ready? */ GLboolean EverBound;/**< has query object ever been bound */ GLuint Stream; /**< The stream */ struct pipe_query *pq; /* Begin TIMESTAMP query for GL_TIME_ELAPSED_EXT queries */ struct pipe_query *pq_begin; unsigned type; /**< PIPE_QUERY_x */ }; /** * Context state for query objects. */ struct gl_query_state { struct _mesa_HashTable QueryObjects; struct gl_query_object *CurrentOcclusionObject; /* GL_ARB_occlusion_query */ struct gl_query_object *CurrentTimerObject; /* GL_EXT_timer_query */ /** GL_NV_conditional_render */ struct gl_query_object *CondRenderQuery; /** GL_EXT_transform_feedback */ struct gl_query_object *PrimitivesGenerated[MAX_VERTEX_STREAMS]; struct gl_query_object *PrimitivesWritten[MAX_VERTEX_STREAMS]; /** GL_ARB_transform_feedback_overflow_query */ struct gl_query_object *TransformFeedbackOverflow[MAX_VERTEX_STREAMS]; struct gl_query_object *TransformFeedbackOverflowAny; /** GL_ARB_timer_query */ struct gl_query_object *TimeElapsed; /** GL_ARB_pipeline_statistics_query */ struct gl_query_object *pipeline_stats[MAX_PIPELINE_STATISTICS]; GLenum16 CondRenderMode; }; /** Sync object state */ struct gl_sync_object { GLuint Name; /**< Fence name */ GLint RefCount; /**< Reference count */ GLchar *Label; /**< GL_KHR_debug */ GLboolean DeletePending; /**< Object was deleted while there were still * live references (e.g., sync not yet finished) */ GLenum16 SyncCondition; GLbitfield Flags; /**< Flags passed to glFenceSync */ GLuint StatusFlag:1; /**< Has the sync object been signaled? */ struct pipe_fence_handle *fence; simple_mtx_t mutex; /**< protects "fence" */ }; /** * State which can be shared by multiple contexts: */ struct gl_shared_state { simple_mtx_t Mutex; /**< for thread safety */ GLint RefCount; /**< Reference count */ bool DisplayListsAffectGLThread; /* Whether the next glGen returns the lowest unused GL ID. */ bool ReuseGLNames; struct _mesa_HashTable DisplayList; /**< Display lists hash table */ struct _mesa_HashTable TexObjects; /**< Texture objects hash table */ /** Default texture objects (shared by all texture units) */ struct gl_texture_object *DefaultTex[NUM_TEXTURE_TARGETS]; /** Fallback texture used when a bound texture is incomplete */ struct gl_texture_object *FallbackTex[NUM_TEXTURE_TARGETS][2]; /**< [color, depth] */ /** * \name Thread safety and statechange notification for texture * objects. * * \todo Improve the granularity of locking. */ /*@{*/ simple_mtx_t TexMutex; /**< texobj thread safety */ GLuint TextureStateStamp; /**< state notification for shared tex */ /*@}*/ /** * \name Vertex/geometry/fragment programs */ /*@{*/ struct _mesa_HashTable Programs; /**< All vertex/fragment programs */ struct gl_program *DefaultVertexProgram; struct gl_program *DefaultFragmentProgram; /*@}*/ /* GL_ATI_fragment_shader */ struct _mesa_HashTable ATIShaders; struct ati_fragment_shader *DefaultFragmentShader; struct _mesa_HashTable BufferObjects; /* Buffer objects released by a different context than the one that * created them. Since the creating context holds one global buffer * reference for each buffer it created and skips reference counting, * deleting a buffer by another context can't touch the buffer reference * held by the context that created it. Only the creating context can * remove its global buffer reference. * * This list contains all buffers that were deleted by a different context * than the one that created them. This list should be probed by all * contexts regularly and remove references of those buffers that they own. */ struct set *ZombieBufferObjects; /** Table of both gl_shader and gl_shader_program objects */ struct _mesa_HashTable ShaderObjects; /* GL_EXT_framebuffer_object */ struct _mesa_HashTable RenderBuffers; struct _mesa_HashTable FrameBuffers; /* GL_ARB_sync */ struct set *SyncObjects; /** GL_ARB_sampler_objects */ struct _mesa_HashTable SamplerObjects; /* GL_ARB_bindless_texture */ struct hash_table_u64 *TextureHandles; struct hash_table_u64 *ImageHandles; mtx_t HandlesMutex; /**< For texture/image handles safety */ /* GL_ARB_shading_language_include */ struct shader_includes *ShaderIncludes; /* glCompileShaderInclude expects ShaderIncludes not to change while it is * in progress. */ simple_mtx_t ShaderIncludeMutex; /** EXT_external_objects */ struct _mesa_HashTable MemoryObjects; /** EXT_semaphore */ struct _mesa_HashTable SemaphoreObjects; /** * Whether at least one image has been imported or exported, excluding * the default framebuffer. If this is false, glFlush can be executed * asynchronously because there is no invisible dependency on external * users. */ bool HasExternallySharedImages; /* Small display list storage */ struct { union gl_dlist_node *ptr; struct util_idalloc free_idx; unsigned size; } small_dlist_store; /* Global GLThread state. */ struct { /* The last context that locked global mutexes. */ struct gl_context *LastExecutingCtx; /* The last time LastExecutingCtx started executing after a different * context (the time of multiple active contexts). */ int64_t LastContextSwitchTime; /* The time for which no context can lock global mutexes since * LastContextSwitchTime. */ int64_t NoLockDuration; } GLThread; }; /** * Renderbuffers represent drawing surfaces such as color, depth and/or * stencil. A framebuffer object has a set of renderbuffers. * Drivers will typically derive subclasses of this type. */ struct gl_renderbuffer { GLuint Name; GLchar *Label; /**< GL_KHR_debug */ GLint RefCount; GLuint Width, Height; GLuint Depth; GLboolean AttachedAnytime; /**< TRUE if it was attached to a framebuffer */ GLubyte NumSamples; /**< zero means not multisampled */ GLubyte NumStorageSamples; /**< for AMD_framebuffer_multisample_advanced */ GLenum16 InternalFormat; /**< The user-specified format */ GLenum16 _BaseFormat; /**< Either GL_RGB, GL_RGBA, GL_DEPTH_COMPONENT or GL_STENCIL_INDEX. */ mesa_format Format; /**< The actual renderbuffer memory format */ /** * Pointer to the texture image if this renderbuffer wraps a texture, * otherwise NULL. * * Note that the reference on the gl_texture_object containing this * TexImage is held by the gl_renderbuffer_attachment. */ struct gl_texture_image *TexImage; /** Delete this renderbuffer */ void (*Delete)(struct gl_context *ctx, struct gl_renderbuffer *rb); /** Allocate new storage for this renderbuffer */ GLboolean (*AllocStorage)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height); struct pipe_resource *texture; /* This points to either "surface_linear" or "surface_srgb". * It doesn't hold the pipe_surface reference. The other two do. */ struct pipe_surface *surface; struct pipe_surface *surface_linear; struct pipe_surface *surface_srgb; GLboolean defined; /**< defined contents? */ struct pipe_transfer *transfer; /**< only used when mapping the resource */ /** * Used only when hardware accumulation buffers are not supported. */ bool software; void *data; bool use_readpix_cache; /* Inputs from Driver.RenderTexture, don't use directly. */ bool is_rtt; /**< whether Driver.RenderTexture was called */ unsigned rtt_face, rtt_slice; bool rtt_layered; /**< whether glFramebufferTexture was called */ unsigned rtt_nr_samples; /**< from FramebufferTexture2DMultisampleEXT */ unsigned rtt_numviews; }; /** * A renderbuffer attachment points to either a texture object (and specifies * a mipmap level, cube face or 3D texture slice) or points to a renderbuffer. */ struct gl_renderbuffer_attachment { GLenum16 Type; /**< \c GL_NONE or \c GL_TEXTURE or \c GL_RENDERBUFFER_EXT */ GLboolean Complete; /** * If \c Type is \c GL_RENDERBUFFER_EXT, this stores a pointer to the * application supplied renderbuffer object. */ struct gl_renderbuffer *Renderbuffer; /** * If \c Type is \c GL_TEXTURE, this stores a pointer to the application * supplied texture object. */ struct gl_texture_object *Texture; GLuint TextureLevel; /**< Attached mipmap level. */ GLsizei NumSamples; /**< from FramebufferTexture2DMultisampleEXT */ GLuint CubeMapFace; /**< 0 .. 5, for cube map textures. */ GLuint Zoffset; /**< Slice for 3D textures, or layer for both 1D * and 2D array textures */ GLboolean Layered; GLsizei NumViews; }; /** * A framebuffer is a collection of renderbuffers (color, depth, stencil, etc). * In C++ terms, think of this as a base class from which device drivers * will make derived classes. */ struct gl_framebuffer { simple_mtx_t Mutex; /**< for thread safety */ /** * If zero, this is a window system framebuffer. If non-zero, this * is a FBO framebuffer; note that for some devices (i.e. those with * a natural pixel coordinate system for FBOs that differs from the * OpenGL/Mesa coordinate system), this means that the viewport, * polygon face orientation, and polygon stipple will have to be inverted. */ GLuint Name; GLint RefCount; GLchar *Label; /**< GL_KHR_debug */ GLboolean DeletePending; /** * The framebuffer's visual. Immutable if this is a window system buffer. * Computed from attachments if user-made FBO. */ struct gl_config Visual; /** * Size of frame buffer in pixels. If there are no attachments, then both * of these are 0. */ GLuint Width, Height; /** * In the case that the framebuffer has no attachment (i.e. * GL_ARB_framebuffer_no_attachments) then the geometry of * the framebuffer is specified by the default values. */ struct { GLuint Width, Height, Layers, NumSamples; GLboolean FixedSampleLocations; /* Derived from NumSamples by the driver so that it can choose a valid * value for the hardware. */ GLuint _NumSamples; } DefaultGeometry; /** \name Drawing bounds (Intersection of buffer size and scissor box) * The drawing region is given by [_Xmin, _Xmax) x [_Ymin, _Ymax), * (inclusive for _Xmin and _Ymin while exclusive for _Xmax and _Ymax) */ /*@{*/ GLint _Xmin, _Xmax; GLint _Ymin, _Ymax; /*@}*/ /** \name Derived Z buffer stuff */ /*@{*/ GLuint _DepthMax; /**< Max depth buffer value */ GLfloat _DepthMaxF; /**< Float max depth buffer value */ GLfloat _MRD; /**< minimum resolvable difference in Z values */ /*@}*/ /** One of the GL_FRAMEBUFFER_(IN)COMPLETE_* tokens */ GLenum16 _Status; /** Whether one of Attachment has Type != GL_NONE * NOTE: the values for Width and Height are set to 0 in case of having * no attachments, a backend driver supporting the extension * GL_ARB_framebuffer_no_attachments must check for the flag _HasAttachments * and if GL_FALSE, must then use the values in DefaultGeometry to initialize * its viewport, scissor and so on (in particular _Xmin, _Xmax, _Ymin and * _Ymax do NOT take into account _HasAttachments being false). To get the * geometry of the framebuffer, the helper functions * _mesa_geometric_width(), * _mesa_geometric_height(), * _mesa_geometric_samples() and * _mesa_geometric_layers() * are available that check _HasAttachments. */ bool _HasAttachments; GLbitfield _IntegerBuffers; /**< Which color buffers are integer valued */ GLbitfield _BlendForceAlphaToOne; /**< Which color buffers need blend factor adjustment */ GLbitfield _IsRGB; /**< Which color buffers have an RGB base format? */ GLbitfield _FP32Buffers; /**< Which color buffers are FP32 */ /* ARB_color_buffer_float */ GLboolean _AllColorBuffersFixedPoint; /* no integer, no float */ GLboolean _HasSNormOrFloatColorBuffer; /** * The maximum number of layers in the framebuffer, or 0 if the framebuffer * is not layered. For cube maps and cube map arrays, each cube face * counts as a layer. As the case for Width, Height a backend driver * supporting GL_ARB_framebuffer_no_attachments must use DefaultGeometry * in the case that _HasAttachments is false */ GLuint MaxNumLayers; /** Array of all renderbuffer attachments, indexed by BUFFER_* tokens. */ struct gl_renderbuffer_attachment Attachment[BUFFER_COUNT]; struct pipe_resource *resolve; /**< color resolve attachment */ /* In unextended OpenGL these vars are part of the GL_COLOR_BUFFER * attribute group and GL_PIXEL attribute group, respectively. */ GLenum16 ColorDrawBuffer[MAX_DRAW_BUFFERS]; GLenum16 ColorReadBuffer; /* GL_ARB_sample_locations */ GLfloat *SampleLocationTable; /**< If NULL, no table has been specified */ GLboolean ProgrammableSampleLocations; GLboolean SampleLocationPixelGrid; /** Computed from ColorDraw/ReadBuffer above */ GLuint _NumColorDrawBuffers; gl_buffer_index _ColorDrawBufferIndexes[MAX_DRAW_BUFFERS]; gl_buffer_index _ColorReadBufferIndex; struct gl_renderbuffer *_ColorDrawBuffers[MAX_DRAW_BUFFERS]; struct gl_renderbuffer *_ColorReadBuffer; /* GL_MESA_framebuffer_flip_y */ bool FlipY; /** Delete this framebuffer */ void (*Delete)(struct gl_framebuffer *fb); struct pipe_frontend_drawable *drawable; enum st_attachment_type statts[ST_ATTACHMENT_COUNT]; unsigned num_statts; int32_t stamp; int32_t drawable_stamp; uint32_t drawable_ID; /* list of framebuffer objects */ struct list_head head; }; /** * A stack of matrices (projection, modelview, color, texture, etc). */ struct gl_matrix_stack { GLmatrix *Top; /**< points into Stack */ GLmatrix *Stack; /**< array [MaxDepth] of GLmatrix */ unsigned StackSize; /**< Number of elements in Stack */ GLuint Depth; /**< 0 <= Depth < MaxDepth */ GLuint MaxDepth; /**< size of Stack[] array */ GLuint DirtyFlag; /**< _NEW_MODELVIEW or _NEW_PROJECTION, for example */ bool ChangedSincePush; }; /** * \name Bits for image transfer operations * \sa __struct gl_contextRec::ImageTransferState. */ /*@{*/ #define IMAGE_SCALE_BIAS_BIT 0x1 #define IMAGE_SHIFT_OFFSET_BIT 0x2 #define IMAGE_MAP_COLOR_BIT 0x4 #define IMAGE_CLAMP_BIT 0x800 /** Pixel Transfer ops */ #define IMAGE_BITS (IMAGE_SCALE_BIAS_BIT | \ IMAGE_SHIFT_OFFSET_BIT | \ IMAGE_MAP_COLOR_BIT) /** * \name Bits to indicate what state has changed. */ /*@{*/ #define _NEW_MODELVIEW (1u << 0) /**< gl_context::ModelView */ #define _NEW_PROJECTION (1u << 1) /**< gl_context::Projection */ #define _NEW_TEXTURE_MATRIX (1u << 2) /**< gl_context::TextureMatrix */ #define _NEW_COLOR (1u << 3) /**< gl_context::Color */ #define _NEW_DEPTH (1u << 4) /**< gl_context::Depth */ #define _NEW_TNL_SPACES (1u << 5) /**< _mesa_update_tnl_spaces */ #define _NEW_FOG (1u << 6) /**< gl_context::Fog */ #define _NEW_HINT (1u << 7) /**< gl_context::Hint */ #define _NEW_LIGHT_CONSTANTS (1u << 8) /**< gl_context::Light */ #define _NEW_LINE (1u << 9) /**< gl_context::Line */ #define _NEW_PIXEL (1u << 10) /**< gl_context::Pixel */ #define _NEW_POINT (1u << 11) /**< gl_context::Point */ #define _NEW_POLYGON (1u << 12) /**< gl_context::Polygon */ #define _NEW_POLYGONSTIPPLE (1u << 13) /**< gl_context::PolygonStipple */ #define _NEW_SCISSOR (1u << 14) /**< gl_context::Scissor */ #define _NEW_STENCIL (1u << 15) /**< gl_context::Stencil */ #define _NEW_TEXTURE_OBJECT (1u << 16) /**< gl_context::Texture (bindings only) */ #define _NEW_TRANSFORM (1u << 17) /**< gl_context::Transform */ #define _NEW_VIEWPORT (1u << 18) /**< gl_context::Viewport */ #define _NEW_TEXTURE_STATE (1u << 19) /**< gl_context::Texture (states only) */ #define _NEW_LIGHT_STATE (1u << 20) /**< gl_context::Light */ #define _NEW_RENDERMODE (1u << 21) /**< gl_context::RenderMode, etc */ #define _NEW_BUFFERS (1u << 22) /**< gl_context::Visual, DrawBuffer, */ #define _NEW_CURRENT_ATTRIB (1u << 23) /**< gl_context::Current */ #define _NEW_MULTISAMPLE (1u << 24) /**< gl_context::Multisample */ #define _NEW_TRACK_MATRIX (1u << 25) /**< gl_context::VertexProgram */ #define _NEW_PROGRAM (1u << 26) /**< New program/shader state */ #define _NEW_PROGRAM_CONSTANTS (1u << 27) #define _NEW_FF_VERT_PROGRAM (1u << 28) #define _NEW_FRAG_CLAMP (1u << 29) #define _NEW_MATERIAL (1u << 30) /**< gl_context::Light.Material */ #define _NEW_FF_FRAG_PROGRAM (1u << 31) #define _NEW_ALL ~0 /*@}*/ /* This has to be included here. */ #if 0 /* expanded by -frewrite-includes */ #include "dd.h" #endif /* expanded by -frewrite-includes */ # 2819 "../mesa/src/mesa/main/mtypes.h" # 2820 "../mesa/src/mesa/main/mtypes.h" /** Opaque declaration of display list payload data type */ union gl_dlist_node; /** * Per-display list information. */ struct gl_display_list { GLuint Name; bool execute_glthread; bool small_list; GLchar *Label; /**< GL_KHR_debug */ /** The dlist commands are in a linked list of nodes */ union { /* Big lists allocate their own storage */ union gl_dlist_node *Head; /* Small lists use ctx->Shared->small_dlist_store */ struct { unsigned start; unsigned count; }; }; }; /** * State used during display list compilation and execution. */ struct gl_dlist_state { struct gl_display_list *CurrentList; /**< List currently being compiled */ union gl_dlist_node *CurrentBlock; /**< Pointer to current block of nodes */ GLuint CurrentPos; /**< Index into current block of nodes */ GLuint CallDepth; /**< Current recursion calling depth */ GLuint LastInstSize; /**< Size of the last node. */ GLubyte ActiveAttribSize[VERT_ATTRIB_MAX]; uint32_t CurrentAttrib[VERT_ATTRIB_MAX][8]; GLubyte ActiveMaterialSize[MAT_ATTRIB_MAX]; GLfloat CurrentMaterial[MAT_ATTRIB_MAX][4]; struct { /* State known to have been set by the currently-compiling display * list. Used to eliminate some redundant state changes. */ GLenum16 ShadeModel; bool UseLoopback; } Current; }; /** * Driver-specific state flags. * * These are or'd with gl_context::NewDriverState to notify a driver about * a state change. The driver sets the flags at context creation and * the meaning of the bits set is opaque to core Mesa. */ struct gl_driver_flags { /** * gl_context::AtomicBufferBindings */ uint64_t NewAtomicBuffer; /** gl_context::Color::Alpha* */ uint64_t NewAlphaTest; /** gl_context::Multisample::Enabled */ uint64_t NewMultisampleEnable; /** gl_context::Multisample::(Min)SampleShading */ uint64_t NewSampleShading; /** gl_context::Transform::ClipPlanesEnabled */ uint64_t NewClipPlaneEnable; /** gl_context::Color::ClampFragmentColor */ uint64_t NewFragClamp; /** Shader constants (uniforms, program parameters, state constants) */ uint64_t NewShaderConstants[MESA_SHADER_STAGES]; /** For GL_CLAMP emulation */ uint64_t NewSamplersWithClamp; }; struct gl_buffer_binding { struct gl_buffer_object *BufferObject; /** Start of uniform block data in the buffer */ GLintptr Offset; /** Size of data allowed to be referenced from the buffer (in bytes) */ GLsizeiptr Size; /** * glBindBufferBase() indicates that the Size should be ignored and only * limited by the current size of the BufferObject. */ GLboolean AutomaticSize; }; /** * ARB_shader_image_load_store image unit. */ struct gl_image_unit { /** * Texture object bound to this unit. */ struct gl_texture_object *TexObj; /** * Level of the texture object bound to this unit. */ GLubyte Level; /** * \c GL_TRUE if the whole level is bound as an array of layers, \c * GL_FALSE if only some specific layer of the texture is bound. * \sa Layer */ GLboolean Layered; /** * Layer of the texture object bound to this unit as specified by the * application. */ GLushort Layer; /** * Layer of the texture object bound to this unit, or zero if * Layered == false. */ GLushort _Layer; /** * Access allowed to this texture image. Either \c GL_READ_ONLY, * \c GL_WRITE_ONLY or \c GL_READ_WRITE. */ GLenum16 Access; /** * GL internal format that determines the interpretation of the * image memory when shader image operations are performed through * this unit. */ GLenum16 Format; /** * Mesa format corresponding to \c Format. */ mesa_format _ActualFormat:16; }; /** * Shader subroutines storage */ struct gl_subroutine_index_binding { GLuint NumIndex; GLuint *IndexPtr; }; struct gl_texture_handle_object { struct gl_texture_object *texObj; struct gl_sampler_object *sampObj; GLuint64 handle; }; struct gl_image_handle_object { struct gl_image_unit imgObj; GLuint64 handle; }; struct gl_memory_object { GLuint Name; /**< hash table ID/name */ GLboolean Immutable; /**< denotes mutability state of parameters */ GLboolean Dedicated; /**< import memory from a dedicated allocation */ struct pipe_memory_object *memory; /* TEXTURE_TILING_EXT param from gl_texture_object */ GLuint TextureTiling; }; struct gl_semaphore_object { GLuint Name; /**< hash table ID/name */ struct pipe_fence_handle *fence; enum pipe_fd_type type; uint64_t timeline_value; }; /** * One element of the client attrib stack. */ struct gl_client_attrib_node { GLbitfield Mask; struct gl_array_attrib Array; struct gl_vertex_array_object VAO; struct gl_pixelstore_attrib Pack; struct gl_pixelstore_attrib Unpack; }; /** * The VBO module implemented in src/vbo. */ struct vbo_context { struct gl_array_attributes current[VBO_ATTRIB_MAX]; struct gl_vertex_array_object *VAO; struct vbo_exec_context exec; struct vbo_save_context save; }; /** * glEnable node for the attribute stack. (glPushAttrib/glPopAttrib) */ struct gl_enable_attrib_node { GLboolean AlphaTest; GLboolean AutoNormal; GLboolean Blend; GLbitfield ClipPlanes; GLboolean ColorMaterial; GLboolean CullFace; GLboolean DepthClampNear; GLboolean DepthClampFar; GLboolean DepthTest; GLboolean Dither; GLboolean Fog; GLboolean Light[MAX_LIGHTS]; GLboolean Lighting; GLboolean LineSmooth; GLboolean LineStipple; GLboolean IndexLogicOp; GLboolean ColorLogicOp; GLboolean Map1Color4; GLboolean Map1Index; GLboolean Map1Normal; GLboolean Map1TextureCoord1; GLboolean Map1TextureCoord2; GLboolean Map1TextureCoord3; GLboolean Map1TextureCoord4; GLboolean Map1Vertex3; GLboolean Map1Vertex4; GLboolean Map2Color4; GLboolean Map2Index; GLboolean Map2Normal; GLboolean Map2TextureCoord1; GLboolean Map2TextureCoord2; GLboolean Map2TextureCoord3; GLboolean Map2TextureCoord4; GLboolean Map2Vertex3; GLboolean Map2Vertex4; GLboolean Normalize; GLboolean PixelTexture; GLboolean PointSmooth; GLboolean PolygonOffsetPoint; GLboolean PolygonOffsetLine; GLboolean PolygonOffsetFill; GLboolean PolygonSmooth; GLboolean PolygonStipple; GLboolean RescaleNormals; GLbitfield Scissor; GLboolean Stencil; GLboolean StencilTwoSide; /* GL_EXT_stencil_two_side */ GLboolean MultisampleEnabled; /* GL_ARB_multisample */ GLboolean SampleAlphaToCoverage; /* GL_ARB_multisample */ GLboolean SampleAlphaToOne; /* GL_ARB_multisample */ GLboolean SampleCoverage; /* GL_ARB_multisample */ GLboolean RasterPositionUnclipped; /* GL_IBM_rasterpos_clip */ GLbitfield Texture[MAX_TEXTURE_UNITS]; GLbitfield TexGen[MAX_TEXTURE_UNITS]; /* GL_ARB_vertex_program */ GLboolean VertexProgram; GLboolean VertexProgramPointSize; GLboolean VertexProgramTwoSide; /* GL_ARB_fragment_program */ GLboolean FragmentProgram; /* GL_ARB_point_sprite */ GLboolean PointSprite; GLboolean FragmentShaderATI; /* GL_ARB_framebuffer_sRGB / GL_EXT_framebuffer_sRGB */ GLboolean sRGBEnabled; /* GL_NV_conservative_raster */ GLboolean ConservativeRasterization; }; /** * Texture node for the attribute stack. (glPushAttrib/glPopAttrib) */ struct gl_texture_attrib_node { GLuint CurrentUnit; /**< GL_ACTIVE_TEXTURE */ GLuint NumTexSaved; struct gl_fixedfunc_texture_unit FixedFuncUnit[MAX_TEXTURE_COORD_UNITS]; GLfloat LodBias[MAX_TEXTURE_UNITS]; float LodBiasQuantized[MAX_TEXTURE_UNITS]; /** Saved default texture object state. */ struct gl_texture_object SavedDefaultObj[NUM_TEXTURE_TARGETS]; /* For saving per texture object state (wrap modes, filters, etc), * SavedObj[][].Target is unused, so the value is invalid. */ struct gl_texture_object SavedObj[MAX_COMBINED_TEXTURE_IMAGE_UNITS][NUM_TEXTURE_TARGETS]; }; /** * Node for the attribute stack. (glPushAttrib/glPopAttrib) */ struct gl_attrib_node { GLbitfield Mask; GLbitfield OldPopAttribStateMask; struct gl_accum_attrib Accum; struct gl_colorbuffer_attrib Color; struct gl_current_attrib Current; struct gl_depthbuffer_attrib Depth; struct gl_enable_attrib_node Enable; struct gl_eval_attrib Eval; struct gl_fog_attrib Fog; struct gl_hint_attrib Hint; struct gl_light_attrib Light; struct gl_line_attrib Line; struct gl_list_attrib List; struct gl_pixel_attrib Pixel; struct gl_point_attrib Point; struct gl_polygon_attrib Polygon; GLuint PolygonStipple[32]; struct gl_scissor_attrib Scissor; struct gl_stencil_attrib Stencil; struct gl_transform_attrib Transform; struct gl_multisample_attrib Multisample; struct gl_texture_attrib_node Texture; struct viewport_state { struct gl_viewport_attrib ViewportArray[MAX_VIEWPORTS]; GLuint SubpixelPrecisionBias[2]; } Viewport; }; /** * Dispatch tables. */ struct gl_dispatch { /** * For non-displaylist-saving, non-begin/end. */ struct _glapi_table *OutsideBeginEnd; /** * The dispatch table used between glBegin() and glEnd() (outside of a * display list). Only valid functions between those two are set. */ struct _glapi_table *BeginEnd; /** * Same as BeginEnd except glVertex{Attrib} functions. Used when * HW GL_SELECT mode instead of BeginEnd to insert extra code * for GL_SELECT. */ struct _glapi_table *HWSelectModeBeginEnd; /** * The dispatch table used between glNewList() and glEndList(). */ struct _glapi_table *Save; /** * Dispatch table for when a graphics reset has happened. */ struct _glapi_table *ContextLost; /** * The current dispatch table for non-displaylist-saving execution. * It can be equal to one of these: * - OutsideBeginEnd * - BeginEnd * - HWSelectModeBeginEnd */ struct _glapi_table *Exec; /** * The current dispatch table overall. It can be equal to one of these: * - Exec * - Save * - ContextLost */ struct _glapi_table *Current; }; /** * Mesa rendering context. * * This is the central context data structure for Mesa. Almost all * OpenGL state is contained in this structure. * Think of this as a base class from which device drivers will derive * sub classes. */ struct gl_context { /** State possibly shared with other contexts in the address space */ struct gl_shared_state *Shared; /** Whether Shared->BufferObjects has already been locked for this context. */ bool BufferObjectsLocked; /** Whether Shared->TexMutex has already been locked for this context. */ bool TexturesLocked; /** \name API function pointer tables */ /*@{*/ gl_api API; /** * Dispatch tables implementing OpenGL functions. GLThread has no effect * on this. */ struct gl_dispatch Dispatch; /** * Dispatch table used by GLThread, a component used to marshal API * calls from an application to a separate thread. */ struct _glapi_table *MarshalExec; /** * Dispatch table currently in use for fielding API calls from the client * program. If API calls are being marshalled to another thread, this == * MarshalExec. Otherwise it == Dispatch.Current. */ struct _glapi_table *GLApi; /*@}*/ struct glthread_state GLThread; struct gl_config Visual; struct gl_framebuffer *DrawBuffer; /**< buffer for writing */ struct gl_framebuffer *ReadBuffer; /**< buffer for reading */ struct gl_framebuffer *WinSysDrawBuffer; /**< set with MakeCurrent */ struct gl_framebuffer *WinSysReadBuffer; /**< set with MakeCurrent */ /** * Device driver function pointer table */ struct dd_function_table Driver; /** Core/Driver constants */ struct gl_constants Const; /** * Bitmask of valid primitive types supported by this context type, * GL version, and extensions, not taking current states into account. * Current states can further reduce the final bitmask at draw time. */ GLbitfield SupportedPrimMask; /** * Bitmask of valid primitive types depending on current states (such as * shaders). This is 0 if the current states should result in * GL_INVALID_OPERATION in draw calls. */ GLbitfield ValidPrimMask; GLenum16 DrawGLError; /**< GL error to return from draw calls */ /** * Same as ValidPrimMask, but should be applied to glDrawElements*. */ GLbitfield ValidPrimMaskIndexed; /** DrawID for the next non-multi non-indirect draw. Only set by glthread. */ GLuint DrawID; /** * Whether DrawPixels/CopyPixels/Bitmap are valid to render. */ bool DrawPixValid; /** \name The various 4x4 matrix stacks */ /*@{*/ struct gl_matrix_stack ModelviewMatrixStack; struct gl_matrix_stack ProjectionMatrixStack; struct gl_matrix_stack TextureMatrixStack[MAX_TEXTURE_UNITS]; struct gl_matrix_stack ProgramMatrixStack[MAX_PROGRAM_MATRICES]; struct gl_matrix_stack *CurrentStack; /**< Points to one of the above stacks */ /*@}*/ /** Combined modelview and projection matrix */ GLmatrix _ModelProjectMatrix; /** \name Display lists */ struct gl_dlist_state ListState; GLboolean ExecuteFlag; /**< Execute GL commands? */ GLboolean CompileFlag; /**< Compile GL commands into display list? */ /** Extension information */ struct gl_extensions Extensions; /** GL version integer, for example 31 for GL 3.1, or 20 for GLES 2.0. */ GLuint Version; char *VersionString; /** \name State attribute stack (for glPush/PopAttrib) */ /*@{*/ GLuint AttribStackDepth; struct gl_attrib_node *AttribStack[MAX_ATTRIB_STACK_DEPTH]; /*@}*/ /** \name Renderer attribute groups * * We define a struct for each attribute group to make pushing and popping * attributes easy. Also it's a good organization. */ /*@{*/ struct gl_accum_attrib Accum; /**< Accum buffer attributes */ struct gl_colorbuffer_attrib Color; /**< Color buffer attributes */ struct gl_current_attrib Current; /**< Current attributes */ struct gl_depthbuffer_attrib Depth; /**< Depth buffer attributes */ struct gl_eval_attrib Eval; /**< Eval attributes */ struct gl_fog_attrib Fog; /**< Fog attributes */ struct gl_hint_attrib Hint; /**< Hint attributes */ struct gl_light_attrib Light; /**< Light attributes */ struct gl_line_attrib Line; /**< Line attributes */ struct gl_list_attrib List; /**< List attributes */ struct gl_multisample_attrib Multisample; struct gl_pixel_attrib Pixel; /**< Pixel attributes */ struct gl_point_attrib Point; /**< Point attributes */ struct gl_polygon_attrib Polygon; /**< Polygon attributes */ GLuint PolygonStipple[32]; /**< Polygon stipple */ struct gl_scissor_attrib Scissor; /**< Scissor attributes */ struct gl_stencil_attrib Stencil; /**< Stencil buffer attributes */ struct gl_texture_attrib Texture; /**< Texture attributes */ struct gl_transform_attrib Transform; /**< Transformation attributes */ struct gl_viewport_attrib ViewportArray[MAX_VIEWPORTS]; /**< Viewport attributes */ GLuint SubpixelPrecisionBias[2]; /**< Viewport attributes */ /*@}*/ /** \name Client attribute stack */ /*@{*/ GLuint ClientAttribStackDepth; struct gl_client_attrib_node ClientAttribStack[MAX_CLIENT_ATTRIB_STACK_DEPTH]; /*@}*/ /** \name Client attribute groups */ /*@{*/ struct gl_array_attrib Array; /**< Vertex arrays */ struct gl_pixelstore_attrib Pack; /**< Pixel packing */ struct gl_pixelstore_attrib Unpack; /**< Pixel unpacking */ struct gl_pixelstore_attrib DefaultPacking; /**< Default params */ /*@}*/ /** \name Other assorted state (not pushed/popped on attribute stack) */ /*@{*/ struct gl_pixelmaps PixelMaps; struct gl_evaluators EvalMap; /**< All evaluators */ struct gl_feedback Feedback; /**< Feedback */ struct gl_selection Select; /**< Selection */ struct gl_program_state Program; /**< general program state */ struct gl_vertex_program_state VertexProgram; struct gl_fragment_program_state FragmentProgram; struct gl_geometry_program_state GeometryProgram; struct gl_compute_program_state ComputeProgram; struct gl_tess_ctrl_program_state TessCtrlProgram; struct gl_tess_eval_program_state TessEvalProgram; struct gl_ati_fragment_shader_state ATIFragmentShader; struct gl_pipeline_shader_state Pipeline; /**< GLSL pipeline shader object state */ struct gl_pipeline_object Shader; /**< GLSL shader object state */ /** * Current active shader pipeline state * * Almost all internal users want ::_Shader instead of ::Shader. The * exceptions are bits of legacy GLSL API that do not know about separate * shader objects. * * If a program is active via \c glUseProgram, this will point to * \c ::Shader. * * If a program pipeline is active via \c glBindProgramPipeline, this will * point to \c ::Pipeline.Current. * * If neither a program nor a program pipeline is active, this will point to * \c ::Pipeline.Default. This ensures that \c ::_Shader will never be * \c NULL. */ struct gl_pipeline_object *_Shader; /** * NIR containing the functions that implement software fp64 support. */ struct nir_shader *SoftFP64; struct gl_query_state Query; /**< occlusion, timer queries */ struct gl_transform_feedback_state TransformFeedback; struct gl_perf_monitor_state PerfMonitor; struct gl_perf_query_state PerfQuery; struct gl_buffer_object *DrawIndirectBuffer; /** < GL_ARB_draw_indirect */ struct gl_buffer_object *ParameterBuffer; /** < GL_ARB_indirect_parameters */ struct gl_buffer_object *DispatchIndirectBuffer; /** < GL_ARB_compute_shader */ struct gl_buffer_object *CopyReadBuffer; /**< GL_ARB_copy_buffer */ struct gl_buffer_object *CopyWriteBuffer; /**< GL_ARB_copy_buffer */ struct gl_buffer_object *QueryBuffer; /**< GL_ARB_query_buffer_object */ /** * Current GL_ARB_uniform_buffer_object binding referenced by * GL_UNIFORM_BUFFER target for glBufferData, glMapBuffer, etc. */ struct gl_buffer_object *UniformBuffer; /** * Current GL_ARB_shader_storage_buffer_object binding referenced by * GL_SHADER_STORAGE_BUFFER target for glBufferData, glMapBuffer, etc. */ struct gl_buffer_object *ShaderStorageBuffer; /** * Array of uniform buffers for GL_ARB_uniform_buffer_object and GL 3.1. * This is set up using glBindBufferRange() or glBindBufferBase(). They are * associated with uniform blocks by glUniformBlockBinding()'s state in the * shader program. */ struct gl_buffer_binding UniformBufferBindings[MAX_COMBINED_UNIFORM_BUFFERS]; /** * Array of shader storage buffers for ARB_shader_storage_buffer_object * and GL 4.3. This is set up using glBindBufferRange() or * glBindBufferBase(). They are associated with shader storage blocks by * glShaderStorageBlockBinding()'s state in the shader program. */ struct gl_buffer_binding ShaderStorageBufferBindings[MAX_COMBINED_SHADER_STORAGE_BUFFERS]; /** * Object currently associated with the GL_ATOMIC_COUNTER_BUFFER * target. */ struct gl_buffer_object *AtomicBuffer; /** * Object currently associated w/ the GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD * target. */ struct gl_buffer_object *ExternalVirtualMemoryBuffer; /** * Array of atomic counter buffer binding points. */ struct gl_buffer_binding AtomicBufferBindings[MAX_COMBINED_ATOMIC_BUFFERS]; /** * Array of image units for ARB_shader_image_load_store. */ struct gl_image_unit ImageUnits[MAX_IMAGE_UNITS]; struct gl_subroutine_index_binding SubroutineIndex[MESA_SHADER_STAGES]; /*@}*/ struct gl_meta_state *Meta; /**< for "meta" operations */ /* GL_EXT_framebuffer_object */ struct gl_renderbuffer *CurrentRenderbuffer; GLenum16 ErrorValue; /**< Last error code */ /** * Recognize and silence repeated error debug messages in buggy apps. */ const char *ErrorDebugFmtString; GLuint ErrorDebugCount; /* GL_ARB_debug_output/GL_KHR_debug */ simple_mtx_t DebugMutex; struct gl_debug_state *Debug; GLenum16 RenderMode; /**< either GL_RENDER, GL_SELECT, GL_FEEDBACK */ GLbitfield NewState; /**< bitwise-or of _NEW_* flags */ GLbitfield PopAttribState; /**< Updated state since glPushAttrib */ uint64_t NewDriverState; /**< bitwise-or of flags from DriverFlags */ struct gl_driver_flags DriverFlags; GLboolean ViewportInitialized; /**< has viewport size been initialized? */ GLboolean _AllowDrawOutOfOrder; /** \name Derived state */ GLbitfield _ImageTransferState;/**< bitwise-or of IMAGE_*_BIT flags */ GLfloat _EyeZDir[3]; GLfloat _ModelViewInvScale; /* may be for model- or eyespace lighting */ GLfloat _ModelViewInvScaleEyespace; /* always factor defined in spec */ GLboolean _NeedEyeCoords; GLuint TextureStateTimestamp; /**< detect changes to shared state */ GLboolean PointSizeIsSet; /**< the glPointSize value in the shader is set */ /** \name For debugging/development only */ /*@{*/ GLboolean FirstTimeCurrent; /*@}*/ /** * False if this context was created without a config. This is needed * because the initial state of glDrawBuffers depends on this */ GLboolean HasConfig; GLboolean TextureFormatSupported[MESA_FORMAT_COUNT]; GLboolean RasterDiscard; /**< GL_RASTERIZER_DISCARD */ GLboolean IntelConservativeRasterization; /**< GL_CONSERVATIVE_RASTERIZATION_INTEL */ GLboolean ConservativeRasterization; /**< GL_CONSERVATIVE_RASTERIZATION_NV */ GLfloat ConservativeRasterDilate; GLenum16 ConservativeRasterMode; GLboolean IntelBlackholeRender; /**< GL_INTEL_blackhole_render */ /** Does glVertexAttrib(0) alias glVertex()? */ bool _AttribZeroAliasesVertex; /** * When set, TileRasterOrderIncreasingX/Y control the order that a tiled * renderer's tiles should be excecuted, to meet the requirements of * GL_MESA_tile_raster_order. */ GLboolean TileRasterOrderFixed; GLboolean TileRasterOrderIncreasingX; GLboolean TileRasterOrderIncreasingY; /** * \name Hooks for module contexts. * * These will eventually live in the driver or elsewhere. */ /*@{*/ struct vbo_context vbo_context; struct st_context *st; struct pipe_screen *screen; struct pipe_context *pipe; struct st_config_options *st_opts; struct cso_context *cso_context; bool has_invalidate_buffer; bool has_string_marker; /* On old libGL's for linux we need to invalidate the drawables * on glViewpport calls, this is set via a option. */ bool invalidate_on_gl_viewport; /*@}*/ /** * \name NV_vdpau_interop */ /*@{*/ const void *vdpDevice; const void *vdpGetProcAddress; struct set *vdpSurfaces; /*@}*/ /** * Has this context observed a GPU reset in any context in the share group? * * Once this field becomes true, it is never reset to false. */ GLboolean ShareGroupReset; /** * \name OES_primitive_bounding_box * * Stores the arguments to glPrimitiveBoundingBox */ GLfloat PrimitiveBoundingBox[8]; struct disk_cache *Cache; /** * \name GL_ARB_bindless_texture */ /*@{*/ struct hash_table_u64 *ResidentTextureHandles; struct hash_table_u64 *ResidentImageHandles; /*@}*/ bool shader_builtin_ref; struct pipe_draw_start_count_bias *tmp_draws; unsigned num_tmp_draws; }; #ifndef NDEBUG extern int MESA_VERBOSE; extern int MESA_DEBUG_FLAGS; #else # 3645 "../mesa/src/mesa/main/mtypes.h" # define MESA_VERBOSE 0 # define MESA_DEBUG_FLAGS 0 #endif # 3648 "../mesa/src/mesa/main/mtypes.h" /** The MESA_VERBOSE var is a bitmask of these flags */ enum _verbose { VERBOSE_VARRAY = 0x0001, VERBOSE_TEXTURE = 0x0002, VERBOSE_MATERIAL = 0x0004, VERBOSE_PIPELINE = 0x0008, VERBOSE_DRIVER = 0x0010, VERBOSE_STATE = 0x0020, VERBOSE_API = 0x0040, VERBOSE_DISPLAY_LIST = 0x0100, VERBOSE_LIGHTING = 0x0200, VERBOSE_PRIMS = 0x0400, VERBOSE_VERTS = 0x0800, VERBOSE_DISASSEM = 0x1000, VERBOSE_SWAPBUFFERS = 0x4000 }; /** The MESA_DEBUG_FLAGS var is a bitmask of these flags */ enum _debug { DEBUG_SILENT = (1 << 0), DEBUG_ALWAYS_FLUSH = (1 << 1), DEBUG_INCOMPLETE_TEXTURE = (1 << 2), DEBUG_INCOMPLETE_FBO = (1 << 3), DEBUG_CONTEXT = (1 << 4) }; #ifdef __cplusplus } #endif # 3682 "../mesa/src/mesa/main/mtypes.h" #endif /* MTYPES_H */ # 3684 "../mesa/src/mesa/main/mtypes.h" #endif /* mtypes.h expanded by -frewrite-includes */ # 40 "../mesa/src/mesa/main/extensions.h" 2 #ifdef __cplusplus extern "C" { #endif # 44 "../mesa/src/mesa/main/extensions.h" struct gl_context; struct gl_extensions; extern void _mesa_one_time_init_extension_overrides(const char *override); extern void _mesa_init_extensions(struct gl_extensions *extentions); extern GLubyte *_mesa_make_extension_string(struct gl_context *ctx); extern void _mesa_override_extensions(struct gl_context *ctx); extern GLuint _mesa_get_extension_count(struct gl_context *ctx); extern const GLubyte * _mesa_get_enabled_extension(struct gl_context *ctx, GLuint index); /** * \brief An element of the \c extension_table. */ struct mesa_extension { /** Name of extension, such as "GL_ARB_depth_clamp". */ const char *name; /** Offset (in bytes) of the corresponding member in struct gl_extensions. */ size_t offset; /** Minimum version the extension requires for the given API * (see gl_api defined in mtypes.h). The value is equal to: * 10 * major_version + minor_version */ uint8_t version[API_OPENGL_LAST + 1]; /** Year the extension was proposed or approved. Used to sort the * extension string chronologically. */ uint16_t year; }; extern const struct mesa_extension _mesa_extension_table[]; /* Generate enums for the functions below */ enum { #define EXT(name_str, ...) MESA_EXTENSION_##name_str, #if defined(__CLANG_REWRITTEN_INCLUDES) /* extensions_table.h expanded by -frewrite-includes */ #include "extensions_table.h" #else /* extensions_table.h expanded by -frewrite-includes */ # 90 "../mesa/src/mesa/main/extensions.h" # 1 "../mesa/src/mesa/main/extensions_table.h" 1 /* The extension table is alphabetically sorted by the extension name string column. */ #define GLL 0 #define GLC 0 #define ES1 0 #define ES2 0 #define x ~0 EXT(3DFX_texture_compression_FXT1 , TDFX_texture_compression_FXT1 , GLL, GLC, x , x , 1999) EXT(AMD_compressed_ATC_texture , AMD_compressed_ATC_texture , x , x , ES1, ES2, 2008) EXT(AMD_conservative_depth , ARB_conservative_depth , GLL, GLC, x , x , 2009) EXT(AMD_depth_clamp_separate , AMD_depth_clamp_separate , GLL, GLC, x , x , 2009) EXT(AMD_draw_buffers_blend , ARB_draw_buffers_blend , GLL, GLC, x , x , 2009) EXT(AMD_framebuffer_multisample_advanced , AMD_framebuffer_multisample_advanced , GLL, GLC, x , ES2, 2018) EXT(AMD_gpu_shader_half_float , AMD_gpu_shader_half_float , 40, 40, x , x , 2016) EXT(AMD_gpu_shader_int64 , ARB_gpu_shader_int64 , x , GLC, x , x , 2015) EXT(AMD_multi_draw_indirect , ARB_draw_indirect , GLL, GLC, x , x , 2011) EXT(AMD_performance_monitor , AMD_performance_monitor , GLL, GLC, x , ES2, 2007) EXT(AMD_pinned_memory , AMD_pinned_memory , GLL, GLC, x , x , 2013) EXT(AMD_query_buffer_object , ARB_query_buffer_object , GLL, GLC, x , x , 2012) EXT(AMD_seamless_cubemap_per_texture , AMD_seamless_cubemap_per_texture , GLL, GLC, x , x , 2009) EXT(AMD_shader_stencil_export , ARB_shader_stencil_export , GLL, GLC, x , x , 2009) EXT(AMD_shader_trinary_minmax , dummy_true , GLL, GLC, x , x , 2012) EXT(AMD_texture_texture4 , ARB_texture_gather , GLL, GLC, x , x , 2008) EXT(AMD_vertex_shader_layer , AMD_vertex_shader_layer , GLL, GLC, x , x , 2012) EXT(AMD_vertex_shader_viewport_index , AMD_vertex_shader_viewport_index , GLL, GLC, x , x , 2012) EXT(ANDROID_extension_pack_es31a , ANDROID_extension_pack_es31a , x , x , x , 31, 2014) EXT(ANGLE_pack_reverse_row_order , dummy_true , x , x , x , ES2, 2011) EXT(ANGLE_texture_compression_dxt3 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2011) EXT(ANGLE_texture_compression_dxt5 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2011) EXT(APPLE_packed_pixels , dummy_true , GLL, x , x , x , 2002) EXT(APPLE_sync , ARB_sync , x , x , ES1, ES2, 2012) EXT(APPLE_texture_max_level , dummy_true , x , x , ES1, ES2, 2009) EXT(ARB_ES2_compatibility , ARB_ES2_compatibility , GLL, GLC, x , x , 2009) EXT(ARB_ES3_1_compatibility , ARB_ES3_1_compatibility , GLL, GLC, x , x , 2014) EXT(ARB_ES3_2_compatibility , ARB_ES3_2_compatibility , GLL, GLC, x , x , 2015) EXT(ARB_ES3_compatibility , ARB_ES3_compatibility , GLL, GLC, x , x , 2012) EXT(ARB_arrays_of_arrays , ARB_arrays_of_arrays , GLL, GLC, x , x , 2012) EXT(ARB_base_instance , ARB_base_instance , GLL, GLC, x , x , 2011) EXT(ARB_bindless_texture , ARB_bindless_texture , GLL, GLC, x , x , 2013) EXT(ARB_blend_func_extended , ARB_blend_func_extended , GLL, GLC, x , x , 2009) EXT(ARB_buffer_storage , ARB_buffer_storage , GLL, GLC, x , x , 2013) EXT(ARB_clear_buffer_object , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_clear_texture , dummy_true , GLL, GLC, x , x , 2013) EXT(ARB_clip_control , ARB_clip_control , GLL, GLC, x , x , 2014) EXT(ARB_color_buffer_float , ARB_color_buffer_float , GLL, GLC, x , x , 2004) EXT(ARB_compatibility , ARB_compatibility , GLL, x , x , x , 2009) EXT(ARB_compressed_texture_pixel_storage , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_compute_shader , ARB_compute_shader , GLL, GLC, x , x , 2012) EXT(ARB_compute_variable_group_size , ARB_compute_variable_group_size , GLL, GLC, x , x , 2013) EXT(ARB_conditional_render_inverted , ARB_conditional_render_inverted , GLL, GLC, x , x , 2014) EXT(ARB_conservative_depth , ARB_conservative_depth , GLL, GLC, x , x , 2011) EXT(ARB_copy_buffer , dummy_true , GLL, GLC, x , x , 2008) EXT(ARB_copy_image , ARB_copy_image , GLL, GLC, x , x , 2012) EXT(ARB_cull_distance , ARB_cull_distance , GLL, GLC, x , x , 2014) EXT(ARB_debug_output , dummy_true , GLL, GLC, x , x , 2009) EXT(ARB_depth_buffer_float , ARB_depth_buffer_float , GLL, GLC, x , x , 2008) EXT(ARB_depth_clamp , ARB_depth_clamp , GLL, GLC, x , x , 2003) EXT(ARB_depth_texture , dummy_true , GLL, x , x , x , 2001) EXT(ARB_derivative_control , ARB_derivative_control , GLL, GLC, x , x , 2014) EXT(ARB_direct_state_access , dummy_true , 31, GLC, x , x , 2014) EXT(ARB_draw_buffers , dummy_true , GLL, GLC, x , x , 2002) EXT(ARB_draw_buffers_blend , ARB_draw_buffers_blend , GLL, GLC, x , x , 2009) EXT(ARB_draw_elements_base_vertex , ARB_draw_elements_base_vertex , GLL, GLC, x , x , 2009) EXT(ARB_draw_indirect , ARB_draw_indirect , GLL, GLC, x , x , 2010) EXT(ARB_draw_instanced , ARB_draw_instanced , GLL, GLC, x , x , 2008) EXT(ARB_enhanced_layouts , ARB_enhanced_layouts , GLL, GLC, x , x , 2013) EXT(ARB_explicit_attrib_location , ARB_explicit_attrib_location , GLL, GLC, x , x , 2009) EXT(ARB_explicit_uniform_location , ARB_explicit_uniform_location , GLL, GLC, x , x , 2012) EXT(ARB_fragment_coord_conventions , ARB_fragment_coord_conventions , GLL, GLC, x , x , 2009) EXT(ARB_fragment_layer_viewport , ARB_fragment_layer_viewport , GLL, GLC, x , x , 2012) EXT(ARB_fragment_program , ARB_fragment_program , GLL, x , x , x , 2002) EXT(ARB_fragment_program_shadow , ARB_fragment_program_shadow , GLL, x , x , x , 2003) EXT(ARB_fragment_shader , ARB_fragment_shader , GLL, GLC, x , x , 2002) EXT(ARB_fragment_shader_interlock , ARB_fragment_shader_interlock , GLL, GLC, x , x , 2015) EXT(ARB_framebuffer_no_attachments , ARB_framebuffer_no_attachments , GLL, GLC, x , x , 2012) EXT(ARB_framebuffer_object , ARB_framebuffer_object , GLL, GLC, x , x , 2005) EXT(ARB_framebuffer_sRGB , EXT_framebuffer_sRGB , GLL, GLC, x , x , 1998) EXT(ARB_get_program_binary , dummy_true , GLL, GLC, x , x , 2010) EXT(ARB_get_texture_sub_image , dummy_true , GLL, GLC, x , x , 2014) EXT(ARB_gl_spirv , ARB_gl_spirv , GLL, GLC, x , x , 2016) EXT(ARB_gpu_shader5 , ARB_gpu_shader5 , GLL, GLC, x , x , 2010) EXT(ARB_gpu_shader_fp64 , ARB_gpu_shader_fp64 , 32, GLC, x , x , 2010) EXT(ARB_gpu_shader_int64 , ARB_gpu_shader_int64 , 40, GLC, x , x , 2015) EXT(ARB_half_float_pixel , dummy_true , GLL, GLC, x , x , 2003) EXT(ARB_half_float_vertex , ARB_half_float_vertex , GLL, GLC, x , x , 2008) EXT(ARB_indirect_parameters , ARB_indirect_parameters , GLL, GLC, x , x , 2013) EXT(ARB_instanced_arrays , ARB_instanced_arrays , GLL, GLC, x , x , 2008) EXT(ARB_internalformat_query , ARB_internalformat_query , GLL, GLC, x , x , 2011) EXT(ARB_internalformat_query2 , ARB_internalformat_query2 , GLL, GLC, x , x , 2013) EXT(ARB_invalidate_subdata , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_map_buffer_alignment , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_map_buffer_range , ARB_map_buffer_range , GLL, GLC, x , x , 2008) EXT(ARB_multi_bind , dummy_true , GLL, GLC, x , x , 2013) EXT(ARB_multi_draw_indirect , ARB_draw_indirect , GLL, GLC, x , x , 2012) EXT(ARB_multisample , dummy_true , GLL, x , x , x , 1994) EXT(ARB_multitexture , dummy_true , GLL, x , x , x , 1998) EXT(ARB_occlusion_query , ARB_occlusion_query , GLL, x , x , x , 2001) EXT(ARB_occlusion_query2 , ARB_occlusion_query2 , GLL, GLC, x , x , 2003) EXT(ARB_parallel_shader_compile , dummy_true , GLL, GLC, x , x , 2015) EXT(ARB_pipeline_statistics_query , ARB_pipeline_statistics_query , GLL, GLC, x , x , 2014) EXT(ARB_pixel_buffer_object , dummy_true , GLL, GLC, x , x , 2004) EXT(ARB_point_parameters , dummy_true , GLL, x , x , x , 1997) EXT(ARB_point_sprite , dummy_true , GLL, GLC, x , x , 2003) EXT(ARB_polygon_offset_clamp , ARB_polygon_offset_clamp , GLL, GLC, x , x , 2017) EXT(ARB_post_depth_coverage , ARB_post_depth_coverage , GLL, GLC, x , x, 2015) EXT(ARB_program_interface_query , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_provoking_vertex , EXT_provoking_vertex , GLL, GLC, x , x , 2009) EXT(ARB_query_buffer_object , ARB_query_buffer_object , GLL, GLC, x , x , 2013) EXT(ARB_robust_buffer_access_behavior , ARB_robust_buffer_access_behavior , GLL, GLC, x , x , 2012) EXT(ARB_robustness , dummy_true , GLL, GLC, x , x , 2010) EXT(ARB_sample_locations , ARB_sample_locations , GLL, GLC, x , x , 2015) EXT(ARB_sample_shading , ARB_sample_shading , GLL, GLC, x , x , 2009) EXT(ARB_sampler_objects , dummy_true , GLL, GLC, x , x , 2009) EXT(ARB_seamless_cube_map , ARB_seamless_cube_map , GLL, GLC, x , x , 2009) EXT(ARB_seamless_cubemap_per_texture , AMD_seamless_cubemap_per_texture , GLL, GLC, x , x , 2013) EXT(ARB_separate_shader_objects , dummy_true , GLL, GLC, x , x , 2010) EXT(ARB_shader_atomic_counter_ops , ARB_shader_atomic_counter_ops , GLL, GLC, x , x , 2015) EXT(ARB_shader_atomic_counters , ARB_shader_atomic_counters , GLL, GLC, x , x , 2011) EXT(ARB_shader_ballot , ARB_shader_ballot , GLL, GLC, x , x , 2015) EXT(ARB_shader_bit_encoding , ARB_shader_bit_encoding , GLL, GLC, x , x , 2010) EXT(ARB_shader_clock , ARB_shader_clock , GLL, GLC, x , x , 2015) EXT(ARB_shader_draw_parameters , ARB_shader_draw_parameters , GLL, GLC, x , x , 2013) EXT(ARB_shader_group_vote , ARB_shader_group_vote , GLL, GLC, x , x , 2013) EXT(ARB_shader_image_load_store , ARB_shader_image_load_store , GLL, GLC, x , x , 2011) EXT(ARB_shader_image_size , ARB_shader_image_size , GLL, GLC, x , x , 2012) EXT(ARB_shader_objects , dummy_true , GLL, GLC, x , x , 2002) EXT(ARB_shader_precision , ARB_shader_precision , GLL, GLC, x , x , 2010) EXT(ARB_shader_stencil_export , ARB_shader_stencil_export , GLL, GLC, x , x , 2009) EXT(ARB_shader_storage_buffer_object , ARB_shader_storage_buffer_object , GLL, GLC, x , x , 2012) EXT(ARB_shader_subroutine , dummy_true , 31, GLC, x , x , 2010) EXT(ARB_shader_texture_image_samples , ARB_shader_texture_image_samples , GLL, GLC, x , x , 2014) EXT(ARB_shader_texture_lod , ARB_shader_texture_lod , GLL, GLC, x , x , 2009) EXT(ARB_shader_viewport_layer_array , ARB_shader_viewport_layer_array , GLL, GLC, x , x , 2015) EXT(ARB_shading_language_100 , dummy_true , GLL, x , x , x , 2003) EXT(ARB_shading_language_420pack , ARB_shading_language_420pack , GLL, GLC, x , x , 2011) EXT(ARB_shading_language_include , dummy_true , GLL, GLC, x , x , 2013) EXT(ARB_shading_language_packing , ARB_shading_language_packing , GLL, GLC, x , x , 2011) EXT(ARB_shadow , ARB_shadow , GLL, x , x , x , 2001) EXT(ARB_sparse_buffer , ARB_sparse_buffer , GLL, GLC, x , x , 2014) EXT(ARB_sparse_texture , ARB_sparse_texture , GLL, GLC, x , x , 2013) EXT(ARB_sparse_texture2 , ARB_sparse_texture2 , GLL, GLC, x , x , 2015) EXT(ARB_sparse_texture_clamp , ARB_sparse_texture_clamp , GLL, GLC, x , x , 2015) EXT(ARB_spirv_extensions , ARB_spirv_extensions , GLL, GLC, x , x , 2016) EXT(ARB_stencil_texturing , ARB_stencil_texturing , GLL, GLC, x , x , 2012) EXT(ARB_sync , ARB_sync , GLL, GLC, x , x , 2003) EXT(ARB_tessellation_shader , ARB_tessellation_shader , GLL, GLC, x , x , 2009) EXT(ARB_texture_barrier , NV_texture_barrier , GLL, GLC, x , x , 2014) EXT(ARB_texture_border_clamp , dummy_true , GLL, GLC, x , x , 2000) EXT(ARB_texture_buffer_object , ARB_texture_buffer_object , GLL, GLC, x , x , 2008) EXT(ARB_texture_buffer_object_rgb32 , ARB_texture_buffer_object_rgb32 , GLL, GLC, x , x , 2009) EXT(ARB_texture_buffer_range , ARB_texture_buffer_range , GLL, GLC, x , x , 2012) EXT(ARB_texture_compression , dummy_true , GLL, x , x , x , 2000) EXT(ARB_texture_compression_bptc , ARB_texture_compression_bptc , GLL, GLC, x , x , 2010) EXT(ARB_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , x , 2004) EXT(ARB_texture_cube_map , dummy_true , GLL, x , x , x , 1999) EXT(ARB_texture_cube_map_array , ARB_texture_cube_map_array , GLL, GLC, x , x , 2009) EXT(ARB_texture_env_add , dummy_true , GLL, x , x , x , 1999) EXT(ARB_texture_env_combine , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_env_crossbar , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_env_dot3 , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_filter_anisotropic , ARB_texture_filter_anisotropic , GLL, GLC, x , x , 2017) EXT(ARB_texture_filter_minmax , ARB_texture_filter_minmax , GLL, GLC, x , x , 2015) EXT(ARB_texture_float , ARB_texture_float , GLL, GLC, x , x , 2004) EXT(ARB_texture_gather , ARB_texture_gather , GLL, GLC, x , x , 2009) EXT(ARB_texture_mirror_clamp_to_edge , ARB_texture_mirror_clamp_to_edge , GLL, GLC, x , x , 2013) EXT(ARB_texture_mirrored_repeat , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_multisample , ARB_texture_multisample , GLL, GLC, x , x , 2009) EXT(ARB_texture_non_power_of_two , ARB_texture_non_power_of_two , GLL, GLC, x , x , 2003) EXT(ARB_texture_query_levels , ARB_texture_query_levels , GLL, GLC, x , x , 2012) EXT(ARB_texture_query_lod , ARB_texture_query_lod , GLL, GLC, x , x , 2009) EXT(ARB_texture_rectangle , NV_texture_rectangle , GLL, GLC, x , x , 2004) EXT(ARB_texture_rg , ARB_texture_rg , GLL, GLC, x , x , 2008) EXT(ARB_texture_rgb10_a2ui , ARB_texture_rgb10_a2ui , GLL, GLC, x , x , 2009) EXT(ARB_texture_stencil8 , ARB_texture_stencil8 , GLL, GLC, x , x , 2013) EXT(ARB_texture_storage , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_texture_storage_multisample , ARB_texture_multisample , GLL, GLC, x , x , 2012) EXT(ARB_texture_swizzle , EXT_texture_swizzle , GLL, GLC, x , x , 2008) EXT(ARB_texture_view , ARB_texture_view , GLL, GLC, x , x , 2012) EXT(ARB_timer_query , ARB_timer_query , GLL, GLC, x , x , 2010) EXT(ARB_transform_feedback2 , ARB_transform_feedback2 , GLL, GLC, x , x , 2010) EXT(ARB_transform_feedback3 , ARB_transform_feedback3 , GLL, GLC, x , x , 2010) EXT(ARB_transform_feedback_instanced , ARB_transform_feedback_instanced , GLL, GLC, x , x , 2011) EXT(ARB_transform_feedback_overflow_query , ARB_transform_feedback_overflow_query , GLL, GLC, x , x , 2014) EXT(ARB_transpose_matrix , dummy_true , GLL, x , x , x , 1999) EXT(ARB_uniform_buffer_object , ARB_uniform_buffer_object , GLL, GLC, x , x , 2009) EXT(ARB_vertex_array_bgra , EXT_vertex_array_bgra , GLL, GLC, x , x , 2008) EXT(ARB_vertex_array_object , dummy_true , GLL, GLC, x , x , 2006) EXT(ARB_vertex_attrib_64bit , ARB_vertex_attrib_64bit , 32, GLC, x , x , 2010) EXT(ARB_vertex_attrib_binding , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_vertex_buffer_object , dummy_true , GLL, GLC, x , x , 2003) EXT(ARB_vertex_program , ARB_vertex_program , GLL, x , x , x , 2002) EXT(ARB_vertex_shader , ARB_vertex_shader , GLL, GLC, x , x , 2002) EXT(ARB_vertex_type_10f_11f_11f_rev , ARB_vertex_type_10f_11f_11f_rev , GLL, GLC, x , x , 2013) EXT(ARB_vertex_type_2_10_10_10_rev , ARB_vertex_type_2_10_10_10_rev , GLL, GLC, x , x , 2009) EXT(ARB_viewport_array , ARB_viewport_array , GLL, GLC, x , x , 2010) EXT(ARB_window_pos , dummy_true , GLL, x , x , x , 2001) EXT(ARM_shader_framebuffer_fetch_depth_stencil, ARM_shader_framebuffer_fetch_depth_stencil, GLL, GLC, x , ES2, 2014) EXT(ATI_blend_equation_separate , EXT_blend_equation_separate , GLL, GLC, x , x , 2003) EXT(ATI_draw_buffers , dummy_true , GLL, x , x , x , 2002) EXT(ATI_fragment_shader , ATI_fragment_shader , GLL, x , x , x , 2001) EXT(ATI_meminfo , ATI_meminfo , GLL, GLC, x , x , 2009) EXT(ATI_separate_stencil , EXT_stencil_two_side , GLL, x , x , x , 2006) EXT(ATI_texture_compression_3dc , ATI_texture_compression_3dc , GLL, x , x , x , 2004) EXT(ATI_texture_env_combine3 , ATI_texture_env_combine3 , GLL, x , x , x , 2002) EXT(ATI_texture_float , ARB_texture_float , GLL, GLC, x , x , 2002) EXT(ATI_texture_mirror_once , ATI_texture_mirror_once , GLL, GLC, x , x , 2006) EXT(EXT_EGL_image_storage , EXT_EGL_image_storage , GLL, GLC , x , 30, 2018) EXT(EXT_EGL_image_storage_compression , EXT_EGL_image_storage , GLL, GLC , x , 30, 2021) EXT(EXT_EGL_sync , dummy_true , GLL, GLC, x , x , 2019) EXT(EXT_abgr , dummy_true , GLL, GLC, x , x , 1995) EXT(EXT_base_instance , ARB_base_instance , x , x , x , 30, 2014) EXT(EXT_bgra , dummy_true , GLL, x , x , x , 1995) EXT(EXT_blend_color , dummy_true , GLL, x , x , x , 1995) EXT(EXT_blend_equation_separate , EXT_blend_equation_separate , GLL, GLC, x , x , 2003) EXT(EXT_blend_func_extended , ARB_blend_func_extended , x , x , x , ES2, 2015) EXT(EXT_blend_func_separate , dummy_true , GLL, x , x , x , 1999) EXT(EXT_blend_minmax , dummy_true , GLL, x , ES1, ES2, 1995) EXT(EXT_blend_subtract , dummy_true , GLL, x , x , x , 1995) EXT(EXT_buffer_storage , ARB_buffer_storage , x , x , x , 31, 2015) EXT(EXT_clear_texture , dummy_true , x , x , x , 31, 2016) EXT(EXT_clip_control , ARB_clip_control , x , x , x , ES2, 2017) EXT(EXT_clip_cull_distance , ARB_cull_distance , x , x , x , 30, 2016) EXT(EXT_color_buffer_float , EXT_color_buffer_float , x , x , x , 30, 2013) EXT(EXT_color_buffer_half_float , EXT_color_buffer_half_float , x , x , x , 20, 2017) EXT(EXT_compiled_vertex_array , dummy_true , GLL, x , x , x , 1996) EXT(EXT_compressed_ETC1_RGB8_sub_texture , OES_compressed_ETC1_RGB8_texture , x , x , ES1, ES2, 2014) EXT(EXT_copy_image , OES_copy_image , x , x , x , 30, 2014) EXT(EXT_copy_texture , dummy_true , GLL, x , x , x , 1995) EXT(EXT_debug_label , dummy_true , GLL, GLC, 11, ES2, 2013) EXT(EXT_demote_to_helper_invocation , EXT_demote_to_helper_invocation , GLL, GLC, ES1, ES2, 2019) EXT(EXT_depth_bounds_test , EXT_depth_bounds_test , GLL, GLC, x , x , 2002) EXT(EXT_depth_clamp , ARB_depth_clamp , x , x , x , ES2, 2019) EXT(EXT_direct_state_access , dummy_true , GLL, x , x , x , 2010) EXT(EXT_discard_framebuffer , dummy_true , x , x , ES1, ES2, 2009) EXT(EXT_disjoint_timer_query , EXT_disjoint_timer_query , x , x , x , ES2, 2016) EXT(EXT_draw_buffers , dummy_true , x , x , x , ES2, 2012) EXT(EXT_draw_buffers2 , EXT_draw_buffers2 , GLL, GLC, x , x , 2006) EXT(EXT_draw_buffers_indexed , ARB_draw_buffers_blend , x , x , x , 30, 2014) EXT(EXT_draw_elements_base_vertex , ARB_draw_elements_base_vertex , x , x , x , ES2, 2014) EXT(EXT_draw_instanced , ARB_draw_instanced , GLL, GLC, x , ES2 , 2006) EXT(EXT_draw_range_elements , dummy_true , GLL, x , x , x , 1997) EXT(EXT_float_blend , EXT_float_blend , x , x , x , 30, 2015) EXT(EXT_fog_coord , dummy_true , GLL, x , x , x , 1999) EXT(EXT_frag_depth , dummy_true , x , x , x , ES2, 2010) EXT(EXT_framebuffer_blit , dummy_true , GLL, GLC, x , x , 2005) EXT(EXT_framebuffer_multisample , EXT_framebuffer_multisample , GLL, GLC, x , x , 2005) EXT(EXT_framebuffer_multisample_blit_scaled , EXT_framebuffer_multisample_blit_scaled, GLL, GLC, x , x , 2011) EXT(EXT_framebuffer_object , dummy_true , GLL, GLC, x , x , 2000) EXT(EXT_framebuffer_sRGB , EXT_framebuffer_sRGB , GLL, GLC, x , x , 1998) EXT(EXT_geometry_point_size , OES_geometry_shader , x , x , x , 31, 2015) EXT(EXT_geometry_shader , OES_geometry_shader , x , x , x , 31, 2015) EXT(EXT_gpu_program_parameters , EXT_gpu_program_parameters , GLL, x , x , x , 2006) /* Since all of EXT_gpu_shader4 features were rolled into GLSL 1.40, it shouldn't be exposed in a core context. * Additionally, EXT_gpu_shader4 would reintroduce functions that were removed in GLSL 1.40. */ EXT(EXT_gpu_shader4 , EXT_gpu_shader4 , GLL, x , x , x , 2006) EXT(EXT_gpu_shader5 , ARB_gpu_shader5 , x , x , x , 31, 2014) EXT(EXT_instanced_arrays , ARB_instanced_arrays , x , x , x , ES2, 2012) EXT(EXT_map_buffer_range , ARB_map_buffer_range , x , x , ES1, ES2, 2012) EXT(EXT_memory_object , EXT_memory_object , GLL, GLC, x , ES2, 2017) EXT(EXT_memory_object_fd , EXT_memory_object_fd , GLL, GLC, x , ES2, 2017) EXT(EXT_memory_object_win32 , EXT_memory_object_win32 , GLL, GLC, x , ES2, 2017) EXT(EXT_multi_draw_arrays , dummy_true , GLL, x , ES1, ES2, 1999) EXT(EXT_multi_draw_indirect , ARB_draw_indirect , x , x, x , 31, 2014) EXT(EXT_multisampled_render_to_texture , EXT_multisampled_render_to_texture , x , x , x , ES2, 2016) EXT(EXT_multisampled_render_to_texture2 , EXT_multisampled_render_to_texture , x , x , x , ES2, 2016) EXT(EXT_occlusion_query_boolean , ARB_occlusion_query2 , x , x , x , ES2, 2011) EXT(EXT_packed_depth_stencil , dummy_true , GLL, GLC, x , x , 2005) EXT(EXT_packed_float , EXT_packed_float , GLL, GLC, x , x , 2004) EXT(EXT_packed_pixels , dummy_true , GLL, x , x , x , 1997) EXT(EXT_pixel_buffer_object , dummy_true , GLL, GLC, x , x , 2004) EXT(EXT_point_parameters , dummy_true , GLL, x , x , x , 1997) EXT(EXT_polygon_offset_clamp , ARB_polygon_offset_clamp , GLL, GLC, ES1, ES2, 2014) EXT(EXT_primitive_bounding_box , OES_primitive_bounding_box , x , x , x , 31, 2014) EXT(EXT_provoking_vertex , EXT_provoking_vertex , GLL, GLC, x , x , 2009) EXT(EXT_read_format_bgra , dummy_true , x , x , ES1, ES2, 2009) EXT(EXT_render_snorm , EXT_render_snorm , x , x , x, 30, 2014) EXT(EXT_rescale_normal , dummy_true , GLL, x , x , x , 1997) EXT(EXT_robustness , KHR_robustness , x, x, x , ES2, 2011) EXT(EXT_sRGB_write_control , EXT_framebuffer_sRGB , x, x , x , 30, 2013) EXT(EXT_secondary_color , dummy_true , GLL, x , x , x , 1999) EXT(EXT_semaphore , EXT_semaphore , GLL, GLC, x , ES2, 2017) EXT(EXT_semaphore_fd , EXT_semaphore_fd , GLL, GLC, x , ES2, 2017) EXT(EXT_semaphore_win32 , EXT_semaphore_win32 , GLL, GLC, x , ES2, 2017) EXT(EXT_separate_shader_objects , dummy_true , x , x , x , ES2, 2013) EXT(EXT_separate_specular_color , dummy_true , GLL, x , x , x , 1997) EXT(EXT_shader_framebuffer_fetch , EXT_shader_framebuffer_fetch , GLL, GLC, x , ES2, 2013) EXT(EXT_shader_framebuffer_fetch_non_coherent, EXT_shader_framebuffer_fetch_non_coherent, GLL, GLC, x, ES2, 2018) EXT(EXT_shader_group_vote , ARB_shader_group_vote , x, x, x , 30, 2013) EXT(EXT_shader_image_load_formatted , EXT_shader_image_load_formatted , GLL, GLC, x , x , 2014) EXT(EXT_shader_image_load_store , EXT_shader_image_load_store , GLL, GLC, x , x , 2010) EXT(EXT_shader_implicit_conversions , dummy_true , x , x , x , 31, 2013) EXT(EXT_shader_integer_mix , EXT_shader_integer_mix , GLL, GLC, x , 30, 2013) EXT(EXT_shader_io_blocks , dummy_true , x , x , x , 31, 2014) EXT(EXT_shader_samples_identical , EXT_shader_samples_identical , GLL, GLC, x , 31, 2015) EXT(EXT_shadow_funcs , ARB_shadow , GLL, x , x , x , 2002) EXT(EXT_shadow_samplers , ARB_shadow , x , x , x , ES2, 2012) EXT(EXT_stencil_two_side , EXT_stencil_two_side , GLL, x , x , x , 2001) EXT(EXT_stencil_wrap , dummy_true , GLL, x , x , x , 2002) EXT(EXT_subtexture , dummy_true , GLL, x , x , x , 1995) EXT(EXT_tessellation_point_size , ARB_tessellation_shader , x , x , x , 31, 2013) EXT(EXT_tessellation_shader , ARB_tessellation_shader , x , x , x , 31, 2013) EXT(EXT_texture , dummy_true , GLL, x , x , x , 1996) EXT(EXT_texture3D , dummy_true , GLL, x , x , x , 1996) EXT(EXT_texture_array , EXT_texture_array , GLL, GLC, x , x , 2006) EXT(EXT_texture_border_clamp , dummy_true , x , x , x , ES2, 2014) EXT(EXT_texture_buffer , OES_texture_buffer , x , x , x , 31, 2014) EXT(EXT_texture_buffer_object , EXT_texture_buffer_object , GLL, x , x , x , 2007) EXT(EXT_texture_compression_astc_decode_mode, EXT_texture_compression_astc_decode_mode, GLL, GLC, x , 30, 2017) EXT(EXT_texture_compression_bptc , ARB_texture_compression_bptc , x , x , x , 30, 2017) EXT(EXT_texture_compression_dxt1 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2004) EXT(EXT_texture_compression_latc , EXT_texture_compression_latc , GLL, x , x , x , 2006) EXT(EXT_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , 30, 2004) EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , ES2, 2000) EXT(EXT_texture_compression_s3tc_srgb , EXT_texture_compression_s3tc_srgb , x , x, x , ES2, 2016) EXT(EXT_texture_cube_map , dummy_true , GLL, x , x , x , 2001) EXT(EXT_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014) EXT(EXT_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997) EXT(EXT_texture_env_add , dummy_true , GLL, x , x , x , 1999) EXT(EXT_texture_env_combine , dummy_true , GLL, x , x , x , 2000) EXT(EXT_texture_env_dot3 , EXT_texture_env_dot3 , GLL, x , x , x , 2000) EXT(EXT_texture_filter_anisotropic , EXT_texture_filter_anisotropic , GLL, GLC, ES1, ES2, 1999) EXT(EXT_texture_filter_minmax , EXT_texture_filter_minmax , GLL, GLC, x , 30, 2015) EXT(EXT_texture_format_BGRA8888 , dummy_true , x , x , ES1, ES2, 2005) EXT(EXT_texture_integer , EXT_texture_integer , GLL, GLC, x , x , 2006) EXT(EXT_texture_lod_bias , dummy_true , GLL, x , ES1, x , 1999) EXT(EXT_texture_mirror_clamp , EXT_texture_mirror_clamp , GLL, GLC, x , x , 2004) EXT(EXT_texture_mirror_clamp_to_edge , ARB_texture_mirror_clamp_to_edge , x , x , x , ES2, 2017) EXT(EXT_texture_norm16 , EXT_texture_norm16 , x , x , x , 31, 2014) EXT(EXT_texture_object , dummy_true , GLL, x , x , x , 1995) EXT(EXT_texture_query_lod , ARB_texture_query_lod , x , x , x , 30, 2019) EXT(EXT_texture_rectangle , NV_texture_rectangle , GLL, x , x , x , 2004) EXT(EXT_texture_rg , ARB_texture_rg , x , x , x , ES2, 2011) EXT(EXT_texture_sRGB , EXT_texture_sRGB , GLL, GLC, x , x , 2004) EXT(EXT_texture_sRGB_R8 , EXT_texture_sRGB_R8 , GLL, GLC, x , 30, 2015) EXT(EXT_texture_sRGB_RG8 , EXT_texture_sRGB_RG8 , GLL, GLC, x , 30, 2015) EXT(EXT_texture_sRGB_decode , EXT_texture_sRGB_decode , GLL, GLC, x , 30, 2006) EXT(EXT_texture_shadow_lod , EXT_texture_shadow_lod , GLL, GLC, x , 30, 2018) EXT(EXT_texture_shared_exponent , EXT_texture_shared_exponent , GLL, GLC, x , x , 2004) EXT(EXT_texture_snorm , EXT_texture_snorm , GLL, GLC, x , x , 2009) EXT(EXT_texture_storage , dummy_true , GLL, GLC, x , ES2, 2009) EXT(EXT_texture_storage_compression , dummy_true , x , x , x , 30, 2021) EXT(EXT_texture_swizzle , EXT_texture_swizzle , GLL, GLC, x , x , 2008) EXT(EXT_texture_type_2_10_10_10_REV , EXT_texture_type_2_10_10_10_REV , x , x , x , ES2, 2008) EXT(EXT_texture_view , OES_texture_view , x , x , x , 31, 2014) EXT(EXT_timer_query , EXT_timer_query , GLL, GLC, x , x , 2006) EXT(EXT_transform_feedback , EXT_transform_feedback , GLL, GLC, x , x , 2011) EXT(EXT_unpack_subimage , dummy_true , x , x , x , ES2, 2011) EXT(EXT_vertex_array , dummy_true , GLL, x , x , x , 1995) EXT(EXT_vertex_array_bgra , EXT_vertex_array_bgra , GLL, GLC, x , x , 2008) EXT(EXT_vertex_attrib_64bit , ARB_vertex_attrib_64bit , 32, GLC, x , x , 2010) EXT(EXT_window_rectangles , EXT_window_rectangles , GLL, GLC, x , 30, 2016) EXT(GREMEDY_string_marker , GREMEDY_string_marker , GLL, GLC, x , x , 2007) EXT(IBM_multimode_draw_arrays , dummy_true , GLL, GLC, x , x , 1998) EXT(IBM_rasterpos_clip , dummy_true , GLL, x , x , x , 1996) EXT(IBM_texture_mirrored_repeat , dummy_true , GLL, x , x , x , 1998) EXT(INGR_blend_func_separate , dummy_true , GLL, x , x , x , 1999) EXT(INTEL_blackhole_render , INTEL_blackhole_render , 30, 30, x , ES2, 2018) EXT(INTEL_conservative_rasterization , INTEL_conservative_rasterization , x , GLC, x , 31, 2013) EXT(INTEL_performance_query , INTEL_performance_query , GLL, GLC, x , ES2, 2013) EXT(INTEL_shader_atomic_float_minmax , INTEL_shader_atomic_float_minmax , GLL, GLC, x , x , 2018) EXT(INTEL_shader_integer_functions2 , INTEL_shader_integer_functions2 , GLL, GLC, x , x , 2018) EXT(KHR_blend_equation_advanced , KHR_blend_equation_advanced , GLL, GLC, x , ES2, 2014) EXT(KHR_blend_equation_advanced_coherent , KHR_blend_equation_advanced_coherent , GLL, GLC, x , ES2, 2014) EXT(KHR_context_flush_control , dummy_true , GLL, GLC, x , ES2, 2014) EXT(KHR_debug , dummy_true , GLL, GLC, 11, ES2, 2012) EXT(KHR_no_error , dummy_true , GLL, GLC, ES1, ES2, 2015) EXT(KHR_parallel_shader_compile , dummy_true , GLL, GLC, x , ES2, 2017) EXT(KHR_robust_buffer_access_behavior , ARB_robust_buffer_access_behavior , GLL, GLC, x , ES2, 2014) EXT(KHR_robustness , KHR_robustness , GLL, GLC, x , ES2, 2012) EXT(KHR_shader_subgroup , KHR_shader_subgroup , 43, 43, x , 31, 2019) EXT(KHR_texture_compression_astc_hdr , KHR_texture_compression_astc_hdr , GLL, GLC, x , ES2, 2012) EXT(KHR_texture_compression_astc_ldr , KHR_texture_compression_astc_ldr , GLL, GLC, x , ES2, 2012) EXT(KHR_texture_compression_astc_sliced_3d , KHR_texture_compression_astc_sliced_3d , GLL, GLC, x , ES2, 2015) EXT(MESA_bgra , dummy_true , x , x , x , ES2, 2021) EXT(MESA_framebuffer_flip_y , MESA_framebuffer_flip_y , 43, 43, x , 30, 2018) EXT(MESA_pack_invert , MESA_pack_invert , GLL, GLC, x , x , 2002) EXT(MESA_sampler_objects , dummy_true , x , x , x , ES2, 2019) EXT(MESA_shader_integer_functions , MESA_shader_integer_functions , GLL, GLC, x , 30, 2016) EXT(MESA_texture_const_bandwidth , MESA_texture_const_bandwidth , GLL, GLC, x , ES2, 2023) EXT(MESA_texture_signed_rgba , EXT_texture_snorm , GLL, GLC, x , x , 2009) EXT(MESA_tile_raster_order , MESA_tile_raster_order , GLL, GLC, x , ES2, 2017) EXT(MESA_window_pos , MESA_window_pos , GLL, x , x , x , 2000) EXT(MESA_ycbcr_texture , MESA_ycbcr_texture , GLL, GLC, x , x , 2002) EXT(NVX_gpu_memory_info , NVX_gpu_memory_info , GLL, GLC, x , x , 2013) EXT(NV_ES1_1_compatibility , dummy_true , GLL, x , x , x , 2022) EXT(NV_alpha_to_coverage_dither_control , NV_alpha_to_coverage_dither_control , GLL, GLC, x , ES2, 2017) EXT(NV_blend_square , dummy_true , GLL, x , x , x , 1999) EXT(NV_compute_shader_derivatives , NV_compute_shader_derivatives , GLL, GLC, x , 32, 2018) EXT(NV_conditional_render , NV_conditional_render , GLL, GLC, x , ES2, 2008) EXT(NV_conservative_raster , NV_conservative_raster , GLL, GLC, ES1, ES2, 2015) EXT(NV_conservative_raster_dilate , NV_conservative_raster_dilate , GLL, GLC, ES1, ES2, 2015) EXT(NV_conservative_raster_pre_snap , NV_conservative_raster_pre_snap , GLL, GLC, ES1, ES2, 2017) EXT(NV_conservative_raster_pre_snap_triangles, NV_conservative_raster_pre_snap_triangles, GLL, GLC, ES1, ES2, 2015) EXT(NV_copy_depth_to_color , NV_copy_depth_to_color , GLL, x , x , x, 2001) EXT(NV_copy_image , NV_copy_image , GLL, GLC, x , x, 2009) EXT(NV_depth_clamp , ARB_depth_clamp , GLL, GLC, x , x , 2001) EXT(NV_draw_buffers , dummy_true , x , x , x , ES2, 2011) EXT(NV_fbo_color_attachments , dummy_true , x , x , x , ES2, 2010) EXT(NV_fill_rectangle , NV_fill_rectangle , GLL, GLC, x , x , 2015) EXT(NV_fog_distance , NV_fog_distance , GLL, x , x , x , 2001) EXT(NV_fragment_shader_interlock , ARB_fragment_shader_interlock , GLL, GLC, x , 31, 2015) EXT(NV_generate_mipmap_sRGB , EXT_framebuffer_sRGB , x , x , ES1, ES2, 2012) EXT(NV_half_float , ARB_half_float_vertex , GLL, x , x , x , 2001) EXT(NV_image_formats , dummy_true , x , x , x , 31, 2014) EXT(NV_light_max_exponent , dummy_true , GLL, x , x , x , 1999) EXT(NV_pack_subimage , dummy_true , x , x , x , ES2, 2009) EXT(NV_packed_depth_stencil , dummy_true , GLL, GLC, x , x , 2000) EXT(NV_pixel_buffer_object , dummy_true , x , x , x , ES2, 2012) EXT(NV_primitive_restart , NV_primitive_restart , GLL, x , x , x , 2002) EXT(NV_read_buffer , dummy_true , x , x , x , ES2, 2011) EXT(NV_read_depth , dummy_true , x , x , x , ES2, 2011) EXT(NV_read_depth_stencil , dummy_true , x , x , x , ES2, 2011) EXT(NV_read_stencil , dummy_true , x , x , x , ES2, 2011) EXT(NV_sample_locations , ARB_sample_locations , GLL, GLC, x , ES2, 2015) EXT(NV_shader_atomic_float , NV_shader_atomic_float , GLL, GLC, x , x , 2012) EXT(NV_shader_atomic_int64 , NV_shader_atomic_int64 , GLL, GLC, x , x , 2014) EXT(NV_shader_noperspective_interpolation , EXT_gpu_shader4 , x , x , x , 30, 2014) EXT(NV_texgen_reflection , dummy_true , GLL, x , x , x , 1999) EXT(NV_texture_barrier , NV_texture_barrier , GLL, GLC, x , ES2, 2009) EXT(NV_texture_env_combine4 , NV_texture_env_combine4 , GLL, x , x , x , 1999) EXT(NV_texture_rectangle , NV_texture_rectangle , GLL, x , x , x , 2000) EXT(NV_vdpau_interop , NV_vdpau_interop , GLL, GLC, x , x , 2010) EXT(NV_viewport_array2 , NV_viewport_array2 , GLL, GLC, x , 31, 2015) EXT(NV_viewport_swizzle , NV_viewport_swizzle , GLL, GLC, x , 31, 2015) EXT(OES_EGL_image , OES_EGL_image , GLL, GLC, ES1, ES2, 2006) /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL contexts. */ EXT(OES_EGL_image_external , OES_EGL_image_external , x , x , ES1, ES2, 2010) EXT(OES_EGL_image_external_essl3 , OES_EGL_image_external , x , x , x , 30, 2015) EXT(OES_EGL_sync , dummy_true , x , x , ES1, ES2, 2010) EXT(OES_blend_equation_separate , EXT_blend_equation_separate , x , x , ES1, x , 2009) EXT(OES_blend_func_separate , dummy_true , x , x , ES1, x , 2009) EXT(OES_blend_subtract , dummy_true , x , x , ES1, x , 2009) EXT(OES_byte_coordinates , dummy_true , x , x , ES1, x , 2002) EXT(OES_compressed_ETC1_RGB8_texture , OES_compressed_ETC1_RGB8_texture , x , x , ES1, ES2, 2005) EXT(OES_compressed_paletted_texture , dummy_true , x , x , ES1, x , 2003) EXT(OES_copy_image , OES_copy_image , x , x , x , 30, 2014) EXT(OES_depth24 , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_depth_texture , dummy_true , x , x , x , ES2, 2006) EXT(OES_depth_texture_cube_map , OES_depth_texture_cube_map , x , x , x , ES2, 2012) EXT(OES_draw_buffers_indexed , ARB_draw_buffers_blend , x , x , x , 30, 2014) EXT(OES_draw_elements_base_vertex , ARB_draw_elements_base_vertex , x , x , x , ES2, 2014) EXT(OES_draw_texture , OES_draw_texture , x , x , ES1, x , 2004) EXT(OES_element_index_uint , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_fbo_render_mipmap , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_fixed_point , dummy_true , x , x , ES1, x , 2002) EXT(OES_framebuffer_object , dummy_true , x , x , ES1, x , 2005) EXT(OES_geometry_point_size , OES_geometry_shader , x , x , x , 31, 2015) EXT(OES_geometry_shader , OES_geometry_shader , x , x , x , 31, 2015) EXT(OES_get_program_binary , dummy_true , x , x , x , ES2, 2008) EXT(OES_gpu_shader5 , ARB_gpu_shader5 , x , x , x , 31, 2014) EXT(OES_mapbuffer , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_packed_depth_stencil , dummy_true , x , x , ES1, ES2, 2007) EXT(OES_point_size_array , dummy_true , x , x , ES1, x , 2004) EXT(OES_point_sprite , dummy_true , x , x , ES1, x , 2004) EXT(OES_primitive_bounding_box , OES_primitive_bounding_box , x , x , x , 31, 2014) EXT(OES_query_matrix , dummy_true , x , x , ES1, x , 2003) EXT(OES_read_format , dummy_true , GLL, x , ES1, x , 2003) EXT(OES_required_internalformat , dummy_true , x , x , ES1, ES2, 2012) EXT(OES_rgb8_rgba8 , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_sample_shading , OES_sample_variables , x , x , x , 30, 2014) EXT(OES_sample_variables , OES_sample_variables , x , x , x , 30, 2014) EXT(OES_shader_image_atomic , dummy_true , x , x , x , 31, 2015) EXT(OES_shader_io_blocks , dummy_true , x , x , x , 31, 2014) EXT(OES_shader_multisample_interpolation , OES_sample_variables , x , x , x , 30, 2014) EXT(OES_single_precision , dummy_true , x , x , ES1, x , 2003) EXT(OES_standard_derivatives , OES_standard_derivatives , x , x , x , ES2, 2005) EXT(OES_stencil8 , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_stencil_wrap , dummy_true , x , x , ES1, x , 2002) EXT(OES_surfaceless_context , dummy_true , x , x , ES1, ES2, 2012) EXT(OES_tessellation_point_size , ARB_tessellation_shader , x , x , x , 31, 2014) EXT(OES_tessellation_shader , ARB_tessellation_shader , x , x , x , 31, 2014) EXT(OES_texture_3D , OES_texture_3D , x , x , x , ES2, 2005) EXT(OES_texture_border_clamp , dummy_true , x , x , x , ES2, 2014) EXT(OES_texture_buffer , OES_texture_buffer , x , x , x , 31, 2014) EXT(OES_texture_compression_astc , OES_texture_compression_astc , x , x , ES1, ES2, 2015) EXT(OES_texture_cube_map , dummy_true , x , x , ES1, x , 2007) EXT(OES_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014) EXT(OES_texture_env_crossbar , dummy_true , x , x , ES1, x , 2005) EXT(OES_texture_float , OES_texture_float , x , x , x , ES2, 2005) EXT(OES_texture_float_linear , OES_texture_float_linear , x , x , x , ES2, 2005) EXT(OES_texture_half_float , OES_texture_half_float , x , x , x , ES2, 2005) EXT(OES_texture_half_float_linear , OES_texture_half_float_linear , x , x , x , ES2, 2005) EXT(OES_texture_mirrored_repeat , dummy_true , x , x , ES1, x , 2005) EXT(OES_texture_npot , ARB_texture_non_power_of_two , x , x , ES1, ES2, 2005) EXT(OES_texture_stencil8 , ARB_texture_stencil8 , x , x , x , 30, 2014) EXT(OES_texture_storage_multisample_2d_array, ARB_texture_multisample , x , x , x , 31, 2014) EXT(OES_texture_view , OES_texture_view , x , x , x , 31, 2014) EXT(OES_vertex_array_object , dummy_true , x , x , ES1, ES2, 2010) EXT(OES_vertex_half_float , ARB_half_float_vertex , x , x , x , ES2, 2005) EXT(OES_viewport_array , OES_viewport_array , x , x , x , 31, 2010) EXT(OVR_multiview , OVR_multiview , GLL, GLC, x , 30, 2018) EXT(OVR_multiview2 , OVR_multiview2 , GLL, GLC, x , 30, 2018) EXT(OVR_multiview_multisampled_render_to_texture, OVR_multiview_multisampled_render_to_texture, GLL, GLC, x , 30, 2018) EXT(S3_s3tc , ANGLE_texture_compression_dxt , GLL, GLC, x , x , 1999) EXT(SGIS_generate_mipmap , dummy_true , GLL, x , x , x , 1997) EXT(SGIS_texture_border_clamp , dummy_true , GLL, x , x , x , 1997) EXT(SGIS_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997) EXT(SGIS_texture_lod , dummy_true , GLL, x , x , x , 1997) EXT(SUN_multi_draw_arrays , dummy_true , GLL, x , x , x , 1999) #undef GLL #undef GLC #undef ES1 #undef ES2 #undef x #endif /* extensions_table.h expanded by -frewrite-includes */ # 91 "../mesa/src/mesa/main/extensions.h" 2 #undef EXT MESA_EXTENSION_COUNT }; /** Checks if the context supports a user-facing extension */ #define EXT(name_str, driver_cap, ...) \ static inline bool \ _mesa_has_##name_str(const struct gl_context *ctx) \ { \ return ctx->Extensions.driver_cap && (ctx->Extensions.Version >= \ _mesa_extension_table[MESA_EXTENSION_##name_str].version[ctx->API]); \ } #if defined(__CLANG_REWRITTEN_INCLUDES) /* extensions_table.h expanded by -frewrite-includes */ #include "extensions_table.h" #else /* extensions_table.h expanded by -frewrite-includes */ # 104 "../mesa/src/mesa/main/extensions.h" # 1 "../mesa/src/mesa/main/extensions_table.h" 1 /* The extension table is alphabetically sorted by the extension name string column. */ #define GLL 0 #define GLC 0 #define ES1 0 #define ES2 0 #define x ~0 EXT(3DFX_texture_compression_FXT1 , TDFX_texture_compression_FXT1 , GLL, GLC, x , x , 1999) EXT(AMD_compressed_ATC_texture , AMD_compressed_ATC_texture , x , x , ES1, ES2, 2008) EXT(AMD_conservative_depth , ARB_conservative_depth , GLL, GLC, x , x , 2009) EXT(AMD_depth_clamp_separate , AMD_depth_clamp_separate , GLL, GLC, x , x , 2009) EXT(AMD_draw_buffers_blend , ARB_draw_buffers_blend , GLL, GLC, x , x , 2009) EXT(AMD_framebuffer_multisample_advanced , AMD_framebuffer_multisample_advanced , GLL, GLC, x , ES2, 2018) EXT(AMD_gpu_shader_half_float , AMD_gpu_shader_half_float , 40, 40, x , x , 2016) EXT(AMD_gpu_shader_int64 , ARB_gpu_shader_int64 , x , GLC, x , x , 2015) EXT(AMD_multi_draw_indirect , ARB_draw_indirect , GLL, GLC, x , x , 2011) EXT(AMD_performance_monitor , AMD_performance_monitor , GLL, GLC, x , ES2, 2007) EXT(AMD_pinned_memory , AMD_pinned_memory , GLL, GLC, x , x , 2013) EXT(AMD_query_buffer_object , ARB_query_buffer_object , GLL, GLC, x , x , 2012) EXT(AMD_seamless_cubemap_per_texture , AMD_seamless_cubemap_per_texture , GLL, GLC, x , x , 2009) EXT(AMD_shader_stencil_export , ARB_shader_stencil_export , GLL, GLC, x , x , 2009) EXT(AMD_shader_trinary_minmax , dummy_true , GLL, GLC, x , x , 2012) EXT(AMD_texture_texture4 , ARB_texture_gather , GLL, GLC, x , x , 2008) EXT(AMD_vertex_shader_layer , AMD_vertex_shader_layer , GLL, GLC, x , x , 2012) EXT(AMD_vertex_shader_viewport_index , AMD_vertex_shader_viewport_index , GLL, GLC, x , x , 2012) EXT(ANDROID_extension_pack_es31a , ANDROID_extension_pack_es31a , x , x , x , 31, 2014) EXT(ANGLE_pack_reverse_row_order , dummy_true , x , x , x , ES2, 2011) EXT(ANGLE_texture_compression_dxt3 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2011) EXT(ANGLE_texture_compression_dxt5 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2011) EXT(APPLE_packed_pixels , dummy_true , GLL, x , x , x , 2002) EXT(APPLE_sync , ARB_sync , x , x , ES1, ES2, 2012) EXT(APPLE_texture_max_level , dummy_true , x , x , ES1, ES2, 2009) EXT(ARB_ES2_compatibility , ARB_ES2_compatibility , GLL, GLC, x , x , 2009) EXT(ARB_ES3_1_compatibility , ARB_ES3_1_compatibility , GLL, GLC, x , x , 2014) EXT(ARB_ES3_2_compatibility , ARB_ES3_2_compatibility , GLL, GLC, x , x , 2015) EXT(ARB_ES3_compatibility , ARB_ES3_compatibility , GLL, GLC, x , x , 2012) EXT(ARB_arrays_of_arrays , ARB_arrays_of_arrays , GLL, GLC, x , x , 2012) EXT(ARB_base_instance , ARB_base_instance , GLL, GLC, x , x , 2011) EXT(ARB_bindless_texture , ARB_bindless_texture , GLL, GLC, x , x , 2013) EXT(ARB_blend_func_extended , ARB_blend_func_extended , GLL, GLC, x , x , 2009) EXT(ARB_buffer_storage , ARB_buffer_storage , GLL, GLC, x , x , 2013) EXT(ARB_clear_buffer_object , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_clear_texture , dummy_true , GLL, GLC, x , x , 2013) EXT(ARB_clip_control , ARB_clip_control , GLL, GLC, x , x , 2014) EXT(ARB_color_buffer_float , ARB_color_buffer_float , GLL, GLC, x , x , 2004) EXT(ARB_compatibility , ARB_compatibility , GLL, x , x , x , 2009) EXT(ARB_compressed_texture_pixel_storage , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_compute_shader , ARB_compute_shader , GLL, GLC, x , x , 2012) EXT(ARB_compute_variable_group_size , ARB_compute_variable_group_size , GLL, GLC, x , x , 2013) EXT(ARB_conditional_render_inverted , ARB_conditional_render_inverted , GLL, GLC, x , x , 2014) EXT(ARB_conservative_depth , ARB_conservative_depth , GLL, GLC, x , x , 2011) EXT(ARB_copy_buffer , dummy_true , GLL, GLC, x , x , 2008) EXT(ARB_copy_image , ARB_copy_image , GLL, GLC, x , x , 2012) EXT(ARB_cull_distance , ARB_cull_distance , GLL, GLC, x , x , 2014) EXT(ARB_debug_output , dummy_true , GLL, GLC, x , x , 2009) EXT(ARB_depth_buffer_float , ARB_depth_buffer_float , GLL, GLC, x , x , 2008) EXT(ARB_depth_clamp , ARB_depth_clamp , GLL, GLC, x , x , 2003) EXT(ARB_depth_texture , dummy_true , GLL, x , x , x , 2001) EXT(ARB_derivative_control , ARB_derivative_control , GLL, GLC, x , x , 2014) EXT(ARB_direct_state_access , dummy_true , 31, GLC, x , x , 2014) EXT(ARB_draw_buffers , dummy_true , GLL, GLC, x , x , 2002) EXT(ARB_draw_buffers_blend , ARB_draw_buffers_blend , GLL, GLC, x , x , 2009) EXT(ARB_draw_elements_base_vertex , ARB_draw_elements_base_vertex , GLL, GLC, x , x , 2009) EXT(ARB_draw_indirect , ARB_draw_indirect , GLL, GLC, x , x , 2010) EXT(ARB_draw_instanced , ARB_draw_instanced , GLL, GLC, x , x , 2008) EXT(ARB_enhanced_layouts , ARB_enhanced_layouts , GLL, GLC, x , x , 2013) EXT(ARB_explicit_attrib_location , ARB_explicit_attrib_location , GLL, GLC, x , x , 2009) EXT(ARB_explicit_uniform_location , ARB_explicit_uniform_location , GLL, GLC, x , x , 2012) EXT(ARB_fragment_coord_conventions , ARB_fragment_coord_conventions , GLL, GLC, x , x , 2009) EXT(ARB_fragment_layer_viewport , ARB_fragment_layer_viewport , GLL, GLC, x , x , 2012) EXT(ARB_fragment_program , ARB_fragment_program , GLL, x , x , x , 2002) EXT(ARB_fragment_program_shadow , ARB_fragment_program_shadow , GLL, x , x , x , 2003) EXT(ARB_fragment_shader , ARB_fragment_shader , GLL, GLC, x , x , 2002) EXT(ARB_fragment_shader_interlock , ARB_fragment_shader_interlock , GLL, GLC, x , x , 2015) EXT(ARB_framebuffer_no_attachments , ARB_framebuffer_no_attachments , GLL, GLC, x , x , 2012) EXT(ARB_framebuffer_object , ARB_framebuffer_object , GLL, GLC, x , x , 2005) EXT(ARB_framebuffer_sRGB , EXT_framebuffer_sRGB , GLL, GLC, x , x , 1998) EXT(ARB_get_program_binary , dummy_true , GLL, GLC, x , x , 2010) EXT(ARB_get_texture_sub_image , dummy_true , GLL, GLC, x , x , 2014) EXT(ARB_gl_spirv , ARB_gl_spirv , GLL, GLC, x , x , 2016) EXT(ARB_gpu_shader5 , ARB_gpu_shader5 , GLL, GLC, x , x , 2010) EXT(ARB_gpu_shader_fp64 , ARB_gpu_shader_fp64 , 32, GLC, x , x , 2010) EXT(ARB_gpu_shader_int64 , ARB_gpu_shader_int64 , 40, GLC, x , x , 2015) EXT(ARB_half_float_pixel , dummy_true , GLL, GLC, x , x , 2003) EXT(ARB_half_float_vertex , ARB_half_float_vertex , GLL, GLC, x , x , 2008) EXT(ARB_indirect_parameters , ARB_indirect_parameters , GLL, GLC, x , x , 2013) EXT(ARB_instanced_arrays , ARB_instanced_arrays , GLL, GLC, x , x , 2008) EXT(ARB_internalformat_query , ARB_internalformat_query , GLL, GLC, x , x , 2011) EXT(ARB_internalformat_query2 , ARB_internalformat_query2 , GLL, GLC, x , x , 2013) EXT(ARB_invalidate_subdata , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_map_buffer_alignment , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_map_buffer_range , ARB_map_buffer_range , GLL, GLC, x , x , 2008) EXT(ARB_multi_bind , dummy_true , GLL, GLC, x , x , 2013) EXT(ARB_multi_draw_indirect , ARB_draw_indirect , GLL, GLC, x , x , 2012) EXT(ARB_multisample , dummy_true , GLL, x , x , x , 1994) EXT(ARB_multitexture , dummy_true , GLL, x , x , x , 1998) EXT(ARB_occlusion_query , ARB_occlusion_query , GLL, x , x , x , 2001) EXT(ARB_occlusion_query2 , ARB_occlusion_query2 , GLL, GLC, x , x , 2003) EXT(ARB_parallel_shader_compile , dummy_true , GLL, GLC, x , x , 2015) EXT(ARB_pipeline_statistics_query , ARB_pipeline_statistics_query , GLL, GLC, x , x , 2014) EXT(ARB_pixel_buffer_object , dummy_true , GLL, GLC, x , x , 2004) EXT(ARB_point_parameters , dummy_true , GLL, x , x , x , 1997) EXT(ARB_point_sprite , dummy_true , GLL, GLC, x , x , 2003) EXT(ARB_polygon_offset_clamp , ARB_polygon_offset_clamp , GLL, GLC, x , x , 2017) EXT(ARB_post_depth_coverage , ARB_post_depth_coverage , GLL, GLC, x , x, 2015) EXT(ARB_program_interface_query , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_provoking_vertex , EXT_provoking_vertex , GLL, GLC, x , x , 2009) EXT(ARB_query_buffer_object , ARB_query_buffer_object , GLL, GLC, x , x , 2013) EXT(ARB_robust_buffer_access_behavior , ARB_robust_buffer_access_behavior , GLL, GLC, x , x , 2012) EXT(ARB_robustness , dummy_true , GLL, GLC, x , x , 2010) EXT(ARB_sample_locations , ARB_sample_locations , GLL, GLC, x , x , 2015) EXT(ARB_sample_shading , ARB_sample_shading , GLL, GLC, x , x , 2009) EXT(ARB_sampler_objects , dummy_true , GLL, GLC, x , x , 2009) EXT(ARB_seamless_cube_map , ARB_seamless_cube_map , GLL, GLC, x , x , 2009) EXT(ARB_seamless_cubemap_per_texture , AMD_seamless_cubemap_per_texture , GLL, GLC, x , x , 2013) EXT(ARB_separate_shader_objects , dummy_true , GLL, GLC, x , x , 2010) EXT(ARB_shader_atomic_counter_ops , ARB_shader_atomic_counter_ops , GLL, GLC, x , x , 2015) EXT(ARB_shader_atomic_counters , ARB_shader_atomic_counters , GLL, GLC, x , x , 2011) EXT(ARB_shader_ballot , ARB_shader_ballot , GLL, GLC, x , x , 2015) EXT(ARB_shader_bit_encoding , ARB_shader_bit_encoding , GLL, GLC, x , x , 2010) EXT(ARB_shader_clock , ARB_shader_clock , GLL, GLC, x , x , 2015) EXT(ARB_shader_draw_parameters , ARB_shader_draw_parameters , GLL, GLC, x , x , 2013) EXT(ARB_shader_group_vote , ARB_shader_group_vote , GLL, GLC, x , x , 2013) EXT(ARB_shader_image_load_store , ARB_shader_image_load_store , GLL, GLC, x , x , 2011) EXT(ARB_shader_image_size , ARB_shader_image_size , GLL, GLC, x , x , 2012) EXT(ARB_shader_objects , dummy_true , GLL, GLC, x , x , 2002) EXT(ARB_shader_precision , ARB_shader_precision , GLL, GLC, x , x , 2010) EXT(ARB_shader_stencil_export , ARB_shader_stencil_export , GLL, GLC, x , x , 2009) EXT(ARB_shader_storage_buffer_object , ARB_shader_storage_buffer_object , GLL, GLC, x , x , 2012) EXT(ARB_shader_subroutine , dummy_true , 31, GLC, x , x , 2010) EXT(ARB_shader_texture_image_samples , ARB_shader_texture_image_samples , GLL, GLC, x , x , 2014) EXT(ARB_shader_texture_lod , ARB_shader_texture_lod , GLL, GLC, x , x , 2009) EXT(ARB_shader_viewport_layer_array , ARB_shader_viewport_layer_array , GLL, GLC, x , x , 2015) EXT(ARB_shading_language_100 , dummy_true , GLL, x , x , x , 2003) EXT(ARB_shading_language_420pack , ARB_shading_language_420pack , GLL, GLC, x , x , 2011) EXT(ARB_shading_language_include , dummy_true , GLL, GLC, x , x , 2013) EXT(ARB_shading_language_packing , ARB_shading_language_packing , GLL, GLC, x , x , 2011) EXT(ARB_shadow , ARB_shadow , GLL, x , x , x , 2001) EXT(ARB_sparse_buffer , ARB_sparse_buffer , GLL, GLC, x , x , 2014) EXT(ARB_sparse_texture , ARB_sparse_texture , GLL, GLC, x , x , 2013) EXT(ARB_sparse_texture2 , ARB_sparse_texture2 , GLL, GLC, x , x , 2015) EXT(ARB_sparse_texture_clamp , ARB_sparse_texture_clamp , GLL, GLC, x , x , 2015) EXT(ARB_spirv_extensions , ARB_spirv_extensions , GLL, GLC, x , x , 2016) EXT(ARB_stencil_texturing , ARB_stencil_texturing , GLL, GLC, x , x , 2012) EXT(ARB_sync , ARB_sync , GLL, GLC, x , x , 2003) EXT(ARB_tessellation_shader , ARB_tessellation_shader , GLL, GLC, x , x , 2009) EXT(ARB_texture_barrier , NV_texture_barrier , GLL, GLC, x , x , 2014) EXT(ARB_texture_border_clamp , dummy_true , GLL, GLC, x , x , 2000) EXT(ARB_texture_buffer_object , ARB_texture_buffer_object , GLL, GLC, x , x , 2008) EXT(ARB_texture_buffer_object_rgb32 , ARB_texture_buffer_object_rgb32 , GLL, GLC, x , x , 2009) EXT(ARB_texture_buffer_range , ARB_texture_buffer_range , GLL, GLC, x , x , 2012) EXT(ARB_texture_compression , dummy_true , GLL, x , x , x , 2000) EXT(ARB_texture_compression_bptc , ARB_texture_compression_bptc , GLL, GLC, x , x , 2010) EXT(ARB_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , x , 2004) EXT(ARB_texture_cube_map , dummy_true , GLL, x , x , x , 1999) EXT(ARB_texture_cube_map_array , ARB_texture_cube_map_array , GLL, GLC, x , x , 2009) EXT(ARB_texture_env_add , dummy_true , GLL, x , x , x , 1999) EXT(ARB_texture_env_combine , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_env_crossbar , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_env_dot3 , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_filter_anisotropic , ARB_texture_filter_anisotropic , GLL, GLC, x , x , 2017) EXT(ARB_texture_filter_minmax , ARB_texture_filter_minmax , GLL, GLC, x , x , 2015) EXT(ARB_texture_float , ARB_texture_float , GLL, GLC, x , x , 2004) EXT(ARB_texture_gather , ARB_texture_gather , GLL, GLC, x , x , 2009) EXT(ARB_texture_mirror_clamp_to_edge , ARB_texture_mirror_clamp_to_edge , GLL, GLC, x , x , 2013) EXT(ARB_texture_mirrored_repeat , dummy_true , GLL, x , x , x , 2001) EXT(ARB_texture_multisample , ARB_texture_multisample , GLL, GLC, x , x , 2009) EXT(ARB_texture_non_power_of_two , ARB_texture_non_power_of_two , GLL, GLC, x , x , 2003) EXT(ARB_texture_query_levels , ARB_texture_query_levels , GLL, GLC, x , x , 2012) EXT(ARB_texture_query_lod , ARB_texture_query_lod , GLL, GLC, x , x , 2009) EXT(ARB_texture_rectangle , NV_texture_rectangle , GLL, GLC, x , x , 2004) EXT(ARB_texture_rg , ARB_texture_rg , GLL, GLC, x , x , 2008) EXT(ARB_texture_rgb10_a2ui , ARB_texture_rgb10_a2ui , GLL, GLC, x , x , 2009) EXT(ARB_texture_stencil8 , ARB_texture_stencil8 , GLL, GLC, x , x , 2013) EXT(ARB_texture_storage , dummy_true , GLL, GLC, x , x , 2011) EXT(ARB_texture_storage_multisample , ARB_texture_multisample , GLL, GLC, x , x , 2012) EXT(ARB_texture_swizzle , EXT_texture_swizzle , GLL, GLC, x , x , 2008) EXT(ARB_texture_view , ARB_texture_view , GLL, GLC, x , x , 2012) EXT(ARB_timer_query , ARB_timer_query , GLL, GLC, x , x , 2010) EXT(ARB_transform_feedback2 , ARB_transform_feedback2 , GLL, GLC, x , x , 2010) EXT(ARB_transform_feedback3 , ARB_transform_feedback3 , GLL, GLC, x , x , 2010) EXT(ARB_transform_feedback_instanced , ARB_transform_feedback_instanced , GLL, GLC, x , x , 2011) EXT(ARB_transform_feedback_overflow_query , ARB_transform_feedback_overflow_query , GLL, GLC, x , x , 2014) EXT(ARB_transpose_matrix , dummy_true , GLL, x , x , x , 1999) EXT(ARB_uniform_buffer_object , ARB_uniform_buffer_object , GLL, GLC, x , x , 2009) EXT(ARB_vertex_array_bgra , EXT_vertex_array_bgra , GLL, GLC, x , x , 2008) EXT(ARB_vertex_array_object , dummy_true , GLL, GLC, x , x , 2006) EXT(ARB_vertex_attrib_64bit , ARB_vertex_attrib_64bit , 32, GLC, x , x , 2010) EXT(ARB_vertex_attrib_binding , dummy_true , GLL, GLC, x , x , 2012) EXT(ARB_vertex_buffer_object , dummy_true , GLL, GLC, x , x , 2003) EXT(ARB_vertex_program , ARB_vertex_program , GLL, x , x , x , 2002) EXT(ARB_vertex_shader , ARB_vertex_shader , GLL, GLC, x , x , 2002) EXT(ARB_vertex_type_10f_11f_11f_rev , ARB_vertex_type_10f_11f_11f_rev , GLL, GLC, x , x , 2013) EXT(ARB_vertex_type_2_10_10_10_rev , ARB_vertex_type_2_10_10_10_rev , GLL, GLC, x , x , 2009) EXT(ARB_viewport_array , ARB_viewport_array , GLL, GLC, x , x , 2010) EXT(ARB_window_pos , dummy_true , GLL, x , x , x , 2001) EXT(ARM_shader_framebuffer_fetch_depth_stencil, ARM_shader_framebuffer_fetch_depth_stencil, GLL, GLC, x , ES2, 2014) EXT(ATI_blend_equation_separate , EXT_blend_equation_separate , GLL, GLC, x , x , 2003) EXT(ATI_draw_buffers , dummy_true , GLL, x , x , x , 2002) EXT(ATI_fragment_shader , ATI_fragment_shader , GLL, x , x , x , 2001) EXT(ATI_meminfo , ATI_meminfo , GLL, GLC, x , x , 2009) EXT(ATI_separate_stencil , EXT_stencil_two_side , GLL, x , x , x , 2006) EXT(ATI_texture_compression_3dc , ATI_texture_compression_3dc , GLL, x , x , x , 2004) EXT(ATI_texture_env_combine3 , ATI_texture_env_combine3 , GLL, x , x , x , 2002) EXT(ATI_texture_float , ARB_texture_float , GLL, GLC, x , x , 2002) EXT(ATI_texture_mirror_once , ATI_texture_mirror_once , GLL, GLC, x , x , 2006) EXT(EXT_EGL_image_storage , EXT_EGL_image_storage , GLL, GLC , x , 30, 2018) EXT(EXT_EGL_image_storage_compression , EXT_EGL_image_storage , GLL, GLC , x , 30, 2021) EXT(EXT_EGL_sync , dummy_true , GLL, GLC, x , x , 2019) EXT(EXT_abgr , dummy_true , GLL, GLC, x , x , 1995) EXT(EXT_base_instance , ARB_base_instance , x , x , x , 30, 2014) EXT(EXT_bgra , dummy_true , GLL, x , x , x , 1995) EXT(EXT_blend_color , dummy_true , GLL, x , x , x , 1995) EXT(EXT_blend_equation_separate , EXT_blend_equation_separate , GLL, GLC, x , x , 2003) EXT(EXT_blend_func_extended , ARB_blend_func_extended , x , x , x , ES2, 2015) EXT(EXT_blend_func_separate , dummy_true , GLL, x , x , x , 1999) EXT(EXT_blend_minmax , dummy_true , GLL, x , ES1, ES2, 1995) EXT(EXT_blend_subtract , dummy_true , GLL, x , x , x , 1995) EXT(EXT_buffer_storage , ARB_buffer_storage , x , x , x , 31, 2015) EXT(EXT_clear_texture , dummy_true , x , x , x , 31, 2016) EXT(EXT_clip_control , ARB_clip_control , x , x , x , ES2, 2017) EXT(EXT_clip_cull_distance , ARB_cull_distance , x , x , x , 30, 2016) EXT(EXT_color_buffer_float , EXT_color_buffer_float , x , x , x , 30, 2013) EXT(EXT_color_buffer_half_float , EXT_color_buffer_half_float , x , x , x , 20, 2017) EXT(EXT_compiled_vertex_array , dummy_true , GLL, x , x , x , 1996) EXT(EXT_compressed_ETC1_RGB8_sub_texture , OES_compressed_ETC1_RGB8_texture , x , x , ES1, ES2, 2014) EXT(EXT_copy_image , OES_copy_image , x , x , x , 30, 2014) EXT(EXT_copy_texture , dummy_true , GLL, x , x , x , 1995) EXT(EXT_debug_label , dummy_true , GLL, GLC, 11, ES2, 2013) EXT(EXT_demote_to_helper_invocation , EXT_demote_to_helper_invocation , GLL, GLC, ES1, ES2, 2019) EXT(EXT_depth_bounds_test , EXT_depth_bounds_test , GLL, GLC, x , x , 2002) EXT(EXT_depth_clamp , ARB_depth_clamp , x , x , x , ES2, 2019) EXT(EXT_direct_state_access , dummy_true , GLL, x , x , x , 2010) EXT(EXT_discard_framebuffer , dummy_true , x , x , ES1, ES2, 2009) EXT(EXT_disjoint_timer_query , EXT_disjoint_timer_query , x , x , x , ES2, 2016) EXT(EXT_draw_buffers , dummy_true , x , x , x , ES2, 2012) EXT(EXT_draw_buffers2 , EXT_draw_buffers2 , GLL, GLC, x , x , 2006) EXT(EXT_draw_buffers_indexed , ARB_draw_buffers_blend , x , x , x , 30, 2014) EXT(EXT_draw_elements_base_vertex , ARB_draw_elements_base_vertex , x , x , x , ES2, 2014) EXT(EXT_draw_instanced , ARB_draw_instanced , GLL, GLC, x , ES2 , 2006) EXT(EXT_draw_range_elements , dummy_true , GLL, x , x , x , 1997) EXT(EXT_float_blend , EXT_float_blend , x , x , x , 30, 2015) EXT(EXT_fog_coord , dummy_true , GLL, x , x , x , 1999) EXT(EXT_frag_depth , dummy_true , x , x , x , ES2, 2010) EXT(EXT_framebuffer_blit , dummy_true , GLL, GLC, x , x , 2005) EXT(EXT_framebuffer_multisample , EXT_framebuffer_multisample , GLL, GLC, x , x , 2005) EXT(EXT_framebuffer_multisample_blit_scaled , EXT_framebuffer_multisample_blit_scaled, GLL, GLC, x , x , 2011) EXT(EXT_framebuffer_object , dummy_true , GLL, GLC, x , x , 2000) EXT(EXT_framebuffer_sRGB , EXT_framebuffer_sRGB , GLL, GLC, x , x , 1998) EXT(EXT_geometry_point_size , OES_geometry_shader , x , x , x , 31, 2015) EXT(EXT_geometry_shader , OES_geometry_shader , x , x , x , 31, 2015) EXT(EXT_gpu_program_parameters , EXT_gpu_program_parameters , GLL, x , x , x , 2006) /* Since all of EXT_gpu_shader4 features were rolled into GLSL 1.40, it shouldn't be exposed in a core context. * Additionally, EXT_gpu_shader4 would reintroduce functions that were removed in GLSL 1.40. */ EXT(EXT_gpu_shader4 , EXT_gpu_shader4 , GLL, x , x , x , 2006) EXT(EXT_gpu_shader5 , ARB_gpu_shader5 , x , x , x , 31, 2014) EXT(EXT_instanced_arrays , ARB_instanced_arrays , x , x , x , ES2, 2012) EXT(EXT_map_buffer_range , ARB_map_buffer_range , x , x , ES1, ES2, 2012) EXT(EXT_memory_object , EXT_memory_object , GLL, GLC, x , ES2, 2017) EXT(EXT_memory_object_fd , EXT_memory_object_fd , GLL, GLC, x , ES2, 2017) EXT(EXT_memory_object_win32 , EXT_memory_object_win32 , GLL, GLC, x , ES2, 2017) EXT(EXT_multi_draw_arrays , dummy_true , GLL, x , ES1, ES2, 1999) EXT(EXT_multi_draw_indirect , ARB_draw_indirect , x , x, x , 31, 2014) EXT(EXT_multisampled_render_to_texture , EXT_multisampled_render_to_texture , x , x , x , ES2, 2016) EXT(EXT_multisampled_render_to_texture2 , EXT_multisampled_render_to_texture , x , x , x , ES2, 2016) EXT(EXT_occlusion_query_boolean , ARB_occlusion_query2 , x , x , x , ES2, 2011) EXT(EXT_packed_depth_stencil , dummy_true , GLL, GLC, x , x , 2005) EXT(EXT_packed_float , EXT_packed_float , GLL, GLC, x , x , 2004) EXT(EXT_packed_pixels , dummy_true , GLL, x , x , x , 1997) EXT(EXT_pixel_buffer_object , dummy_true , GLL, GLC, x , x , 2004) EXT(EXT_point_parameters , dummy_true , GLL, x , x , x , 1997) EXT(EXT_polygon_offset_clamp , ARB_polygon_offset_clamp , GLL, GLC, ES1, ES2, 2014) EXT(EXT_primitive_bounding_box , OES_primitive_bounding_box , x , x , x , 31, 2014) EXT(EXT_provoking_vertex , EXT_provoking_vertex , GLL, GLC, x , x , 2009) EXT(EXT_read_format_bgra , dummy_true , x , x , ES1, ES2, 2009) EXT(EXT_render_snorm , EXT_render_snorm , x , x , x, 30, 2014) EXT(EXT_rescale_normal , dummy_true , GLL, x , x , x , 1997) EXT(EXT_robustness , KHR_robustness , x, x, x , ES2, 2011) EXT(EXT_sRGB_write_control , EXT_framebuffer_sRGB , x, x , x , 30, 2013) EXT(EXT_secondary_color , dummy_true , GLL, x , x , x , 1999) EXT(EXT_semaphore , EXT_semaphore , GLL, GLC, x , ES2, 2017) EXT(EXT_semaphore_fd , EXT_semaphore_fd , GLL, GLC, x , ES2, 2017) EXT(EXT_semaphore_win32 , EXT_semaphore_win32 , GLL, GLC, x , ES2, 2017) EXT(EXT_separate_shader_objects , dummy_true , x , x , x , ES2, 2013) EXT(EXT_separate_specular_color , dummy_true , GLL, x , x , x , 1997) EXT(EXT_shader_framebuffer_fetch , EXT_shader_framebuffer_fetch , GLL, GLC, x , ES2, 2013) EXT(EXT_shader_framebuffer_fetch_non_coherent, EXT_shader_framebuffer_fetch_non_coherent, GLL, GLC, x, ES2, 2018) EXT(EXT_shader_group_vote , ARB_shader_group_vote , x, x, x , 30, 2013) EXT(EXT_shader_image_load_formatted , EXT_shader_image_load_formatted , GLL, GLC, x , x , 2014) EXT(EXT_shader_image_load_store , EXT_shader_image_load_store , GLL, GLC, x , x , 2010) EXT(EXT_shader_implicit_conversions , dummy_true , x , x , x , 31, 2013) EXT(EXT_shader_integer_mix , EXT_shader_integer_mix , GLL, GLC, x , 30, 2013) EXT(EXT_shader_io_blocks , dummy_true , x , x , x , 31, 2014) EXT(EXT_shader_samples_identical , EXT_shader_samples_identical , GLL, GLC, x , 31, 2015) EXT(EXT_shadow_funcs , ARB_shadow , GLL, x , x , x , 2002) EXT(EXT_shadow_samplers , ARB_shadow , x , x , x , ES2, 2012) EXT(EXT_stencil_two_side , EXT_stencil_two_side , GLL, x , x , x , 2001) EXT(EXT_stencil_wrap , dummy_true , GLL, x , x , x , 2002) EXT(EXT_subtexture , dummy_true , GLL, x , x , x , 1995) EXT(EXT_tessellation_point_size , ARB_tessellation_shader , x , x , x , 31, 2013) EXT(EXT_tessellation_shader , ARB_tessellation_shader , x , x , x , 31, 2013) EXT(EXT_texture , dummy_true , GLL, x , x , x , 1996) EXT(EXT_texture3D , dummy_true , GLL, x , x , x , 1996) EXT(EXT_texture_array , EXT_texture_array , GLL, GLC, x , x , 2006) EXT(EXT_texture_border_clamp , dummy_true , x , x , x , ES2, 2014) EXT(EXT_texture_buffer , OES_texture_buffer , x , x , x , 31, 2014) EXT(EXT_texture_buffer_object , EXT_texture_buffer_object , GLL, x , x , x , 2007) EXT(EXT_texture_compression_astc_decode_mode, EXT_texture_compression_astc_decode_mode, GLL, GLC, x , 30, 2017) EXT(EXT_texture_compression_bptc , ARB_texture_compression_bptc , x , x , x , 30, 2017) EXT(EXT_texture_compression_dxt1 , ANGLE_texture_compression_dxt , GLL, GLC, ES1, ES2, 2004) EXT(EXT_texture_compression_latc , EXT_texture_compression_latc , GLL, x , x , x , 2006) EXT(EXT_texture_compression_rgtc , ARB_texture_compression_rgtc , GLL, GLC, x , 30, 2004) EXT(EXT_texture_compression_s3tc , EXT_texture_compression_s3tc , GLL, GLC, x , ES2, 2000) EXT(EXT_texture_compression_s3tc_srgb , EXT_texture_compression_s3tc_srgb , x , x, x , ES2, 2016) EXT(EXT_texture_cube_map , dummy_true , GLL, x , x , x , 2001) EXT(EXT_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014) EXT(EXT_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997) EXT(EXT_texture_env_add , dummy_true , GLL, x , x , x , 1999) EXT(EXT_texture_env_combine , dummy_true , GLL, x , x , x , 2000) EXT(EXT_texture_env_dot3 , EXT_texture_env_dot3 , GLL, x , x , x , 2000) EXT(EXT_texture_filter_anisotropic , EXT_texture_filter_anisotropic , GLL, GLC, ES1, ES2, 1999) EXT(EXT_texture_filter_minmax , EXT_texture_filter_minmax , GLL, GLC, x , 30, 2015) EXT(EXT_texture_format_BGRA8888 , dummy_true , x , x , ES1, ES2, 2005) EXT(EXT_texture_integer , EXT_texture_integer , GLL, GLC, x , x , 2006) EXT(EXT_texture_lod_bias , dummy_true , GLL, x , ES1, x , 1999) EXT(EXT_texture_mirror_clamp , EXT_texture_mirror_clamp , GLL, GLC, x , x , 2004) EXT(EXT_texture_mirror_clamp_to_edge , ARB_texture_mirror_clamp_to_edge , x , x , x , ES2, 2017) EXT(EXT_texture_norm16 , EXT_texture_norm16 , x , x , x , 31, 2014) EXT(EXT_texture_object , dummy_true , GLL, x , x , x , 1995) EXT(EXT_texture_query_lod , ARB_texture_query_lod , x , x , x , 30, 2019) EXT(EXT_texture_rectangle , NV_texture_rectangle , GLL, x , x , x , 2004) EXT(EXT_texture_rg , ARB_texture_rg , x , x , x , ES2, 2011) EXT(EXT_texture_sRGB , EXT_texture_sRGB , GLL, GLC, x , x , 2004) EXT(EXT_texture_sRGB_R8 , EXT_texture_sRGB_R8 , GLL, GLC, x , 30, 2015) EXT(EXT_texture_sRGB_RG8 , EXT_texture_sRGB_RG8 , GLL, GLC, x , 30, 2015) EXT(EXT_texture_sRGB_decode , EXT_texture_sRGB_decode , GLL, GLC, x , 30, 2006) EXT(EXT_texture_shadow_lod , EXT_texture_shadow_lod , GLL, GLC, x , 30, 2018) EXT(EXT_texture_shared_exponent , EXT_texture_shared_exponent , GLL, GLC, x , x , 2004) EXT(EXT_texture_snorm , EXT_texture_snorm , GLL, GLC, x , x , 2009) EXT(EXT_texture_storage , dummy_true , GLL, GLC, x , ES2, 2009) EXT(EXT_texture_storage_compression , dummy_true , x , x , x , 30, 2021) EXT(EXT_texture_swizzle , EXT_texture_swizzle , GLL, GLC, x , x , 2008) EXT(EXT_texture_type_2_10_10_10_REV , EXT_texture_type_2_10_10_10_REV , x , x , x , ES2, 2008) EXT(EXT_texture_view , OES_texture_view , x , x , x , 31, 2014) EXT(EXT_timer_query , EXT_timer_query , GLL, GLC, x , x , 2006) EXT(EXT_transform_feedback , EXT_transform_feedback , GLL, GLC, x , x , 2011) EXT(EXT_unpack_subimage , dummy_true , x , x , x , ES2, 2011) EXT(EXT_vertex_array , dummy_true , GLL, x , x , x , 1995) EXT(EXT_vertex_array_bgra , EXT_vertex_array_bgra , GLL, GLC, x , x , 2008) EXT(EXT_vertex_attrib_64bit , ARB_vertex_attrib_64bit , 32, GLC, x , x , 2010) EXT(EXT_window_rectangles , EXT_window_rectangles , GLL, GLC, x , 30, 2016) EXT(GREMEDY_string_marker , GREMEDY_string_marker , GLL, GLC, x , x , 2007) EXT(IBM_multimode_draw_arrays , dummy_true , GLL, GLC, x , x , 1998) EXT(IBM_rasterpos_clip , dummy_true , GLL, x , x , x , 1996) EXT(IBM_texture_mirrored_repeat , dummy_true , GLL, x , x , x , 1998) EXT(INGR_blend_func_separate , dummy_true , GLL, x , x , x , 1999) EXT(INTEL_blackhole_render , INTEL_blackhole_render , 30, 30, x , ES2, 2018) EXT(INTEL_conservative_rasterization , INTEL_conservative_rasterization , x , GLC, x , 31, 2013) EXT(INTEL_performance_query , INTEL_performance_query , GLL, GLC, x , ES2, 2013) EXT(INTEL_shader_atomic_float_minmax , INTEL_shader_atomic_float_minmax , GLL, GLC, x , x , 2018) EXT(INTEL_shader_integer_functions2 , INTEL_shader_integer_functions2 , GLL, GLC, x , x , 2018) EXT(KHR_blend_equation_advanced , KHR_blend_equation_advanced , GLL, GLC, x , ES2, 2014) EXT(KHR_blend_equation_advanced_coherent , KHR_blend_equation_advanced_coherent , GLL, GLC, x , ES2, 2014) EXT(KHR_context_flush_control , dummy_true , GLL, GLC, x , ES2, 2014) EXT(KHR_debug , dummy_true , GLL, GLC, 11, ES2, 2012) EXT(KHR_no_error , dummy_true , GLL, GLC, ES1, ES2, 2015) EXT(KHR_parallel_shader_compile , dummy_true , GLL, GLC, x , ES2, 2017) EXT(KHR_robust_buffer_access_behavior , ARB_robust_buffer_access_behavior , GLL, GLC, x , ES2, 2014) EXT(KHR_robustness , KHR_robustness , GLL, GLC, x , ES2, 2012) EXT(KHR_shader_subgroup , KHR_shader_subgroup , 43, 43, x , 31, 2019) EXT(KHR_texture_compression_astc_hdr , KHR_texture_compression_astc_hdr , GLL, GLC, x , ES2, 2012) EXT(KHR_texture_compression_astc_ldr , KHR_texture_compression_astc_ldr , GLL, GLC, x , ES2, 2012) EXT(KHR_texture_compression_astc_sliced_3d , KHR_texture_compression_astc_sliced_3d , GLL, GLC, x , ES2, 2015) EXT(MESA_bgra , dummy_true , x , x , x , ES2, 2021) EXT(MESA_framebuffer_flip_y , MESA_framebuffer_flip_y , 43, 43, x , 30, 2018) EXT(MESA_pack_invert , MESA_pack_invert , GLL, GLC, x , x , 2002) EXT(MESA_sampler_objects , dummy_true , x , x , x , ES2, 2019) EXT(MESA_shader_integer_functions , MESA_shader_integer_functions , GLL, GLC, x , 30, 2016) EXT(MESA_texture_const_bandwidth , MESA_texture_const_bandwidth , GLL, GLC, x , ES2, 2023) EXT(MESA_texture_signed_rgba , EXT_texture_snorm , GLL, GLC, x , x , 2009) EXT(MESA_tile_raster_order , MESA_tile_raster_order , GLL, GLC, x , ES2, 2017) EXT(MESA_window_pos , MESA_window_pos , GLL, x , x , x , 2000) EXT(MESA_ycbcr_texture , MESA_ycbcr_texture , GLL, GLC, x , x , 2002) EXT(NVX_gpu_memory_info , NVX_gpu_memory_info , GLL, GLC, x , x , 2013) EXT(NV_ES1_1_compatibility , dummy_true , GLL, x , x , x , 2022) EXT(NV_alpha_to_coverage_dither_control , NV_alpha_to_coverage_dither_control , GLL, GLC, x , ES2, 2017) EXT(NV_blend_square , dummy_true , GLL, x , x , x , 1999) EXT(NV_compute_shader_derivatives , NV_compute_shader_derivatives , GLL, GLC, x , 32, 2018) EXT(NV_conditional_render , NV_conditional_render , GLL, GLC, x , ES2, 2008) EXT(NV_conservative_raster , NV_conservative_raster , GLL, GLC, ES1, ES2, 2015) EXT(NV_conservative_raster_dilate , NV_conservative_raster_dilate , GLL, GLC, ES1, ES2, 2015) EXT(NV_conservative_raster_pre_snap , NV_conservative_raster_pre_snap , GLL, GLC, ES1, ES2, 2017) EXT(NV_conservative_raster_pre_snap_triangles, NV_conservative_raster_pre_snap_triangles, GLL, GLC, ES1, ES2, 2015) EXT(NV_copy_depth_to_color , NV_copy_depth_to_color , GLL, x , x , x, 2001) EXT(NV_copy_image , NV_copy_image , GLL, GLC, x , x, 2009) EXT(NV_depth_clamp , ARB_depth_clamp , GLL, GLC, x , x , 2001) EXT(NV_draw_buffers , dummy_true , x , x , x , ES2, 2011) EXT(NV_fbo_color_attachments , dummy_true , x , x , x , ES2, 2010) EXT(NV_fill_rectangle , NV_fill_rectangle , GLL, GLC, x , x , 2015) EXT(NV_fog_distance , NV_fog_distance , GLL, x , x , x , 2001) EXT(NV_fragment_shader_interlock , ARB_fragment_shader_interlock , GLL, GLC, x , 31, 2015) EXT(NV_generate_mipmap_sRGB , EXT_framebuffer_sRGB , x , x , ES1, ES2, 2012) EXT(NV_half_float , ARB_half_float_vertex , GLL, x , x , x , 2001) EXT(NV_image_formats , dummy_true , x , x , x , 31, 2014) EXT(NV_light_max_exponent , dummy_true , GLL, x , x , x , 1999) EXT(NV_pack_subimage , dummy_true , x , x , x , ES2, 2009) EXT(NV_packed_depth_stencil , dummy_true , GLL, GLC, x , x , 2000) EXT(NV_pixel_buffer_object , dummy_true , x , x , x , ES2, 2012) EXT(NV_primitive_restart , NV_primitive_restart , GLL, x , x , x , 2002) EXT(NV_read_buffer , dummy_true , x , x , x , ES2, 2011) EXT(NV_read_depth , dummy_true , x , x , x , ES2, 2011) EXT(NV_read_depth_stencil , dummy_true , x , x , x , ES2, 2011) EXT(NV_read_stencil , dummy_true , x , x , x , ES2, 2011) EXT(NV_sample_locations , ARB_sample_locations , GLL, GLC, x , ES2, 2015) EXT(NV_shader_atomic_float , NV_shader_atomic_float , GLL, GLC, x , x , 2012) EXT(NV_shader_atomic_int64 , NV_shader_atomic_int64 , GLL, GLC, x , x , 2014) EXT(NV_shader_noperspective_interpolation , EXT_gpu_shader4 , x , x , x , 30, 2014) EXT(NV_texgen_reflection , dummy_true , GLL, x , x , x , 1999) EXT(NV_texture_barrier , NV_texture_barrier , GLL, GLC, x , ES2, 2009) EXT(NV_texture_env_combine4 , NV_texture_env_combine4 , GLL, x , x , x , 1999) EXT(NV_texture_rectangle , NV_texture_rectangle , GLL, x , x , x , 2000) EXT(NV_vdpau_interop , NV_vdpau_interop , GLL, GLC, x , x , 2010) EXT(NV_viewport_array2 , NV_viewport_array2 , GLL, GLC, x , 31, 2015) EXT(NV_viewport_swizzle , NV_viewport_swizzle , GLL, GLC, x , 31, 2015) EXT(OES_EGL_image , OES_EGL_image , GLL, GLC, ES1, ES2, 2006) /* FIXME: Mesa expects GL_OES_EGL_image to be available in OpenGL contexts. */ EXT(OES_EGL_image_external , OES_EGL_image_external , x , x , ES1, ES2, 2010) EXT(OES_EGL_image_external_essl3 , OES_EGL_image_external , x , x , x , 30, 2015) EXT(OES_EGL_sync , dummy_true , x , x , ES1, ES2, 2010) EXT(OES_blend_equation_separate , EXT_blend_equation_separate , x , x , ES1, x , 2009) EXT(OES_blend_func_separate , dummy_true , x , x , ES1, x , 2009) EXT(OES_blend_subtract , dummy_true , x , x , ES1, x , 2009) EXT(OES_byte_coordinates , dummy_true , x , x , ES1, x , 2002) EXT(OES_compressed_ETC1_RGB8_texture , OES_compressed_ETC1_RGB8_texture , x , x , ES1, ES2, 2005) EXT(OES_compressed_paletted_texture , dummy_true , x , x , ES1, x , 2003) EXT(OES_copy_image , OES_copy_image , x , x , x , 30, 2014) EXT(OES_depth24 , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_depth_texture , dummy_true , x , x , x , ES2, 2006) EXT(OES_depth_texture_cube_map , OES_depth_texture_cube_map , x , x , x , ES2, 2012) EXT(OES_draw_buffers_indexed , ARB_draw_buffers_blend , x , x , x , 30, 2014) EXT(OES_draw_elements_base_vertex , ARB_draw_elements_base_vertex , x , x , x , ES2, 2014) EXT(OES_draw_texture , OES_draw_texture , x , x , ES1, x , 2004) EXT(OES_element_index_uint , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_fbo_render_mipmap , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_fixed_point , dummy_true , x , x , ES1, x , 2002) EXT(OES_framebuffer_object , dummy_true , x , x , ES1, x , 2005) EXT(OES_geometry_point_size , OES_geometry_shader , x , x , x , 31, 2015) EXT(OES_geometry_shader , OES_geometry_shader , x , x , x , 31, 2015) EXT(OES_get_program_binary , dummy_true , x , x , x , ES2, 2008) EXT(OES_gpu_shader5 , ARB_gpu_shader5 , x , x , x , 31, 2014) EXT(OES_mapbuffer , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_packed_depth_stencil , dummy_true , x , x , ES1, ES2, 2007) EXT(OES_point_size_array , dummy_true , x , x , ES1, x , 2004) EXT(OES_point_sprite , dummy_true , x , x , ES1, x , 2004) EXT(OES_primitive_bounding_box , OES_primitive_bounding_box , x , x , x , 31, 2014) EXT(OES_query_matrix , dummy_true , x , x , ES1, x , 2003) EXT(OES_read_format , dummy_true , GLL, x , ES1, x , 2003) EXT(OES_required_internalformat , dummy_true , x , x , ES1, ES2, 2012) EXT(OES_rgb8_rgba8 , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_sample_shading , OES_sample_variables , x , x , x , 30, 2014) EXT(OES_sample_variables , OES_sample_variables , x , x , x , 30, 2014) EXT(OES_shader_image_atomic , dummy_true , x , x , x , 31, 2015) EXT(OES_shader_io_blocks , dummy_true , x , x , x , 31, 2014) EXT(OES_shader_multisample_interpolation , OES_sample_variables , x , x , x , 30, 2014) EXT(OES_single_precision , dummy_true , x , x , ES1, x , 2003) EXT(OES_standard_derivatives , OES_standard_derivatives , x , x , x , ES2, 2005) EXT(OES_stencil8 , dummy_true , x , x , ES1, ES2, 2005) EXT(OES_stencil_wrap , dummy_true , x , x , ES1, x , 2002) EXT(OES_surfaceless_context , dummy_true , x , x , ES1, ES2, 2012) EXT(OES_tessellation_point_size , ARB_tessellation_shader , x , x , x , 31, 2014) EXT(OES_tessellation_shader , ARB_tessellation_shader , x , x , x , 31, 2014) EXT(OES_texture_3D , OES_texture_3D , x , x , x , ES2, 2005) EXT(OES_texture_border_clamp , dummy_true , x , x , x , ES2, 2014) EXT(OES_texture_buffer , OES_texture_buffer , x , x , x , 31, 2014) EXT(OES_texture_compression_astc , OES_texture_compression_astc , x , x , ES1, ES2, 2015) EXT(OES_texture_cube_map , dummy_true , x , x , ES1, x , 2007) EXT(OES_texture_cube_map_array , OES_texture_cube_map_array , x , x , x , 31, 2014) EXT(OES_texture_env_crossbar , dummy_true , x , x , ES1, x , 2005) EXT(OES_texture_float , OES_texture_float , x , x , x , ES2, 2005) EXT(OES_texture_float_linear , OES_texture_float_linear , x , x , x , ES2, 2005) EXT(OES_texture_half_float , OES_texture_half_float , x , x , x , ES2, 2005) EXT(OES_texture_half_float_linear , OES_texture_half_float_linear , x , x , x , ES2, 2005) EXT(OES_texture_mirrored_repeat , dummy_true , x , x , ES1, x , 2005) EXT(OES_texture_npot , ARB_texture_non_power_of_two , x , x , ES1, ES2, 2005) EXT(OES_texture_stencil8 , ARB_texture_stencil8 , x , x , x , 30, 2014) EXT(OES_texture_storage_multisample_2d_array, ARB_texture_multisample , x , x , x , 31, 2014) EXT(OES_texture_view , OES_texture_view , x , x , x , 31, 2014) EXT(OES_vertex_array_object , dummy_true , x , x , ES1, ES2, 2010) EXT(OES_vertex_half_float , ARB_half_float_vertex , x , x , x , ES2, 2005) EXT(OES_viewport_array , OES_viewport_array , x , x , x , 31, 2010) EXT(OVR_multiview , OVR_multiview , GLL, GLC, x , 30, 2018) EXT(OVR_multiview2 , OVR_multiview2 , GLL, GLC, x , 30, 2018) EXT(OVR_multiview_multisampled_render_to_texture, OVR_multiview_multisampled_render_to_texture, GLL, GLC, x , 30, 2018) EXT(S3_s3tc , ANGLE_texture_compression_dxt , GLL, GLC, x , x , 1999) EXT(SGIS_generate_mipmap , dummy_true , GLL, x , x , x , 1997) EXT(SGIS_texture_border_clamp , dummy_true , GLL, x , x , x , 1997) EXT(SGIS_texture_edge_clamp , dummy_true , GLL, x , x , x , 1997) EXT(SGIS_texture_lod , dummy_true , GLL, x , x , x , 1997) EXT(SUN_multi_draw_arrays , dummy_true , GLL, x , x , x , 1999) #undef GLL #undef GLC #undef ES1 #undef ES2 #undef x #endif /* extensions_table.h expanded by -frewrite-includes */ # 105 "../mesa/src/mesa/main/extensions.h" 2 #undef EXT /* Sometimes the driver wants to query the extension override status before * a context is created. These variables are filled with extension override * information before context creation. * * This can be useful during extension bring-up when an extension is * partially implemented, but cannot yet be advertised as supported. * * Use it with care and keep access read-only. */ extern struct gl_extensions _mesa_extension_override_enables; extern struct gl_extensions _mesa_extension_override_disables; #ifdef __cplusplus } #endif # 122 "../mesa/src/mesa/main/extensions.h" #endif # 124 "../mesa/src/mesa/main/extensions.h" #endif /* extensions.h expanded by -frewrite-includes */ # 55 "../mesa/src/mesa/main/context.h" 2 #if 0 /* expanded by -frewrite-includes */ #include "mtypes.h" #endif /* expanded by -frewrite-includes */ # 55 "../mesa/src/mesa/main/context.h" # 56 "../mesa/src/mesa/main/context.h" #if 0 /* expanded by -frewrite-includes */ #include "vbo/vbo.h" #endif /* expanded by -frewrite-includes */ # 56 "../mesa/src/mesa/main/context.h" # 57 "../mesa/src/mesa/main/context.h" #ifdef __cplusplus extern "C" { #endif # 62 "../mesa/src/mesa/main/context.h" struct _glapi_table; /** \name Context-related functions */ /*@{*/ extern void _mesa_initialize(const char *extensions_override); extern GLboolean _mesa_initialize_context( struct gl_context *ctx, gl_api api, bool no_error, const struct gl_config *visual, struct gl_context *share_list, const struct dd_function_table *driverFunctions, const struct st_config_options *options); extern struct _glapi_table * _mesa_alloc_dispatch_table(bool glthread); extern void _mesa_init_dispatch(struct gl_context *ctx); extern bool _mesa_alloc_dispatch_tables(gl_api api, struct gl_dispatch *d, bool glthread); extern bool _mesa_initialize_dispatch_tables(struct gl_context *ctx); extern struct _glapi_table * _mesa_new_nop_table(unsigned numEntries, bool glthread); extern void _mesa_free_context_data(struct gl_context *ctx, bool destroy_debug_output); extern void _mesa_copy_context(const struct gl_context *src, struct gl_context *dst, GLuint mask); extern GLboolean _mesa_make_current( struct gl_context *ctx, struct gl_framebuffer *drawBuffer, struct gl_framebuffer *readBuffer ); extern GLboolean _mesa_share_state(struct gl_context *ctx, struct gl_context *ctxToShare); extern struct gl_context * _mesa_get_current_context(void); /*@}*/ extern void _mesa_init_constants(struct gl_constants *consts, gl_api api); extern void _mesa_set_context_lost_dispatch(struct gl_context *ctx); /** \name Miscellaneous */ /*@{*/ extern void _mesa_flush(struct gl_context *ctx); /*@}*/ /** * Are we currently between glBegin and glEnd? * During execution, not display list compilation. */ static inline GLboolean _mesa_inside_begin_end(const struct gl_context *ctx) { return ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END; } /** * Are we currently between glBegin and glEnd in a display list? */ static inline GLboolean _mesa_inside_dlist_begin_end(const struct gl_context *ctx) { return ctx->Driver.CurrentSavePrimitive <= PRIM_MAX; } /** * \name Macros for flushing buffered rendering commands before state changes, * checking if inside glBegin/glEnd, etc. */ /*@{*/ /** * Flush vertices. * * \param ctx GL context. * \param newstate new state. * * Checks if dd_function_table::NeedFlush is marked to flush stored vertices, * and calls dd_function_table::FlushVertices if so. Marks * __struct gl_contextRec::NewState with \p newstate. */ #define FLUSH_VERTICES(ctx, newstate, pop_attrib_mask) \ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", __func__); \ if (ctx->Driver.NeedFlush & FLUSH_STORED_VERTICES) \ vbo_exec_FlushVertices(ctx, FLUSH_STORED_VERTICES); \ ctx->NewState |= newstate; \ ctx->PopAttribState |= pop_attrib_mask; \ } while (0) /** * Flush current state. * * \param ctx GL context. * \param newstate new state. * * Checks if dd_function_table::NeedFlush is marked to flush current state, * and calls dd_function_table::FlushVertices if so. Marks * __struct gl_contextRec::NewState with \p newstate. */ #define FLUSH_CURRENT(ctx, newstate) \ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", __func__); \ if (ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) \ vbo_exec_FlushVertices(ctx, FLUSH_UPDATE_CURRENT); \ ctx->NewState |= newstate; \ } while (0) /** * Flush vertices. * * \param ctx GL context. * * Checks if dd_function_table::NeedFlush is marked to flush stored vertices * or current state and calls dd_function_table::FlushVertices if so. */ #define FLUSH_FOR_DRAW(ctx) \ do { \ if (MESA_VERBOSE & VERBOSE_STATE) \ _mesa_debug(ctx, "FLUSH_FOR_DRAW in %s\n", __func__); \ if (ctx->Driver.NeedFlush) { \ if (ctx->_AllowDrawOutOfOrder) { \ if (ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT) \ vbo_exec_FlushVertices(ctx, FLUSH_UPDATE_CURRENT); \ } else { \ vbo_exec_FlushVertices(ctx, ctx->Driver.NeedFlush); \ } \ } \ } while (0) /** * Macro to assert that the API call was made outside the * glBegin()/glEnd() pair, with return value. * * \param ctx GL context. * \param retval value to return in case the assertion fails. */ #define ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, retval) \ do { \ if (_mesa_inside_begin_end(ctx)) { \ _mesa_error(ctx, GL_INVALID_OPERATION, "Inside glBegin/glEnd"); \ return retval; \ } \ } while (0) /** * Macro to assert that the API call was made outside the * glBegin()/glEnd() pair. * * \param ctx GL context. */ #define ASSERT_OUTSIDE_BEGIN_END(ctx) \ do { \ if (_mesa_inside_begin_end(ctx)) { \ _mesa_error(ctx, GL_INVALID_OPERATION, "Inside glBegin/glEnd"); \ return; \ } \ } while (0) /*@}*/ /** * Checks if the context is for Desktop GL Compatibility */ static inline bool _mesa_is_desktop_gl_compat(const struct gl_context *ctx) { #if 0 /* disabled by -frewrite-includes */ #if HAVE_OPENGL #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 260 "../mesa/src/mesa/main/context.h" return ctx->API == API_OPENGL_COMPAT; #else # 262 "../mesa/src/mesa/main/context.h" return false; #endif # 264 "../mesa/src/mesa/main/context.h" } /** * Checks if the context is for Desktop GL Core */ static inline bool _mesa_is_desktop_gl_core(const struct gl_context *ctx) { #if 0 /* disabled by -frewrite-includes */ #if HAVE_OPENGL #endif #endif /* disabled by -frewrite-includes */ #if 1 /* evaluated by -frewrite-includes */ # 273 "../mesa/src/mesa/main/context.h" return ctx->API == API_OPENGL_CORE; #else # 275 "../mesa/src/mesa/main/context.h" return false; #endif # 277 "../mesa/src/mesa/main/context.h" } /** * Checks if the context is for Desktop GL (Compatibility or Core) */ static inline bool _mesa_is_desktop_gl(const struct gl_context *ctx) { return _mesa_is_desktop_gl_compat(ctx) || _mesa_is_desktop_gl_core(ctx); } /** * Checks if the context is for GLES 1.0 */ static inline bool _mesa_is_gles1(const struct gl_context *ctx) { #if 0 /* disabled by -frewrite-includes */ #if HAVE_OPENGL_ES_1 #endif #endif /* disabled by -frewrite-includes */ #if 0 /* evaluated by -frewrite-includes */ # 295 "../mesa/src/mesa/main/context.h" return ctx->API == API_OPENGLES; #else # 297 "../mesa/src/mesa/main/context.h" return false; #endif # 299 "../mesa/src/mesa/main/context.h" } /** * Checks if the context is for GLES 2.0 or later */ static inline bool _mesa_is_gles2(const struct gl_context *ctx) { return _mesa_is_api_gles2(ctx->API); } /** * Checks if the context is for any GLES version */ static inline bool _mesa_is_gles(const struct gl_context *ctx) { return _mesa_is_gles1(ctx) || _mesa_is_gles2(ctx); } /** * Checks if the context is for GLES 3.0 or later */ static inline bool _mesa_is_gles3(const struct gl_context *ctx) { return _mesa_is_gles2(ctx) && ctx->Version >= 30; } /** * Checks if the context is for GLES 3.1 or later */ static inline bool _mesa_is_gles31(const struct gl_context *ctx) { return _mesa_is_gles2(ctx) && ctx->Version >= 31; } /** * Checks if the context is for GLES 3.2 or later */ static inline bool _mesa_is_gles32(const struct gl_context *ctx) { return _mesa_is_gles2(ctx) && ctx->Version >= 32; } static inline bool _mesa_is_gles2_compatible(const struct gl_context *ctx) { return _mesa_is_gles2(ctx) || _mesa_has_ARB_ES2_compatibility(ctx); } static inline bool _mesa_is_gles3_compatible(const struct gl_context *ctx) { return _mesa_is_gles3(ctx) || _mesa_has_ARB_ES3_compatibility(ctx); } static inline bool _mesa_is_gles31_compatible(const struct gl_context *ctx) { return _mesa_is_gles31(ctx) || _mesa_has_ARB_ES3_1_compatibility(ctx); } static inline bool _mesa_is_gles32_compatible(const struct gl_context *ctx) { return _mesa_is_gles32(ctx) || _mesa_has_ARB_ES3_2_compatibility(ctx); } static inline bool _mesa_is_no_error_enabled(const struct gl_context *ctx) { return ctx->Const.ContextFlags & GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR; } static inline bool _mesa_has_integer_textures(const struct gl_context *ctx) { return _mesa_has_EXT_texture_integer(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_half_float_textures(const struct gl_context *ctx) { return _mesa_has_ARB_texture_float(ctx) || _mesa_has_OES_texture_half_float(ctx); } static inline bool _mesa_has_float_textures(const struct gl_context *ctx) { return _mesa_has_ARB_texture_float(ctx) || _mesa_has_OES_texture_float(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_texture_rgb10_a2ui(const struct gl_context *ctx) { return _mesa_has_ARB_texture_rgb10_a2ui(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_float_depth_buffer(const struct gl_context *ctx) { return _mesa_has_ARB_depth_buffer_float(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_packed_float(const struct gl_context *ctx) { return _mesa_has_EXT_packed_float(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_rg_textures(const struct gl_context *ctx) { return _mesa_has_ARB_texture_rg(ctx) || _mesa_has_EXT_texture_rg(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_texture_shared_exponent(const struct gl_context *ctx) { return _mesa_has_EXT_texture_shared_exponent(ctx) || _mesa_is_gles3(ctx); } static inline bool _mesa_has_texture_type_2_10_10_10_REV(const struct gl_context *ctx) { return _mesa_is_desktop_gl(ctx) || _mesa_has_EXT_texture_type_2_10_10_10_REV(ctx); } /** * Checks if the context supports geometry shaders. */ static inline bool _mesa_has_geometry_shaders(const struct gl_context *ctx) { return _mesa_has_OES_geometry_shader(ctx) || (_mesa_is_desktop_gl(ctx) && ctx->Version >= 32); } /** * Checks if the context supports compute shaders. */ static inline bool _mesa_has_compute_shaders(const struct gl_context *ctx) { return _mesa_has_ARB_compute_shader(ctx) || _mesa_is_gles31(ctx); } /** * Checks if the context supports tessellation. */ static inline bool _mesa_has_tessellation(const struct gl_context *ctx) { /* _mesa_has_EXT_tessellation_shader(ctx) is redundant with the OES * check, so don't bother calling it. */ return _mesa_has_OES_tessellation_shader(ctx) || _mesa_has_ARB_tessellation_shader(ctx); } static inline bool _mesa_has_texture_cube_map_array(const struct gl_context *ctx) { return _mesa_has_ARB_texture_cube_map_array(ctx) || _mesa_has_OES_texture_cube_map_array(ctx); } static inline bool _mesa_has_texture_view(const struct gl_context *ctx) { return _mesa_has_ARB_texture_view(ctx) || _mesa_has_OES_texture_view(ctx); } static inline bool _mesa_hw_select_enabled(const struct gl_context *ctx) { return ctx->RenderMode == GL_SELECT && ctx->Const.HardwareAcceleratedSelect; } static inline bool _mesa_has_occlusion_query(const struct gl_context *ctx) { return _mesa_has_ARB_occlusion_query(ctx) || _mesa_has_ARB_occlusion_query2(ctx) || (_mesa_is_desktop_gl(ctx) && ctx->Version >= 15); } static inline bool _mesa_has_occlusion_query_boolean(const struct gl_context *ctx) { return _mesa_has_ARB_occlusion_query2(ctx) || _mesa_has_EXT_occlusion_query_boolean(ctx) || (_mesa_is_desktop_gl(ctx) && ctx->Version >= 33); } static inline bool _mesa_has_pipeline_statistics(const struct gl_context *ctx) { return _mesa_has_ARB_pipeline_statistics_query(ctx) || (_mesa_is_desktop_gl(ctx) && ctx->Version >= 46); } #ifdef __cplusplus } #endif # 523 "../mesa/src/mesa/main/context.h" #endif /* CONTEXT_H */ # 526 "../mesa/src/mesa/main/context.h" #endif /* context.h expanded by -frewrite-includes */ # 32 "../mesa/src/mesa/main/condrender.h" 2 extern GLboolean _mesa_check_conditional_render(struct gl_context *ctx); #endif /* CONDRENDER_H */ # 37 "../mesa/src/mesa/main/condrender.h" #endif /* condrender.h expanded by -frewrite-includes */ # 28 "../mesa/src/mesa/main/accum.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "context.h" #endif /* expanded by -frewrite-includes */ # 28 "../mesa/src/mesa/main/accum.c" # 29 "../mesa/src/mesa/main/accum.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* format_unpack.h expanded by -frewrite-includes */ #include "format_unpack.h" #else /* format_unpack.h expanded by -frewrite-includes */ # 29 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/format_unpack.h" 1 /* * Mesa 3-D graphics library * * Copyright (c) 2011 VMware, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef FORMAT_UNPACK_H #define FORMAT_UNPACK_H #if 0 /* expanded by -frewrite-includes */ #include "util/format/u_format.h" #endif /* expanded by -frewrite-includes */ # 28 "../mesa/src/mesa/main/format_unpack.h" # 29 "../mesa/src/mesa/main/format_unpack.h" #if 0 /* expanded by -frewrite-includes */ #include "formats.h" #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/mesa/main/format_unpack.h" # 30 "../mesa/src/mesa/main/format_unpack.h" #ifdef __cplusplus extern "C" { #endif # 34 "../mesa/src/mesa/main/format_unpack.h" static inline void _mesa_unpack_rgba_row(mesa_format format, uint32_t n, const void *src, float dst[][4]) { util_format_unpack_rgba(format, dst, src, n); } extern void _mesa_unpack_ubyte_rgba_row(mesa_format format, uint32_t n, const void *src, uint8_t dst[][4]); static inline void _mesa_unpack_uint_rgba_row(mesa_format format, uint32_t n, const void *src, uint32_t dst[][4]) { util_format_unpack_rgba(format, dst, src, n); } static inline void _mesa_unpack_float_z_row(mesa_format format, uint32_t n, const void *src, float *dst) { util_format_unpack_z_float((enum pipe_format)format, dst, src, n); } static inline void _mesa_unpack_uint_z_row(mesa_format format, uint32_t n, const void *src, uint32_t *dst) { util_format_unpack_z_32unorm((enum pipe_format)format, dst, src, n); } static inline void _mesa_unpack_ubyte_stencil_row(mesa_format format, uint32_t n, const void *src, uint8_t *dst) { util_format_unpack_s_8uint((enum pipe_format)format, dst, src, n); } void _mesa_unpack_uint_24_8_depth_stencil_row(mesa_format format, uint32_t n, const void *src, uint32_t *dst); void _mesa_unpack_float_32_uint_24_8_depth_stencil_row(mesa_format format, uint32_t n, const void *src, uint32_t *dst); #ifdef __cplusplus } #endif # 88 "../mesa/src/mesa/main/format_unpack.h" #endif /* FORMAT_UNPACK_H */ # 90 "../mesa/src/mesa/main/format_unpack.h" #endif /* format_unpack.h expanded by -frewrite-includes */ # 30 "../mesa/src/mesa/main/accum.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* format_pack.h expanded by -frewrite-includes */ #include "format_pack.h" #else /* format_pack.h expanded by -frewrite-includes */ # 30 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/format_pack.h" 1 /* * Mesa 3-D graphics library * * Copyright (c) 2011 VMware, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef FORMAT_PACK_H #define FORMAT_PACK_H #if 0 /* expanded by -frewrite-includes */ #include "util/format/u_format.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/mesa/main/format_pack.h" # 31 "../mesa/src/mesa/main/format_pack.h" #if 0 /* expanded by -frewrite-includes */ #include "formats.h" #endif /* expanded by -frewrite-includes */ # 31 "../mesa/src/mesa/main/format_pack.h" # 32 "../mesa/src/mesa/main/format_pack.h" #ifdef __cplusplus extern "C" { #endif # 36 "../mesa/src/mesa/main/format_pack.h" static inline void _mesa_pack_float_rgba_row(mesa_format format, uint32_t n, const float src[][4], void *dst) { util_format_pack_rgba(format, dst, src, n); } static inline void _mesa_pack_ubyte_rgba_row(mesa_format format, uint32_t n, const uint8_t *src, void *dst) { const struct util_format_pack_description *pack = util_format_pack_description(format); pack->pack_rgba_8unorm((uint8_t *)dst, 0, src, 0, n, 1); } static inline void _mesa_pack_uint_rgba_row(mesa_format format, uint32_t n, const uint32_t src[][4], void *dst) { util_format_pack_rgba(format, dst, src, n); } static inline void _mesa_pack_float_z_row(mesa_format format, uint32_t n, const float *src, void *dst) { util_format_pack_z_float(format, dst, src, n); } static inline void _mesa_pack_uint_z_row(mesa_format format, uint32_t n, const uint32_t *src, void *dst) { util_format_pack_z_32unorm(format, dst, src, n); } static inline void _mesa_pack_ubyte_stencil_row(mesa_format format, uint32_t n, const uint8_t *src, void *dst) { util_format_pack_s_8uint(format, dst, src, n); } #ifdef __cplusplus } #endif # 83 "../mesa/src/mesa/main/format_pack.h" #endif # 85 "../mesa/src/mesa/main/format_pack.h" #endif /* format_pack.h expanded by -frewrite-includes */ # 31 "../mesa/src/mesa/main/accum.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* framebuffer.h expanded by -frewrite-includes */ #include "framebuffer.h" #else /* framebuffer.h expanded by -frewrite-includes */ # 31 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/framebuffer.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef FRAMEBUFFER_H #define FRAMEBUFFER_H #if 0 /* expanded by -frewrite-includes */ #include "mtypes.h" #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/mesa/main/framebuffer.h" # 30 "../mesa/src/mesa/main/framebuffer.h" struct gl_config; struct gl_context; struct gl_renderbuffer; extern struct gl_framebuffer * _mesa_new_framebuffer(struct gl_context *ctx, GLuint name); extern void _mesa_initialize_window_framebuffer(struct gl_framebuffer *fb, const struct gl_config *visual); extern void _mesa_initialize_user_framebuffer(struct gl_framebuffer *fb, GLuint name); extern void _mesa_destroy_framebuffer(struct gl_framebuffer *buffer); extern void _mesa_free_framebuffer_data(struct gl_framebuffer *buffer); extern void _mesa_reference_framebuffer_(struct gl_framebuffer **ptr, struct gl_framebuffer *fb); static inline void _mesa_reference_framebuffer(struct gl_framebuffer **ptr, struct gl_framebuffer *fb) { if (*ptr != fb) _mesa_reference_framebuffer_(ptr, fb); } extern void _mesa_resize_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb, GLuint width, GLuint height); extern void _mesa_resizebuffers( struct gl_context *ctx ); extern void _mesa_intersect_scissor_bounding_box(const struct gl_context *ctx, unsigned idx, int *bbox); static inline GLuint _mesa_geometric_width(const struct gl_framebuffer *buffer) { return buffer->_HasAttachments ? buffer->Width : buffer->DefaultGeometry.Width; } static inline GLuint _mesa_geometric_height(const struct gl_framebuffer *buffer) { return buffer->_HasAttachments ? buffer->Height : buffer->DefaultGeometry.Height; } static inline GLuint _mesa_geometric_samples(const struct gl_framebuffer *buffer) { return buffer->_HasAttachments ? buffer->Visual.samples : buffer->DefaultGeometry._NumSamples; } static inline GLuint _mesa_geometric_layers(const struct gl_framebuffer *buffer) { return buffer->_HasAttachments ? buffer->MaxNumLayers : buffer->DefaultGeometry.Layers; } #define Y_0_TOP 1 #define Y_0_BOTTOM 2 static inline GLuint _mesa_fb_orientation(const struct gl_framebuffer *fb) { if (fb && fb->FlipY) { /* Drawing into a window (on-screen buffer). * * Negate Y scale to flip image vertically. * The NDC Y coords prior to viewport transformation are in the range * [y=-1=bottom, y=1=top] * Hardware window coords are in the range [y=0=top, y=H-1=bottom] where * H is the window height. * Use the viewport transformation to invert Y. */ return Y_0_TOP; } else { /* Drawing into user-created FBO (very likely a texture). * * For textures, T=0=Bottom, so by extension Y=0=Bottom for rendering. */ return Y_0_BOTTOM; } } extern void _mesa_update_draw_buffer_bounds(struct gl_context *ctx, struct gl_framebuffer *drawFb); extern void _mesa_update_framebuffer_visual(struct gl_context *ctx, struct gl_framebuffer *fb); extern void _mesa_update_framebuffer(struct gl_context *ctx, struct gl_framebuffer *readFb, struct gl_framebuffer *drawFb); extern GLboolean _mesa_source_buffer_exists(struct gl_context *ctx, GLenum format); extern GLboolean _mesa_dest_buffer_exists(struct gl_context *ctx, GLenum format); extern GLenum _mesa_get_color_read_type(struct gl_context *ctx, struct gl_framebuffer *fb, const char *caller); extern GLenum _mesa_get_color_read_format(struct gl_context *ctx, struct gl_framebuffer *fb, const char *caller); extern struct gl_renderbuffer * _mesa_get_read_renderbuffer_for_format(const struct gl_context *ctx, GLenum format); extern bool _mesa_has_rtt_samples(const struct gl_framebuffer *fb); extern void _mesa_print_framebuffer(const struct gl_framebuffer *fb); extern bool _mesa_is_multisample_enabled(const struct gl_context *ctx); extern bool _mesa_is_alpha_test_enabled(const struct gl_context *ctx); void _mesa_draw_buffer_allocate(struct gl_context *ctx); #endif /* FRAMEBUFFER_H */ # 180 "../mesa/src/mesa/main/framebuffer.h" #endif /* framebuffer.h expanded by -frewrite-includes */ # 32 "../mesa/src/mesa/main/accum.c" 2 #if defined(__CLANG_REWRITTEN_INCLUDES) /* renderbuffer.h expanded by -frewrite-includes */ #include "renderbuffer.h" #else /* renderbuffer.h expanded by -frewrite-includes */ # 32 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/renderbuffer.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef RENDERBUFFER_H #define RENDERBUFFER_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/mesa/main/renderbuffer.h" # 30 "../mesa/src/mesa/main/renderbuffer.h" #if 0 /* expanded by -frewrite-includes */ #include "menums.h" #endif /* expanded by -frewrite-includes */ # 30 "../mesa/src/mesa/main/renderbuffer.h" # 31 "../mesa/src/mesa/main/renderbuffer.h" #ifdef __cplusplus extern "C" { #endif # 35 "../mesa/src/mesa/main/renderbuffer.h" struct gl_context; struct gl_framebuffer; struct gl_renderbuffer; extern void _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name); extern void _mesa_attach_and_own_rb(struct gl_framebuffer *fb, gl_buffer_index bufferName, struct gl_renderbuffer *rb); extern void _mesa_attach_and_reference_rb(struct gl_framebuffer *fb, gl_buffer_index bufferName, struct gl_renderbuffer *rb); extern void _mesa_remove_renderbuffer(struct gl_framebuffer *fb, gl_buffer_index bufferName); extern void _mesa_reference_renderbuffer_(struct gl_renderbuffer **ptr, struct gl_renderbuffer *rb); static inline void _mesa_reference_renderbuffer(struct gl_renderbuffer **ptr, struct gl_renderbuffer *rb) { if (*ptr != rb) _mesa_reference_renderbuffer_(ptr, rb); } void _mesa_map_renderbuffer(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint x, GLuint y, GLuint w, GLuint h, GLbitfield mode, GLubyte **mapOut, GLint *rowStrideOut, bool flip_y); void _mesa_unmap_renderbuffer(struct gl_context *ctx, struct gl_renderbuffer *rb); void _mesa_regen_renderbuffer_surface(struct gl_context *ctx, struct gl_renderbuffer *rb); void _mesa_update_renderbuffer_surface(struct gl_context *ctx, struct gl_renderbuffer *rb); #ifdef __cplusplus } #endif # 90 "../mesa/src/mesa/main/renderbuffer.h" #endif /* RENDERBUFFER_H */ # 92 "../mesa/src/mesa/main/renderbuffer.h" #endif /* renderbuffer.h expanded by -frewrite-includes */ # 33 "../mesa/src/mesa/main/accum.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "macros.h" #endif /* expanded by -frewrite-includes */ # 33 "../mesa/src/mesa/main/accum.c" # 34 "../mesa/src/mesa/main/accum.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* state.h expanded by -frewrite-includes */ #include "state.h" #else /* state.h expanded by -frewrite-includes */ # 34 "../mesa/src/mesa/main/accum.c" # 1 "../mesa/src/mesa/main/state.h" 1 /* * Mesa 3-D graphics library * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef STATE_H #define STATE_H #if 0 /* expanded by -frewrite-includes */ #include "mtypes.h" #endif /* expanded by -frewrite-includes */ # 29 "../mesa/src/mesa/main/state.h" # 30 "../mesa/src/mesa/main/state.h" extern void _mesa_update_allow_draw_out_of_order(struct gl_context *ctx); extern uint64_t _mesa_get_active_states(struct gl_context *ctx); extern void _mesa_update_state(struct gl_context *ctx); /* As above but can only be called between _mesa_lock_context_textures() and * _mesa_unlock_context_textures(). */ extern void _mesa_update_state_locked(struct gl_context *ctx); /* * Update state for glClear calls */ extern void _mesa_update_clear_state(struct gl_context *ctx); extern void _mesa_set_vp_override(struct gl_context *ctx, GLboolean flag); /** * Update ctx->VertexProgram._VPMode. */ extern void _mesa_update_vertex_processing_mode(struct gl_context *ctx); extern void _mesa_reset_vertex_processing_mode(struct gl_context *ctx); static inline bool _mesa_ati_fragment_shader_enabled(const struct gl_context *ctx) { return ctx->ATIFragmentShader.Enabled && ctx->ATIFragmentShader.Current->Instructions[0]; } /** * Is the secondary color needed? */ static inline GLboolean _mesa_need_secondary_color(const struct gl_context *ctx) { if (ctx->Light.Enabled && ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) return GL_TRUE; if (ctx->Fog.ColorSumEnabled) return GL_TRUE; if (ctx->VertexProgram._Current && (ctx->VertexProgram._Current != ctx->VertexProgram._TnlProgram) && (ctx->VertexProgram._Current->info.inputs_read & VERT_BIT_COLOR1)) return GL_TRUE; if (ctx->FragmentProgram._Current && (ctx->FragmentProgram._Current != ctx->FragmentProgram._TexEnvProgram) && (ctx->FragmentProgram._Current->info.inputs_read & VARYING_BIT_COL1)) return GL_TRUE; if (_mesa_ati_fragment_shader_enabled(ctx)) return GL_TRUE; return GL_FALSE; } static inline bool _mesa_arb_vertex_program_enabled(const struct gl_context *ctx) { return ctx->VertexProgram.Enabled && ctx->VertexProgram.Current->arb.Instructions; } /** Compute two sided lighting state for fixed function or programs. */ static inline bool _mesa_vertex_program_two_side_enabled(const struct gl_context *ctx) { if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX] || _mesa_arb_vertex_program_enabled(ctx)) return ctx->VertexProgram.TwoSideEnabled; return ctx->Light.Enabled && ctx->Light.Model.TwoSide; } /** Return 0=GL_CCW or 1=GL_CW */ static inline bool _mesa_polygon_get_front_bit(const struct gl_context *ctx) { if (ctx->Transform.ClipOrigin == GL_LOWER_LEFT) return ctx->Polygon.FrontFace == GL_CW; return ctx->Polygon.FrontFace == GL_CCW; } static inline bool _mesa_arb_fragment_program_enabled(const struct gl_context *ctx) { return ctx->FragmentProgram.Enabled && ctx->FragmentProgram.Current->arb.Instructions; } #endif # 139 "../mesa/src/mesa/main/state.h" #endif /* state.h expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/accum.c" 2 #if 0 /* expanded by -frewrite-includes */ #include "mtypes.h" #endif /* expanded by -frewrite-includes */ # 35 "../mesa/src/mesa/main/accum.c" # 36 "../mesa/src/mesa/main/accum.c" #if defined(__CLANG_REWRITTEN_INCLUDES) /* api_exec_decl.h expanded by -frewrite-includes */ #include "api_exec_decl.h" #else /* api_exec_decl.h expanded by -frewrite-includes */ # 36 "../mesa/src/mesa/main/accum.c" # 1 "src/mapi/glapi/gen/api_exec_decl.h" 1 /* DO NOT EDIT - This file generated automatically by api_exec_decl_h.py script */ /* * Copyright (C) 2012 Intel Corporation * Copyright (C) 2021 Advanced Micro Devices, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sub license, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL * AUTHORS, * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef API_EXEC_DECL_H #define API_EXEC_DECL_H #if 0 /* expanded by -frewrite-includes */ #include "util/glheader.h" #endif /* expanded by -frewrite-includes */ # 32 "src/mapi/glapi/gen/api_exec_decl.h" # 33 "src/mapi/glapi/gen/api_exec_decl.h" #ifdef __cplusplus extern "C" { #endif # 37 "src/mapi/glapi/gen/api_exec_decl.h" void GLAPIENTRY _mesa_NewList(GLuint list, GLenum mode); void GLAPIENTRY _mesa_EndList(void); void GLAPIENTRY _mesa_CallList(GLuint list); void GLAPIENTRY _mesa_CallLists(GLsizei n, GLenum type, const GLvoid *lists); void GLAPIENTRY _mesa_DeleteLists(GLuint list, GLsizei range); GLuint GLAPIENTRY _mesa_GenLists(GLsizei range); void GLAPIENTRY _mesa_ListBase(GLuint base); void GLAPIENTRY _mesa_Begin(GLenum mode); void GLAPIENTRY _mesa_Bitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); void GLAPIENTRY _mesa_Color3b(GLbyte red, GLbyte green, GLbyte blue); void GLAPIENTRY _mesa_Color3bv(const GLbyte *v); void GLAPIENTRY _mesa_Color3d(GLdouble red, GLdouble green, GLdouble blue); void GLAPIENTRY _mesa_Color3dv(const GLdouble *v); void GLAPIENTRY _mesa_Color3f(GLfloat red, GLfloat green, GLfloat blue); void GLAPIENTRY _mesa_Color3fv(const GLfloat *v); void GLAPIENTRY _mesa_Color3i(GLint red, GLint green, GLint blue); void GLAPIENTRY _mesa_Color3iv(const GLint *v); void GLAPIENTRY _mesa_Color3s(GLshort red, GLshort green, GLshort blue); void GLAPIENTRY _mesa_Color3sv(const GLshort *v); void GLAPIENTRY _mesa_Color3ub(GLubyte red, GLubyte green, GLubyte blue); void GLAPIENTRY _mesa_Color3ubv(const GLubyte *v); void GLAPIENTRY _mesa_Color3ui(GLuint red, GLuint green, GLuint blue); void GLAPIENTRY _mesa_Color3uiv(const GLuint *v); void GLAPIENTRY _mesa_Color3us(GLushort red, GLushort green, GLushort blue); void GLAPIENTRY _mesa_Color3usv(const GLushort *v); void GLAPIENTRY _mesa_Color4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); void GLAPIENTRY _mesa_Color4bv(const GLbyte *v); void GLAPIENTRY _mesa_Color4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); void GLAPIENTRY _mesa_Color4dv(const GLdouble *v); void GLAPIENTRY _mesa_Color4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); void GLAPIENTRY _mesa_Color4fv(const GLfloat *v); void GLAPIENTRY _mesa_Color4i(GLint red, GLint green, GLint blue, GLint alpha); void GLAPIENTRY _mesa_Color4iv(const GLint *v); void GLAPIENTRY _mesa_Color4s(GLshort red, GLshort green, GLshort blue, GLshort alpha); void GLAPIENTRY _mesa_Color4sv(const GLshort *v); void GLAPIENTRY _mesa_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); void GLAPIENTRY _mesa_Color4ubv(const GLubyte *v); void GLAPIENTRY _mesa_Color4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha); void GLAPIENTRY _mesa_Color4uiv(const GLuint *v); void GLAPIENTRY _mesa_Color4us(GLushort red, GLushort green, GLushort blue, GLushort alpha); void GLAPIENTRY _mesa_Color4usv(const GLushort *v); void GLAPIENTRY _mesa_EdgeFlag(GLboolean flag); void GLAPIENTRY _mesa_EdgeFlagv(const GLboolean *flag); void GLAPIENTRY _mesa_End(void); void GLAPIENTRY _mesa_Indexd(GLdouble c); void GLAPIENTRY _mesa_Indexdv(const GLdouble *c); void GLAPIENTRY _mesa_Indexf(GLfloat c); void GLAPIENTRY _mesa_Indexfv(const GLfloat *c); void GLAPIENTRY _mesa_Indexi(GLint c); void GLAPIENTRY _mesa_Indexiv(const GLint *c); void GLAPIENTRY _mesa_Indexs(GLshort c); void GLAPIENTRY _mesa_Indexsv(const GLshort *c); void GLAPIENTRY _mesa_Normal3b(GLbyte nx, GLbyte ny, GLbyte nz); void GLAPIENTRY _mesa_Normal3bv(const GLbyte *v); void GLAPIENTRY _mesa_Normal3d(GLdouble nx, GLdouble ny, GLdouble nz); void GLAPIENTRY _mesa_Normal3dv(const GLdouble *v); void GLAPIENTRY _mesa_Normal3f(GLfloat nx, GLfloat ny, GLfloat nz); void GLAPIENTRY _mesa_Normal3fv(const GLfloat *v); void GLAPIENTRY _mesa_Normal3i(GLint nx, GLint ny, GLint nz); void GLAPIENTRY _mesa_Normal3iv(const GLint *v); void GLAPIENTRY _mesa_Normal3s(GLshort nx, GLshort ny, GLshort nz); void GLAPIENTRY _mesa_Normal3sv(const GLshort *v); void GLAPIENTRY _mesa_RasterPos2d(GLdouble x, GLdouble y); void GLAPIENTRY _mesa_RasterPos2dv(const GLdouble *v); void GLAPIENTRY _mesa_RasterPos2f(GLfloat x, GLfloat y); void GLAPIENTRY _mesa_RasterPos2fv(const GLfloat *v); void GLAPIENTRY _mesa_RasterPos2i(GLint x, GLint y); void GLAPIENTRY _mesa_RasterPos2iv(const GLint *v); void GLAPIENTRY _mesa_RasterPos2s(GLshort x, GLshort y); void GLAPIENTRY _mesa_RasterPos2sv(const GLshort *v); void GLAPIENTRY _mesa_RasterPos3d(GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_RasterPos3dv(const GLdouble *v); void GLAPIENTRY _mesa_RasterPos3f(GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_RasterPos3fv(const GLfloat *v); void GLAPIENTRY _mesa_RasterPos3i(GLint x, GLint y, GLint z); void GLAPIENTRY _mesa_RasterPos3iv(const GLint *v); void GLAPIENTRY _mesa_RasterPos3s(GLshort x, GLshort y, GLshort z); void GLAPIENTRY _mesa_RasterPos3sv(const GLshort *v); void GLAPIENTRY _mesa_RasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_RasterPos4dv(const GLdouble *v); void GLAPIENTRY _mesa_RasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_RasterPos4fv(const GLfloat *v); void GLAPIENTRY _mesa_RasterPos4i(GLint x, GLint y, GLint z, GLint w); void GLAPIENTRY _mesa_RasterPos4iv(const GLint *v); void GLAPIENTRY _mesa_RasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); void GLAPIENTRY _mesa_RasterPos4sv(const GLshort *v); void GLAPIENTRY _mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); void GLAPIENTRY _mesa_Rectdv(const GLdouble *v1, const GLdouble *v2); void GLAPIENTRY _mesa_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); void GLAPIENTRY _mesa_Rectfv(const GLfloat *v1, const GLfloat *v2); void GLAPIENTRY _mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2); void GLAPIENTRY _mesa_Rectiv(const GLint *v1, const GLint *v2); void GLAPIENTRY _mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); void GLAPIENTRY _mesa_Rectsv(const GLshort *v1, const GLshort *v2); void GLAPIENTRY _mesa_TexCoord1d(GLdouble s); void GLAPIENTRY _mesa_TexCoord1dv(const GLdouble *v); void GLAPIENTRY _mesa_TexCoord1f(GLfloat s); void GLAPIENTRY _mesa_TexCoord1fv(const GLfloat *v); void GLAPIENTRY _mesa_TexCoord1i(GLint s); void GLAPIENTRY _mesa_TexCoord1iv(const GLint *v); void GLAPIENTRY _mesa_TexCoord1s(GLshort s); void GLAPIENTRY _mesa_TexCoord1sv(const GLshort *v); void GLAPIENTRY _mesa_TexCoord2d(GLdouble s, GLdouble t); void GLAPIENTRY _mesa_TexCoord2dv(const GLdouble *v); void GLAPIENTRY _mesa_TexCoord2f(GLfloat s, GLfloat t); void GLAPIENTRY _mesa_TexCoord2fv(const GLfloat *v); void GLAPIENTRY _mesa_TexCoord2i(GLint s, GLint t); void GLAPIENTRY _mesa_TexCoord2iv(const GLint *v); void GLAPIENTRY _mesa_TexCoord2s(GLshort s, GLshort t); void GLAPIENTRY _mesa_TexCoord2sv(const GLshort *v); void GLAPIENTRY _mesa_TexCoord3d(GLdouble s, GLdouble t, GLdouble r); void GLAPIENTRY _mesa_TexCoord3dv(const GLdouble *v); void GLAPIENTRY _mesa_TexCoord3f(GLfloat s, GLfloat t, GLfloat r); void GLAPIENTRY _mesa_TexCoord3fv(const GLfloat *v); void GLAPIENTRY _mesa_TexCoord3i(GLint s, GLint t, GLint r); void GLAPIENTRY _mesa_TexCoord3iv(const GLint *v); void GLAPIENTRY _mesa_TexCoord3s(GLshort s, GLshort t, GLshort r); void GLAPIENTRY _mesa_TexCoord3sv(const GLshort *v); void GLAPIENTRY _mesa_TexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q); void GLAPIENTRY _mesa_TexCoord4dv(const GLdouble *v); void GLAPIENTRY _mesa_TexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q); void GLAPIENTRY _mesa_TexCoord4fv(const GLfloat *v); void GLAPIENTRY _mesa_TexCoord4i(GLint s, GLint t, GLint r, GLint q); void GLAPIENTRY _mesa_TexCoord4iv(const GLint *v); void GLAPIENTRY _mesa_TexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q); void GLAPIENTRY _mesa_TexCoord4sv(const GLshort *v); void GLAPIENTRY _mesa_Vertex2d(GLdouble x, GLdouble y); void GLAPIENTRY _mesa_Vertex2dv(const GLdouble *v); void GLAPIENTRY _mesa_Vertex2f(GLfloat x, GLfloat y); void GLAPIENTRY _mesa_Vertex2fv(const GLfloat *v); void GLAPIENTRY _mesa_Vertex2i(GLint x, GLint y); void GLAPIENTRY _mesa_Vertex2iv(const GLint *v); void GLAPIENTRY _mesa_Vertex2s(GLshort x, GLshort y); void GLAPIENTRY _mesa_Vertex2sv(const GLshort *v); void GLAPIENTRY _mesa_Vertex3d(GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_Vertex3dv(const GLdouble *v); void GLAPIENTRY _mesa_Vertex3f(GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_Vertex3fv(const GLfloat *v); void GLAPIENTRY _mesa_Vertex3i(GLint x, GLint y, GLint z); void GLAPIENTRY _mesa_Vertex3iv(const GLint *v); void GLAPIENTRY _mesa_Vertex3s(GLshort x, GLshort y, GLshort z); void GLAPIENTRY _mesa_Vertex3sv(const GLshort *v); void GLAPIENTRY _mesa_Vertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_Vertex4dv(const GLdouble *v); void GLAPIENTRY _mesa_Vertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_Vertex4fv(const GLfloat *v); void GLAPIENTRY _mesa_Vertex4i(GLint x, GLint y, GLint z, GLint w); void GLAPIENTRY _mesa_Vertex4iv(const GLint *v); void GLAPIENTRY _mesa_Vertex4s(GLshort x, GLshort y, GLshort z, GLshort w); void GLAPIENTRY _mesa_Vertex4sv(const GLshort *v); void GLAPIENTRY _mesa_ClipPlane(GLenum plane, const GLdouble *equation); void GLAPIENTRY _mesa_ColorMaterial(GLenum face, GLenum mode); void GLAPIENTRY _mesa_CullFace(GLenum mode); void GLAPIENTRY _mesa_CullFace_no_error(GLenum mode); void GLAPIENTRY _mesa_Fogf(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_Fogfv(GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_Fogi(GLenum pname, GLint param); void GLAPIENTRY _mesa_Fogiv(GLenum pname, const GLint *params); void GLAPIENTRY _mesa_FrontFace(GLenum mode); void GLAPIENTRY _mesa_FrontFace_no_error(GLenum mode); void GLAPIENTRY _mesa_Hint(GLenum target, GLenum mode); void GLAPIENTRY _mesa_Lightf(GLenum light, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_Lightfv(GLenum light, GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_Lighti(GLenum light, GLenum pname, GLint param); void GLAPIENTRY _mesa_Lightiv(GLenum light, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_LightModelf(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_LightModelfv(GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_LightModeli(GLenum pname, GLint param); void GLAPIENTRY _mesa_LightModeliv(GLenum pname, const GLint *params); void GLAPIENTRY _mesa_LineStipple(GLint factor, GLushort pattern); void GLAPIENTRY _mesa_LineWidth(GLfloat width); void GLAPIENTRY _mesa_LineWidth_no_error(GLfloat width); void GLAPIENTRY _mesa_Materialf(GLenum face, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_Materialfv(GLenum face, GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_Materiali(GLenum face, GLenum pname, GLint param); void GLAPIENTRY _mesa_Materialiv(GLenum face, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_PointSize(GLfloat size); void GLAPIENTRY _mesa_PointSize_no_error(GLfloat size); void GLAPIENTRY _mesa_PolygonMode(GLenum face, GLenum mode); void GLAPIENTRY _mesa_PolygonMode_no_error(GLenum face, GLenum mode); void GLAPIENTRY _mesa_PolygonStipple(const GLubyte *mask); void GLAPIENTRY _mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_Scissor_no_error(GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_ShadeModel(GLenum mode); void GLAPIENTRY _mesa_TexParameterf(GLenum target, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_TexParameterfv(GLenum target, GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_TexParameteri(GLenum target, GLenum pname, GLint param); void GLAPIENTRY _mesa_TexParameteriv(GLenum target, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_TexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexImage2D_no_error(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexEnvf(GLenum target, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_TexEnvfv(GLenum target, GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_TexEnvi(GLenum target, GLenum pname, GLint param); void GLAPIENTRY _mesa_TexEnviv(GLenum target, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_TexGend(GLenum coord, GLenum pname, GLdouble param); void GLAPIENTRY _mesa_TexGendv(GLenum coord, GLenum pname, const GLdouble *params); void GLAPIENTRY _mesa_TexGenf(GLenum coord, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_TexGenfv(GLenum coord, GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_TexGeni(GLenum coord, GLenum pname, GLint param); void GLAPIENTRY _mesa_TexGeniv(GLenum coord, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_FeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer); void GLAPIENTRY _mesa_SelectBuffer(GLsizei size, GLuint *buffer); GLint GLAPIENTRY _mesa_RenderMode(GLenum mode); void GLAPIENTRY _mesa_InitNames(void); void GLAPIENTRY _mesa_LoadName(GLuint name); void GLAPIENTRY _mesa_PassThrough(GLfloat token); void GLAPIENTRY _mesa_PopName(void); void GLAPIENTRY _mesa_PushName(GLuint name); void GLAPIENTRY _mesa_DrawBuffer(GLenum mode); void GLAPIENTRY _mesa_DrawBuffer_no_error(GLenum mode); void GLAPIENTRY _mesa_Clear(GLbitfield mask); void GLAPIENTRY _mesa_Clear_no_error(GLbitfield mask); void GLAPIENTRY _mesa_ClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); void GLAPIENTRY _mesa_ClearIndex(GLfloat c); void GLAPIENTRY _mesa_ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); void GLAPIENTRY _mesa_ClearStencil(GLint s); void GLAPIENTRY _mesa_ClearDepth(GLclampd depth); void GLAPIENTRY _mesa_StencilMask(GLuint mask); void GLAPIENTRY _mesa_ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); void GLAPIENTRY _mesa_DepthMask(GLboolean flag); void GLAPIENTRY _mesa_IndexMask(GLuint mask); void GLAPIENTRY _mesa_Accum(GLenum op, GLfloat value); void GLAPIENTRY _mesa_Disable(GLenum cap); void GLAPIENTRY _mesa_Enable(GLenum cap); void GLAPIENTRY _mesa_Finish(void); void GLAPIENTRY _mesa_Flush(void); void GLAPIENTRY _mesa_PopAttrib(void); void GLAPIENTRY _mesa_PushAttrib(GLbitfield mask); void GLAPIENTRY _mesa_Map1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); void GLAPIENTRY _mesa_Map1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); void GLAPIENTRY _mesa_Map2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); void GLAPIENTRY _mesa_Map2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); void GLAPIENTRY _mesa_MapGrid1d(GLint un, GLdouble u1, GLdouble u2); void GLAPIENTRY _mesa_MapGrid1f(GLint un, GLfloat u1, GLfloat u2); void GLAPIENTRY _mesa_MapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); void GLAPIENTRY _mesa_MapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); void GLAPIENTRY _mesa_EvalCoord1d(GLdouble u); void GLAPIENTRY _mesa_EvalCoord1dv(const GLdouble *u); void GLAPIENTRY _mesa_EvalCoord1f(GLfloat u); void GLAPIENTRY _mesa_EvalCoord1fv(const GLfloat *u); void GLAPIENTRY _mesa_EvalCoord2d(GLdouble u, GLdouble v); void GLAPIENTRY _mesa_EvalCoord2dv(const GLdouble *u); void GLAPIENTRY _mesa_EvalCoord2f(GLfloat u, GLfloat v); void GLAPIENTRY _mesa_EvalCoord2fv(const GLfloat *u); void GLAPIENTRY _mesa_EvalMesh1(GLenum mode, GLint i1, GLint i2); void GLAPIENTRY _mesa_EvalPoint1(GLint i); void GLAPIENTRY _mesa_EvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); void GLAPIENTRY _mesa_EvalPoint2(GLint i, GLint j); void GLAPIENTRY _mesa_AlphaFunc(GLenum func, GLclampf ref); void GLAPIENTRY _mesa_BlendFunc(GLenum sfactor, GLenum dfactor); void GLAPIENTRY _mesa_BlendFunc_no_error(GLenum sfactor, GLenum dfactor); void GLAPIENTRY _mesa_LogicOp(GLenum opcode); void GLAPIENTRY _mesa_LogicOp_no_error(GLenum opcode); void GLAPIENTRY _mesa_StencilFunc(GLenum func, GLint ref, GLuint mask); void GLAPIENTRY _mesa_StencilFunc_no_error(GLenum func, GLint ref, GLuint mask); void GLAPIENTRY _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass); void GLAPIENTRY _mesa_StencilOp_no_error(GLenum fail, GLenum zfail, GLenum zpass); void GLAPIENTRY _mesa_DepthFunc(GLenum func); void GLAPIENTRY _mesa_DepthFunc_no_error(GLenum func); void GLAPIENTRY _mesa_PixelZoom(GLfloat xfactor, GLfloat yfactor); void GLAPIENTRY _mesa_PixelTransferf(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_PixelTransferi(GLenum pname, GLint param); void GLAPIENTRY _mesa_PixelStoref(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_PixelStoref_no_error(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_PixelStorei(GLenum pname, GLint param); void GLAPIENTRY _mesa_PixelStorei_no_error(GLenum pname, GLint param); void GLAPIENTRY _mesa_PixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values); void GLAPIENTRY _mesa_PixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values); void GLAPIENTRY _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values); void GLAPIENTRY _mesa_ReadBuffer(GLenum mode); void GLAPIENTRY _mesa_ReadBuffer_no_error(GLenum mode); void GLAPIENTRY _mesa_CopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); void GLAPIENTRY _mesa_ReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); void GLAPIENTRY _mesa_ReadPixels_no_error(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); void GLAPIENTRY _mesa_DrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_GetBooleanv(GLenum pname, GLboolean *params); void GLAPIENTRY _mesa_GetClipPlane(GLenum plane, GLdouble *equation); void GLAPIENTRY _mesa_GetDoublev(GLenum pname, GLdouble *params); GLenum GLAPIENTRY _mesa_GetError(void); void GLAPIENTRY _mesa_GetFloatv(GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetIntegerv(GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetLightfv(GLenum light, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetLightiv(GLenum light, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetMapdv(GLenum target, GLenum query, GLdouble *v); void GLAPIENTRY _mesa_GetMapfv(GLenum target, GLenum query, GLfloat *v); void GLAPIENTRY _mesa_GetMapiv(GLenum target, GLenum query, GLint *v); void GLAPIENTRY _mesa_GetMaterialfv(GLenum face, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetMaterialiv(GLenum face, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetPixelMapfv(GLenum map, GLfloat *values); void GLAPIENTRY _mesa_GetPixelMapuiv(GLenum map, GLuint *values); void GLAPIENTRY _mesa_GetPixelMapusv(GLenum map, GLushort *values); void GLAPIENTRY _mesa_GetPolygonStipple(GLubyte *mask); const GLubyte * GLAPIENTRY _mesa_GetString(GLenum name); void GLAPIENTRY _mesa_GetTexEnvfv(GLenum target, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetTexEnviv(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTexGendv(GLenum coord, GLenum pname, GLdouble *params); void GLAPIENTRY _mesa_GetTexGenfv(GLenum coord, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetTexGeniv(GLenum coord, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); void GLAPIENTRY _mesa_GetTexParameterfv(GLenum target, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetTexParameteriv(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params); GLboolean GLAPIENTRY _mesa_IsEnabled(GLenum cap); GLboolean GLAPIENTRY _mesa_IsList(GLuint list); void GLAPIENTRY _mesa_DepthRange(GLclampd zNear, GLclampd zFar); void GLAPIENTRY _mesa_Frustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); void GLAPIENTRY _mesa_LoadIdentity(void); void GLAPIENTRY _mesa_LoadMatrixf(const GLfloat *m); void GLAPIENTRY _mesa_LoadMatrixd(const GLdouble *m); void GLAPIENTRY _mesa_MatrixMode(GLenum mode); void GLAPIENTRY _mesa_MultMatrixf(const GLfloat *m); void GLAPIENTRY _mesa_MultMatrixd(const GLdouble *m); void GLAPIENTRY _mesa_Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); void GLAPIENTRY _mesa_PopMatrix(void); void GLAPIENTRY _mesa_PushMatrix(void); void GLAPIENTRY _mesa_Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_Scaled(GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_Scalef(GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_Translated(GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_Translatef(GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_Viewport(GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_Viewport_no_error(GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_ArrayElement(GLint i); void GLAPIENTRY _mesa_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_ColorPointer_no_error(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_DisableClientState(GLenum array); void GLAPIENTRY _mesa_DrawArrays(GLenum mode, GLint first, GLsizei count); void GLAPIENTRY _mesa_DrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); void GLAPIENTRY _mesa_EdgeFlagPointer(GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_EdgeFlagPointer_no_error(GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_EnableClientState(GLenum array); void GLAPIENTRY _mesa_GetPointerv(GLenum pname, GLvoid **params); void GLAPIENTRY _mesa_IndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_IndexPointer_no_error(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_InterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_NormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_NormalPointer_no_error(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_TexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_TexCoordPointer_no_error(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_VertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_VertexPointer_no_error(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_PolygonOffset(GLfloat factor, GLfloat units); void GLAPIENTRY _mesa_CopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); void GLAPIENTRY _mesa_CopyTexImage1D_no_error(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); void GLAPIENTRY _mesa_CopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); void GLAPIENTRY _mesa_CopyTexImage2D_no_error(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); void GLAPIENTRY _mesa_CopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); void GLAPIENTRY _mesa_CopyTexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); void GLAPIENTRY _mesa_CopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyTexSubImage2D_no_error(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexSubImage2D_no_error(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); GLboolean GLAPIENTRY _mesa_AreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences); void GLAPIENTRY _mesa_BindTexture(GLenum target, GLuint texture); void GLAPIENTRY _mesa_BindTexture_no_error(GLenum target, GLuint texture); void GLAPIENTRY _mesa_DeleteTextures(GLsizei n, const GLuint *textures); void GLAPIENTRY _mesa_DeleteTextures_no_error(GLsizei n, const GLuint *textures); void GLAPIENTRY _mesa_GenTextures(GLsizei n, GLuint *textures); void GLAPIENTRY _mesa_GenTextures_no_error(GLsizei n, GLuint *textures); GLboolean GLAPIENTRY _mesa_IsTexture(GLuint texture); void GLAPIENTRY _mesa_PrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities); void GLAPIENTRY _mesa_Indexub(GLubyte c); void GLAPIENTRY _mesa_Indexubv(const GLubyte *c); void GLAPIENTRY _mesa_PopClientAttrib(void); void GLAPIENTRY _mesa_PushClientAttrib(GLbitfield mask); void GLAPIENTRY _mesa_BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); void GLAPIENTRY _mesa_BlendEquation(GLenum mode); void GLAPIENTRY _mesa_DrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); void GLAPIENTRY _mesa_TexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexImage3D_no_error(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TexSubImage3D_no_error(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_CopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyTexSubImage3D_no_error(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_ActiveTexture(GLenum texture); void GLAPIENTRY _mesa_ActiveTexture_no_error(GLenum texture); void GLAPIENTRY _mesa_ClientActiveTexture(GLenum texture); void GLAPIENTRY _mesa_MultiTexCoord1d(GLenum target, GLdouble s); void GLAPIENTRY _mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v); void GLAPIENTRY _mesa_MultiTexCoord1fARB(GLenum target, GLfloat s); void GLAPIENTRY _mesa_MultiTexCoord1fvARB(GLenum target, const GLfloat *v); void GLAPIENTRY _mesa_MultiTexCoord1i(GLenum target, GLint s); void GLAPIENTRY _mesa_MultiTexCoord1iv(GLenum target, const GLint *v); void GLAPIENTRY _mesa_MultiTexCoord1s(GLenum target, GLshort s); void GLAPIENTRY _mesa_MultiTexCoord1sv(GLenum target, const GLshort *v); void GLAPIENTRY _mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t); void GLAPIENTRY _mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v); void GLAPIENTRY _mesa_MultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); void GLAPIENTRY _mesa_MultiTexCoord2fvARB(GLenum target, const GLfloat *v); void GLAPIENTRY _mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t); void GLAPIENTRY _mesa_MultiTexCoord2iv(GLenum target, const GLint *v); void GLAPIENTRY _mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t); void GLAPIENTRY _mesa_MultiTexCoord2sv(GLenum target, const GLshort *v); void GLAPIENTRY _mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r); void GLAPIENTRY _mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v); void GLAPIENTRY _mesa_MultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); void GLAPIENTRY _mesa_MultiTexCoord3fvARB(GLenum target, const GLfloat *v); void GLAPIENTRY _mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r); void GLAPIENTRY _mesa_MultiTexCoord3iv(GLenum target, const GLint *v); void GLAPIENTRY _mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r); void GLAPIENTRY _mesa_MultiTexCoord3sv(GLenum target, const GLshort *v); void GLAPIENTRY _mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); void GLAPIENTRY _mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v); void GLAPIENTRY _mesa_MultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); void GLAPIENTRY _mesa_MultiTexCoord4fvARB(GLenum target, const GLfloat *v); void GLAPIENTRY _mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q); void GLAPIENTRY _mesa_MultiTexCoord4iv(GLenum target, const GLint *v); void GLAPIENTRY _mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); void GLAPIENTRY _mesa_MultiTexCoord4sv(GLenum target, const GLshort *v); void GLAPIENTRY _mesa_LoadTransposeMatrixf(const GLfloat *m); void GLAPIENTRY _mesa_LoadTransposeMatrixd(const GLdouble *m); void GLAPIENTRY _mesa_MultTransposeMatrixf(const GLfloat *m); void GLAPIENTRY _mesa_MultTransposeMatrixd(const GLdouble *m); void GLAPIENTRY _mesa_SampleCoverage(GLclampf value, GLboolean invert); void GLAPIENTRY _mesa_CompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexImage3D_no_error(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexImage2D_no_error(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexImage1D_no_error(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexSubImage3D_no_error(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_GetCompressedTexImage(GLenum target, GLint level, GLvoid *img); void GLAPIENTRY _mesa_BlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); void GLAPIENTRY _mesa_BlendFuncSeparate_no_error(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); void GLAPIENTRY _mesa_FogCoordfEXT(GLfloat coord); void GLAPIENTRY _mesa_FogCoordfvEXT(const GLfloat *coord); void GLAPIENTRY _mesa_FogCoordd(GLdouble coord); void GLAPIENTRY _mesa_FogCoorddv(const GLdouble *coord); void GLAPIENTRY _mesa_FogCoordPointer(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_FogCoordPointer_no_error(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_MultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); void GLAPIENTRY _mesa_MultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount); void GLAPIENTRY _mesa_PointParameterf(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_PointParameterfv(GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_PointParameteri(GLenum pname, GLint param); void GLAPIENTRY _mesa_PointParameteriv(GLenum pname, const GLint *params); void GLAPIENTRY _mesa_SecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue); void GLAPIENTRY _mesa_SecondaryColor3bv(const GLbyte *v); void GLAPIENTRY _mesa_SecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue); void GLAPIENTRY _mesa_SecondaryColor3dv(const GLdouble *v); void GLAPIENTRY _mesa_SecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue); void GLAPIENTRY _mesa_SecondaryColor3fvEXT(const GLfloat *v); void GLAPIENTRY _mesa_SecondaryColor3i(GLint red, GLint green, GLint blue); void GLAPIENTRY _mesa_SecondaryColor3iv(const GLint *v); void GLAPIENTRY _mesa_SecondaryColor3s(GLshort red, GLshort green, GLshort blue); void GLAPIENTRY _mesa_SecondaryColor3sv(const GLshort *v); void GLAPIENTRY _mesa_SecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue); void GLAPIENTRY _mesa_SecondaryColor3ubv(const GLubyte *v); void GLAPIENTRY _mesa_SecondaryColor3ui(GLuint red, GLuint green, GLuint blue); void GLAPIENTRY _mesa_SecondaryColor3uiv(const GLuint *v); void GLAPIENTRY _mesa_SecondaryColor3us(GLushort red, GLushort green, GLushort blue); void GLAPIENTRY _mesa_SecondaryColor3usv(const GLushort *v); void GLAPIENTRY _mesa_SecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_SecondaryColorPointer_no_error(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_WindowPos2d(GLdouble x, GLdouble y); void GLAPIENTRY _mesa_WindowPos2dv(const GLdouble *v); void GLAPIENTRY _mesa_WindowPos2f(GLfloat x, GLfloat y); void GLAPIENTRY _mesa_WindowPos2fv(const GLfloat *v); void GLAPIENTRY _mesa_WindowPos2i(GLint x, GLint y); void GLAPIENTRY _mesa_WindowPos2iv(const GLint *v); void GLAPIENTRY _mesa_WindowPos2s(GLshort x, GLshort y); void GLAPIENTRY _mesa_WindowPos2sv(const GLshort *v); void GLAPIENTRY _mesa_WindowPos3d(GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_WindowPos3dv(const GLdouble *v); void GLAPIENTRY _mesa_WindowPos3f(GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_WindowPos3fv(const GLfloat *v); void GLAPIENTRY _mesa_WindowPos3i(GLint x, GLint y, GLint z); void GLAPIENTRY _mesa_WindowPos3iv(const GLint *v); void GLAPIENTRY _mesa_WindowPos3s(GLshort x, GLshort y, GLshort z); void GLAPIENTRY _mesa_WindowPos3sv(const GLshort *v); void GLAPIENTRY _mesa_BindBuffer(GLenum target, GLuint buffer); void GLAPIENTRY _mesa_BindBuffer_no_error(GLenum target, GLuint buffer); void GLAPIENTRY _mesa_BufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); void GLAPIENTRY _mesa_BufferData_no_error(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); void GLAPIENTRY _mesa_BufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); void GLAPIENTRY _mesa_BufferSubData_no_error(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); void GLAPIENTRY _mesa_DeleteBuffers(GLsizei n, const GLuint *buffer); void GLAPIENTRY _mesa_DeleteBuffers_no_error(GLsizei n, const GLuint *buffer); void GLAPIENTRY _mesa_GenBuffers(GLsizei n, GLuint *buffer); void GLAPIENTRY _mesa_GenBuffers_no_error(GLsizei n, GLuint *buffer); void GLAPIENTRY _mesa_GetBufferParameteriv(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetBufferPointerv(GLenum target, GLenum pname, GLvoid **params); void GLAPIENTRY _mesa_GetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); GLboolean GLAPIENTRY _mesa_IsBuffer(GLuint buffer); GLvoid * GLAPIENTRY _mesa_MapBuffer(GLenum target, GLenum access); GLvoid * GLAPIENTRY _mesa_MapBuffer_no_error(GLenum target, GLenum access); GLboolean GLAPIENTRY _mesa_UnmapBuffer(GLenum target); GLboolean GLAPIENTRY _mesa_UnmapBuffer_no_error(GLenum target); void GLAPIENTRY _mesa_GenQueries(GLsizei n, GLuint *ids); void GLAPIENTRY _mesa_DeleteQueries(GLsizei n, const GLuint *ids); GLboolean GLAPIENTRY _mesa_IsQuery(GLuint id); void GLAPIENTRY _mesa_BeginQuery(GLenum target, GLuint id); void GLAPIENTRY _mesa_EndQuery(GLenum target); void GLAPIENTRY _mesa_GetQueryiv(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetQueryObjectiv(GLuint id, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params); void GLAPIENTRY _mesa_BlendEquationSeparate(GLenum modeRGB, GLenum modeA); void GLAPIENTRY _mesa_BlendEquationSeparate_no_error(GLenum modeRGB, GLenum modeA); void GLAPIENTRY _mesa_DrawBuffers(GLsizei n, const GLenum *bufs); void GLAPIENTRY _mesa_DrawBuffers_no_error(GLsizei n, const GLenum *bufs); void GLAPIENTRY _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); void GLAPIENTRY _mesa_StencilFuncSeparate_no_error(GLenum face, GLenum func, GLint ref, GLuint mask); void GLAPIENTRY _mesa_StencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass); void GLAPIENTRY _mesa_StencilOpSeparate_no_error(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass); void GLAPIENTRY _mesa_StencilMaskSeparate(GLenum face, GLuint mask); void GLAPIENTRY _mesa_StencilMaskSeparate_no_error(GLenum face, GLuint mask); void GLAPIENTRY _mesa_AttachShader(GLuint program, GLuint shader); void GLAPIENTRY _mesa_AttachShader_no_error(GLuint program, GLuint shader); void GLAPIENTRY _mesa_BindAttribLocation(GLuint program, GLuint index, const GLchar *name); void GLAPIENTRY _mesa_BindAttribLocation_no_error(GLuint program, GLuint index, const GLchar *name); void GLAPIENTRY _mesa_CompileShader(GLuint shader); GLuint GLAPIENTRY _mesa_CreateProgram(void); GLuint GLAPIENTRY _mesa_CreateShader(GLenum type); GLuint GLAPIENTRY _mesa_CreateShader_no_error(GLenum type); void GLAPIENTRY _mesa_DeleteProgram(GLuint program); void GLAPIENTRY _mesa_DeleteShader(GLuint program); void GLAPIENTRY _mesa_DetachShader(GLuint program, GLuint shader); void GLAPIENTRY _mesa_DetachShader_no_error(GLuint program, GLuint shader); void GLAPIENTRY _mesa_DisableVertexAttribArray(GLuint index); void GLAPIENTRY _mesa_DisableVertexAttribArray_no_error(GLuint index); void GLAPIENTRY _mesa_EnableVertexAttribArray(GLuint index); void GLAPIENTRY _mesa_EnableVertexAttribArray_no_error(GLuint index); void GLAPIENTRY _mesa_GetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); void GLAPIENTRY _mesa_GetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); void GLAPIENTRY _mesa_GetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); GLint GLAPIENTRY _mesa_GetAttribLocation(GLuint program, const GLchar *name); void GLAPIENTRY _mesa_GetProgramiv(GLuint program, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); void GLAPIENTRY _mesa_GetShaderiv(GLuint shader, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); void GLAPIENTRY _mesa_GetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); GLint GLAPIENTRY _mesa_GetUniformLocation(GLuint program, const GLchar *name); GLint GLAPIENTRY _mesa_GetUniformLocation_no_error(GLuint program, const GLchar *name); void GLAPIENTRY _mesa_GetUniformfv(GLuint program, GLint location, GLfloat *params); void GLAPIENTRY _mesa_GetUniformiv(GLuint program, GLint location, GLint *params); void GLAPIENTRY _mesa_GetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params); void GLAPIENTRY _mesa_GetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetVertexAttribiv(GLuint index, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer); GLboolean GLAPIENTRY _mesa_IsProgram(GLuint program); GLboolean GLAPIENTRY _mesa_IsShader(GLuint shader); void GLAPIENTRY _mesa_LinkProgram(GLuint program); void GLAPIENTRY _mesa_LinkProgram_no_error(GLuint program); void GLAPIENTRY _mesa_ShaderSource(GLuint shader, GLsizei count, const GLchar * const *string, const GLint *length); void GLAPIENTRY _mesa_ShaderSource_no_error(GLuint shader, GLsizei count, const GLchar * const *string, const GLint *length); void GLAPIENTRY _mesa_UseProgram(GLuint program); void GLAPIENTRY _mesa_UseProgram_no_error(GLuint program); void GLAPIENTRY _mesa_Uniform1f(GLint location, GLfloat v0); void GLAPIENTRY _mesa_Uniform2f(GLint location, GLfloat v0, GLfloat v1); void GLAPIENTRY _mesa_Uniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); void GLAPIENTRY _mesa_Uniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); void GLAPIENTRY _mesa_Uniform1i(GLint location, GLint v0); void GLAPIENTRY _mesa_Uniform2i(GLint location, GLint v0, GLint v1); void GLAPIENTRY _mesa_Uniform3i(GLint location, GLint v0, GLint v1, GLint v2); void GLAPIENTRY _mesa_Uniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); void GLAPIENTRY _mesa_Uniform1fv(GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_Uniform2fv(GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_Uniform3fv(GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_Uniform4fv(GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_Uniform1iv(GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_Uniform2iv(GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_Uniform3iv(GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_Uniform4iv(GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_UniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ValidateProgram(GLuint program); void GLAPIENTRY _mesa_VertexAttrib1d(GLuint index, GLdouble x); void GLAPIENTRY _mesa_VertexAttrib1dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib1fARB(GLuint index, GLfloat x); void GLAPIENTRY _mesa_VertexAttrib1fvARB(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib1s(GLuint index, GLshort x); void GLAPIENTRY _mesa_VertexAttrib1sv(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y); void GLAPIENTRY _mesa_VertexAttrib2dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y); void GLAPIENTRY _mesa_VertexAttrib2fvARB(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y); void GLAPIENTRY _mesa_VertexAttrib2sv(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_VertexAttrib3dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_VertexAttrib3fvARB(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z); void GLAPIENTRY _mesa_VertexAttrib3sv(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib4Nbv(GLuint index, const GLbyte *v); void GLAPIENTRY _mesa_VertexAttrib4Niv(GLuint index, const GLint *v); void GLAPIENTRY _mesa_VertexAttrib4Nsv(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); void GLAPIENTRY _mesa_VertexAttrib4Nubv(GLuint index, const GLubyte *v); void GLAPIENTRY _mesa_VertexAttrib4Nuiv(GLuint index, const GLuint *v); void GLAPIENTRY _mesa_VertexAttrib4Nusv(GLuint index, const GLushort *v); void GLAPIENTRY _mesa_VertexAttrib4bv(GLuint index, const GLbyte *v); void GLAPIENTRY _mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_VertexAttrib4dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_VertexAttrib4fvARB(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib4iv(GLuint index, const GLint *v); void GLAPIENTRY _mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); void GLAPIENTRY _mesa_VertexAttrib4sv(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib4ubv(GLuint index, const GLubyte *v); void GLAPIENTRY _mesa_VertexAttrib4uiv(GLuint index, const GLuint *v); void GLAPIENTRY _mesa_VertexAttrib4usv(GLuint index, const GLushort *v); void GLAPIENTRY _mesa_VertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_VertexAttribPointer_no_error(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string); void GLAPIENTRY _mesa_BindProgramARB(GLenum target, GLuint program); void GLAPIENTRY _mesa_DeleteProgramsARB(GLsizei n, const GLuint *programs); void GLAPIENTRY _mesa_GenProgramsARB(GLsizei n, GLuint *programs); GLboolean GLAPIENTRY _mesa_IsProgramARB(GLuint program); void GLAPIENTRY _mesa_ProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_ProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); void GLAPIENTRY _mesa_ProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_ProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); void GLAPIENTRY _mesa_ProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_ProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); void GLAPIENTRY _mesa_ProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_ProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); void GLAPIENTRY _mesa_GetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params); void GLAPIENTRY _mesa_GetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params); void GLAPIENTRY _mesa_GetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params); void GLAPIENTRY _mesa_GetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params); void GLAPIENTRY _mesa_GetProgramivARB(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetProgramStringARB(GLenum target, GLenum pname, GLvoid *string); void GLAPIENTRY _mesa_DeleteObjectARB(GLhandleARB obj); GLhandleARB GLAPIENTRY _mesa_GetHandleARB(GLenum pname); void GLAPIENTRY _mesa_DetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj); void GLAPIENTRY _mesa_DetachObjectARB_no_error(GLhandleARB containerObj, GLhandleARB attachedObj); GLhandleARB GLAPIENTRY _mesa_CreateShaderObjectARB(GLenum shaderType); GLhandleARB GLAPIENTRY _mesa_CreateShaderObjectARB_no_error(GLenum shaderType); GLhandleARB GLAPIENTRY _mesa_CreateProgramObjectARB(void); void GLAPIENTRY _mesa_AttachObjectARB(GLhandleARB containerObj, GLhandleARB obj); void GLAPIENTRY _mesa_AttachObjectARB_no_error(GLhandleARB containerObj, GLhandleARB obj); void GLAPIENTRY _mesa_GetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); void GLAPIENTRY _mesa_GetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxLength, GLsizei *length, GLhandleARB *infoLog); void GLAPIENTRY _mesa_ClampColor(GLenum target, GLenum clamp); void GLAPIENTRY _mesa_DrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount); void GLAPIENTRY _mesa_DrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instance_count); GLboolean GLAPIENTRY _mesa_IsRenderbuffer(GLuint renderbuffer); void GLAPIENTRY _mesa_BindRenderbuffer(GLenum target, GLuint renderbuffer); void GLAPIENTRY _mesa_DeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers); void GLAPIENTRY _mesa_GenRenderbuffers(GLsizei n, GLuint *renderbuffers); void GLAPIENTRY _mesa_GenRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers); void GLAPIENTRY _mesa_RenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params); GLboolean GLAPIENTRY _mesa_IsFramebuffer(GLuint framebuffer); void GLAPIENTRY _mesa_BindFramebuffer(GLenum target, GLuint framebuffer); void GLAPIENTRY _mesa_DeleteFramebuffers(GLsizei n, const GLuint *framebuffers); void GLAPIENTRY _mesa_GenFramebuffers(GLsizei n, GLuint *framebuffers); GLenum GLAPIENTRY _mesa_CheckFramebufferStatus(GLenum target); GLenum GLAPIENTRY _mesa_CheckFramebufferStatus_no_error(GLenum target); void GLAPIENTRY _mesa_FramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void GLAPIENTRY _mesa_FramebufferTexture1D_no_error(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void GLAPIENTRY _mesa_FramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void GLAPIENTRY _mesa_FramebufferTexture2D_no_error(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void GLAPIENTRY _mesa_FramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); void GLAPIENTRY _mesa_FramebufferTexture3D_no_error(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); void GLAPIENTRY _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); void GLAPIENTRY _mesa_FramebufferTextureLayer_no_error(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); void GLAPIENTRY _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); void GLAPIENTRY _mesa_FramebufferRenderbuffer_no_error(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); void GLAPIENTRY _mesa_GetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params); void GLAPIENTRY _mesa_BlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); void GLAPIENTRY _mesa_BlitFramebuffer_no_error(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); void GLAPIENTRY _mesa_GenerateMipmap(GLenum target); void GLAPIENTRY _mesa_GenerateMipmap_no_error(GLenum target); void GLAPIENTRY _mesa_FramebufferTextureMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseviewindex, GLsizei numviews); void GLAPIENTRY _mesa_FramebufferTextureMultiviewOVR_no_error(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseviewindex, GLsizei numviews); void GLAPIENTRY _mesa_NamedFramebufferTextureMultiviewOVR(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseviewindex, GLsizei numviews); void GLAPIENTRY _mesa_NamedFramebufferTextureMultiviewOVR_no_error(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint baseviewindex, GLsizei numviews); void GLAPIENTRY _mesa_FramebufferTextureMultisampleMultiviewOVR(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseviewindex, GLsizei numviews); void GLAPIENTRY _mesa_FramebufferTextureMultisampleMultiviewOVR_no_error(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseviewindex, GLsizei numviews); void GLAPIENTRY _mesa_VertexAttribDivisor(GLuint index, GLuint divisor); void GLAPIENTRY _mesa_VertexAttribDivisor_no_error(GLuint index, GLuint divisor); void GLAPIENTRY _mesa_VertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor); GLvoid * GLAPIENTRY _mesa_MapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); GLvoid * GLAPIENTRY _mesa_MapBufferRange_no_error(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); void GLAPIENTRY _mesa_FlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length); void GLAPIENTRY _mesa_FlushMappedBufferRange_no_error(GLenum target, GLintptr offset, GLsizeiptr length); void GLAPIENTRY _mesa_TexBuffer(GLenum target, GLenum internalFormat, GLuint buffer); void GLAPIENTRY _mesa_BindVertexArray(GLuint array); void GLAPIENTRY _mesa_BindVertexArray_no_error(GLuint array); void GLAPIENTRY _mesa_DeleteVertexArrays(GLsizei n, const GLuint *arrays); void GLAPIENTRY _mesa_DeleteVertexArrays_no_error(GLsizei n, const GLuint *arrays); void GLAPIENTRY _mesa_GenVertexArrays(GLsizei n, GLuint *arrays); void GLAPIENTRY _mesa_GenVertexArrays_no_error(GLsizei n, GLuint *arrays); GLboolean GLAPIENTRY _mesa_IsVertexArray(GLuint array); void GLAPIENTRY _mesa_GetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar * const *uniformNames, GLuint *uniformIndices); void GLAPIENTRY _mesa_GetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); GLuint GLAPIENTRY _mesa_GetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName); void GLAPIENTRY _mesa_GetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); void GLAPIENTRY _mesa_UniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); void GLAPIENTRY _mesa_UniformBlockBinding_no_error(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); void GLAPIENTRY _mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); void GLAPIENTRY _mesa_CopyBufferSubData_no_error(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); void GLAPIENTRY _mesa_DrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); void GLAPIENTRY _mesa_DrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); void GLAPIENTRY _mesa_MultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, const GLint *basevertex); void GLAPIENTRY _mesa_DrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); GLsync GLAPIENTRY _mesa_FenceSync(GLenum condition, GLbitfield flags); GLsync GLAPIENTRY _mesa_FenceSync_no_error(GLenum condition, GLbitfield flags); GLboolean GLAPIENTRY _mesa_IsSync(GLsync sync); void GLAPIENTRY _mesa_DeleteSync(GLsync sync); void GLAPIENTRY _mesa_DeleteSync_no_error(GLsync sync); GLenum GLAPIENTRY _mesa_ClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); GLenum GLAPIENTRY _mesa_ClientWaitSync_no_error(GLsync sync, GLbitfield flags, GLuint64 timeout); void GLAPIENTRY _mesa_WaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); void GLAPIENTRY _mesa_WaitSync_no_error(GLsync sync, GLbitfield flags, GLuint64 timeout); void GLAPIENTRY _mesa_GetInteger64v(GLenum pname, GLint64 *params); void GLAPIENTRY _mesa_GetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); void GLAPIENTRY _mesa_TexImage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_TexImage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_GetMultisamplefv(GLenum pname, GLuint index, GLfloat *val); void GLAPIENTRY _mesa_SampleMaski(GLuint index, GLbitfield mask); void GLAPIENTRY _mesa_SampleMaski_no_error(GLuint index, GLbitfield mask); void GLAPIENTRY _mesa_BlendEquationiARB(GLuint buf, GLenum mode); void GLAPIENTRY _mesa_BlendEquationiARB_no_error(GLuint buf, GLenum mode); void GLAPIENTRY _mesa_BlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeA); void GLAPIENTRY _mesa_BlendEquationSeparateiARB_no_error(GLuint buf, GLenum modeRGB, GLenum modeA); void GLAPIENTRY _mesa_BlendFunciARB(GLuint buf, GLenum src, GLenum dst); void GLAPIENTRY _mesa_BlendFunciARB_no_error(GLuint buf, GLenum src, GLenum dst); void GLAPIENTRY _mesa_BlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA); void GLAPIENTRY _mesa_BlendFuncSeparateiARB_no_error(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcA, GLenum dstA); void GLAPIENTRY _mesa_MinSampleShading(GLfloat value); void GLAPIENTRY _mesa_MinSampleShading_no_error(GLfloat value); void GLAPIENTRY _mesa_NamedStringARB(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); void GLAPIENTRY _mesa_DeleteNamedStringARB(GLint namelen, const GLchar *name); void GLAPIENTRY _mesa_CompileShaderIncludeARB(GLuint shader, GLsizei count, const GLchar * const *path, const GLint *length); GLboolean GLAPIENTRY _mesa_IsNamedStringARB(GLint namelen, const GLchar *name); void GLAPIENTRY _mesa_GetNamedStringARB(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); void GLAPIENTRY _mesa_GetNamedStringivARB(GLint namelen, const GLchar *name, GLenum pname, GLint *params); void GLAPIENTRY _mesa_BindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); void GLAPIENTRY _mesa_BindFragDataLocationIndexed_no_error(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); GLint GLAPIENTRY _mesa_GetFragDataIndex(GLuint program, const GLchar *name); void GLAPIENTRY _mesa_GenSamplers(GLsizei count, GLuint *samplers); void GLAPIENTRY _mesa_GenSamplers_no_error(GLsizei count, GLuint *samplers); void GLAPIENTRY _mesa_DeleteSamplers(GLsizei count, const GLuint *samplers); void GLAPIENTRY _mesa_DeleteSamplers_no_error(GLsizei count, const GLuint *samplers); GLboolean GLAPIENTRY _mesa_IsSampler(GLuint sampler); void GLAPIENTRY _mesa_BindSampler(GLuint unit, GLuint sampler); void GLAPIENTRY _mesa_BindSampler_no_error(GLuint unit, GLuint sampler); void GLAPIENTRY _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param); void GLAPIENTRY _mesa_SamplerParameterf(GLuint sampler, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params); void GLAPIENTRY _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params); void GLAPIENTRY _mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params); void GLAPIENTRY _mesa_GetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params); void GLAPIENTRY _mesa_GetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params); void GLAPIENTRY _mesa_QueryCounter(GLuint id, GLenum target); void GLAPIENTRY _mesa_VertexP2ui(GLenum type, GLuint value); void GLAPIENTRY _mesa_VertexP3ui(GLenum type, GLuint value); void GLAPIENTRY _mesa_VertexP4ui(GLenum type, GLuint value); void GLAPIENTRY _mesa_VertexP2uiv(GLenum type, const GLuint *value); void GLAPIENTRY _mesa_VertexP3uiv(GLenum type, const GLuint *value); void GLAPIENTRY _mesa_VertexP4uiv(GLenum type, const GLuint *value); void GLAPIENTRY _mesa_TexCoordP1ui(GLenum type, GLuint coords); void GLAPIENTRY _mesa_TexCoordP2ui(GLenum type, GLuint coords); void GLAPIENTRY _mesa_TexCoordP3ui(GLenum type, GLuint coords); void GLAPIENTRY _mesa_TexCoordP4ui(GLenum type, GLuint coords); void GLAPIENTRY _mesa_TexCoordP1uiv(GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_TexCoordP2uiv(GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_TexCoordP3uiv(GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_TexCoordP4uiv(GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_MultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords); void GLAPIENTRY _mesa_MultiTexCoordP2ui(GLenum texture, GLenum type, GLuint coords); void GLAPIENTRY _mesa_MultiTexCoordP3ui(GLenum texture, GLenum type, GLuint coords); void GLAPIENTRY _mesa_MultiTexCoordP4ui(GLenum texture, GLenum type, GLuint coords); void GLAPIENTRY _mesa_MultiTexCoordP1uiv(GLenum texture, GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_MultiTexCoordP2uiv(GLenum texture, GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_MultiTexCoordP3uiv(GLenum texture, GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_MultiTexCoordP4uiv(GLenum texture, GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_NormalP3ui(GLenum type, GLuint coords); void GLAPIENTRY _mesa_NormalP3uiv(GLenum type, const GLuint *coords); void GLAPIENTRY _mesa_ColorP3ui(GLenum type, GLuint color); void GLAPIENTRY _mesa_ColorP4ui(GLenum type, GLuint color); void GLAPIENTRY _mesa_ColorP3uiv(GLenum type, const GLuint *color); void GLAPIENTRY _mesa_ColorP4uiv(GLenum type, const GLuint *color); void GLAPIENTRY _mesa_SecondaryColorP3ui(GLenum type, GLuint color); void GLAPIENTRY _mesa_SecondaryColorP3uiv(GLenum type, const GLuint *color); void GLAPIENTRY _mesa_VertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); void GLAPIENTRY _mesa_VertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); void GLAPIENTRY _mesa_VertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); void GLAPIENTRY _mesa_VertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value); void GLAPIENTRY _mesa_VertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); void GLAPIENTRY _mesa_VertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); void GLAPIENTRY _mesa_VertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); void GLAPIENTRY _mesa_VertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); GLint GLAPIENTRY _mesa_GetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar *name); GLuint GLAPIENTRY _mesa_GetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar *name); void GLAPIENTRY _mesa_GetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); void GLAPIENTRY _mesa_GetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); void GLAPIENTRY _mesa_GetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); void GLAPIENTRY _mesa_UniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint *indices); void GLAPIENTRY _mesa_GetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params); void GLAPIENTRY _mesa_GetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint *values); void GLAPIENTRY _mesa_PatchParameteri(GLenum pname, GLint value); void GLAPIENTRY _mesa_PatchParameteri_no_error(GLenum pname, GLint value); void GLAPIENTRY _mesa_PatchParameterfv(GLenum pname, const GLfloat *values); void GLAPIENTRY _mesa_DrawArraysIndirect(GLenum mode, const GLvoid *indirect); void GLAPIENTRY _mesa_DrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect); void GLAPIENTRY _mesa_MultiDrawArraysIndirect(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); void GLAPIENTRY _mesa_MultiDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); void GLAPIENTRY _mesa_Uniform1d(GLint location, GLdouble x); void GLAPIENTRY _mesa_Uniform2d(GLint location, GLdouble x, GLdouble y); void GLAPIENTRY _mesa_Uniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_Uniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_Uniform1dv(GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_Uniform2dv(GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_Uniform3dv(GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_Uniform4dv(GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_UniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_GetUniformdv(GLuint program, GLint location, GLdouble *params); void GLAPIENTRY _mesa_ProgramUniform1d(GLuint program, GLint location, GLdouble x); void GLAPIENTRY _mesa_ProgramUniform2d(GLuint program, GLint location, GLdouble x, GLdouble y); void GLAPIENTRY _mesa_ProgramUniform3d(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_ProgramUniform4d(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_ProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); void GLAPIENTRY _mesa_DrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream); void GLAPIENTRY _mesa_BeginQueryIndexed(GLenum target, GLuint index, GLuint id); void GLAPIENTRY _mesa_EndQueryIndexed(GLenum target, GLuint index); void GLAPIENTRY _mesa_GetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params); void GLAPIENTRY _mesa_UseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program); void GLAPIENTRY _mesa_UseProgramStages_no_error(GLuint pipeline, GLbitfield stages, GLuint program); void GLAPIENTRY _mesa_ActiveShaderProgram(GLuint pipeline, GLuint program); void GLAPIENTRY _mesa_ActiveShaderProgram_no_error(GLuint pipeline, GLuint program); GLuint GLAPIENTRY _mesa_CreateShaderProgramv(GLenum type, GLsizei count, const GLchar * const *strings); void GLAPIENTRY _mesa_BindProgramPipeline(GLuint pipeline); void GLAPIENTRY _mesa_BindProgramPipeline_no_error(GLuint pipeline); void GLAPIENTRY _mesa_DeleteProgramPipelines(GLsizei n, const GLuint *pipelines); void GLAPIENTRY _mesa_GenProgramPipelines(GLsizei n, GLuint *pipelines); void GLAPIENTRY _mesa_GenProgramPipelines_no_error(GLsizei n, GLuint *pipelines); GLboolean GLAPIENTRY _mesa_IsProgramPipeline(GLuint pipeline); void GLAPIENTRY _mesa_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params); void GLAPIENTRY _mesa_ProgramUniform1i(GLuint program, GLint location, GLint x); void GLAPIENTRY _mesa_ProgramUniform2i(GLuint program, GLint location, GLint x, GLint y); void GLAPIENTRY _mesa_ProgramUniform3i(GLuint program, GLint location, GLint x, GLint y, GLint z); void GLAPIENTRY _mesa_ProgramUniform4i(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); void GLAPIENTRY _mesa_ProgramUniform1ui(GLuint program, GLint location, GLuint x); void GLAPIENTRY _mesa_ProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y); void GLAPIENTRY _mesa_ProgramUniform3ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z); void GLAPIENTRY _mesa_ProgramUniform4ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); void GLAPIENTRY _mesa_ProgramUniform1f(GLuint program, GLint location, GLfloat x); void GLAPIENTRY _mesa_ProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y); void GLAPIENTRY _mesa_ProgramUniform3f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_ProgramUniform4f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_ProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_ProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_ProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_ProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value); void GLAPIENTRY _mesa_ProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_ProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_ProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_ProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_ProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); void GLAPIENTRY _mesa_ValidateProgramPipeline(GLuint pipeline); void GLAPIENTRY _mesa_GetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); void GLAPIENTRY _mesa_VertexAttribL1d(GLuint index, GLdouble x); void GLAPIENTRY _mesa_VertexAttribL2d(GLuint index, GLdouble x, GLdouble y); void GLAPIENTRY _mesa_VertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_VertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_VertexAttribL1dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribL2dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribL3dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribL4dv(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_VertexAttribLPointer_no_error(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_GetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params); void GLAPIENTRY _mesa_VertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_GetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); void GLAPIENTRY _mesa_ReleaseShaderCompiler(void); void GLAPIENTRY _mesa_ShaderBinary(GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); void GLAPIENTRY _mesa_ClearDepthf(GLclampf depth); void GLAPIENTRY _mesa_DepthRangef(GLclampf zNear, GLclampf zFar); void GLAPIENTRY _mesa_GetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); void GLAPIENTRY _mesa_ProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); void GLAPIENTRY _mesa_ProgramParameteri(GLuint program, GLenum pname, GLint value); void GLAPIENTRY _mesa_ProgramParameteri_no_error(GLuint program, GLenum pname, GLint value); void GLAPIENTRY _mesa_DebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); void GLAPIENTRY _mesa_DebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); void GLAPIENTRY _mesa_DebugMessageCallback(GLDEBUGPROC callback, const GLvoid *userParam); GLuint GLAPIENTRY _mesa_GetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); GLenum GLAPIENTRY _mesa_GetGraphicsResetStatusARB(void); void GLAPIENTRY _mesa_GetnMapdvARB(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); void GLAPIENTRY _mesa_GetnMapfvARB(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); void GLAPIENTRY _mesa_GetnMapivARB(GLenum target, GLenum query, GLsizei bufSize, GLint *v); void GLAPIENTRY _mesa_GetnPixelMapfvARB(GLenum map, GLsizei bufSize, GLfloat *values); void GLAPIENTRY _mesa_GetnPixelMapuivARB(GLenum map, GLsizei bufSize, GLuint *values); void GLAPIENTRY _mesa_GetnPixelMapusvARB(GLenum map, GLsizei bufSize, GLushort *values); void GLAPIENTRY _mesa_GetnPolygonStippleARB(GLsizei bufSize, GLubyte *pattern); void GLAPIENTRY _mesa_GetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); void GLAPIENTRY _mesa_ReadnPixelsARB(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); void GLAPIENTRY _mesa_ReadnPixelsARB_no_error(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); void GLAPIENTRY _mesa_GetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); void GLAPIENTRY _mesa_GetnUniformfvARB(GLuint program, GLint location, GLsizei bufSize, GLfloat *params); void GLAPIENTRY _mesa_GetnUniformivARB(GLuint program, GLint location, GLsizei bufSize, GLint *params); void GLAPIENTRY _mesa_GetnUniformuivARB(GLuint program, GLint location, GLsizei bufSize, GLuint *params); void GLAPIENTRY _mesa_GetnUniformdvARB(GLuint program, GLint location, GLsizei bufSize, GLdouble *params); void GLAPIENTRY _mesa_DrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instance_count, GLuint baseinstance); void GLAPIENTRY _mesa_DrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLuint baseinstance); void GLAPIENTRY _mesa_DrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instance_count, GLint basevertex, GLuint baseinstance); void GLAPIENTRY _mesa_DrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei primcount); void GLAPIENTRY _mesa_DrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei primcount); void GLAPIENTRY _mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); void GLAPIENTRY _mesa_GetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); void GLAPIENTRY _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); void GLAPIENTRY _mesa_BindImageTexture_no_error(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); void GLAPIENTRY _mesa_MemoryBarrier(GLbitfield barriers); void GLAPIENTRY _mesa_TexStorage1D(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width); void GLAPIENTRY _mesa_TexStorage1D_no_error(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width); void GLAPIENTRY _mesa_TexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TexStorage2D_no_error(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TexStorage3D(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_TexStorage3D_no_error(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_PushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message); void GLAPIENTRY _mesa_PopDebugGroup(void); void GLAPIENTRY _mesa_ObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label); void GLAPIENTRY _mesa_GetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); void GLAPIENTRY _mesa_ObjectPtrLabel(const GLvoid *ptr, GLsizei length, const GLchar *label); void GLAPIENTRY _mesa_GetObjectPtrLabel(const GLvoid *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); void GLAPIENTRY _mesa_ClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearBufferData_no_error(GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearBufferSubData_no_error(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_DispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); void GLAPIENTRY _mesa_DispatchCompute_no_error(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); void GLAPIENTRY _mesa_DispatchComputeIndirect(GLintptr indirect); void GLAPIENTRY _mesa_DispatchComputeIndirect_no_error(GLintptr indirect); void GLAPIENTRY _mesa_CopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); void GLAPIENTRY _mesa_CopyImageSubData_no_error(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth); void GLAPIENTRY _mesa_TextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); void GLAPIENTRY _mesa_TextureView_no_error(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); void GLAPIENTRY _mesa_BindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void GLAPIENTRY _mesa_BindVertexBuffer_no_error(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void GLAPIENTRY _mesa_VertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexAttribBinding(GLuint attribindex, GLuint bindingindex); void GLAPIENTRY _mesa_VertexAttribBinding_no_error(GLuint attribindex, GLuint bindingindex); void GLAPIENTRY _mesa_VertexBindingDivisor(GLuint bindingindex, GLuint divisor); void GLAPIENTRY _mesa_VertexBindingDivisor_no_error(GLuint bindingindex, GLuint divisor); void GLAPIENTRY _mesa_VertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void GLAPIENTRY _mesa_VertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex); void GLAPIENTRY _mesa_VertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor); void GLAPIENTRY _mesa_FramebufferParameteri(GLenum target, GLenum pname, GLint param); void GLAPIENTRY _mesa_GetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_NamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param); void GLAPIENTRY _mesa_GetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint*params); void GLAPIENTRY _mesa_GetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params); void GLAPIENTRY _mesa_InvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_InvalidateTexSubImage_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_InvalidateTexImage(GLuint texture, GLint level); void GLAPIENTRY _mesa_InvalidateTexImage_no_error(GLuint texture, GLint level); void GLAPIENTRY _mesa_InvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length); void GLAPIENTRY _mesa_InvalidateBufferSubData_no_error(GLuint buffer, GLintptr offset, GLsizeiptr length); void GLAPIENTRY _mesa_InvalidateBufferData(GLuint buffer); void GLAPIENTRY _mesa_InvalidateBufferData_no_error(GLuint buffer); void GLAPIENTRY _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_InvalidateSubFramebuffer_no_error(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments); void GLAPIENTRY _mesa_InvalidateFramebuffer_no_error(GLenum target, GLsizei numAttachments, const GLenum *attachments); void GLAPIENTRY _mesa_GetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params); GLuint GLAPIENTRY _mesa_GetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name); void GLAPIENTRY _mesa_GetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); void GLAPIENTRY _mesa_GetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params); GLint GLAPIENTRY _mesa_GetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name); GLint GLAPIENTRY _mesa_GetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar *name); void GLAPIENTRY _mesa_ShaderStorageBlockBinding(GLuint program, GLuint shaderStorageBlockIndex, GLuint shaderStorageBlockBinding); void GLAPIENTRY _mesa_ShaderStorageBlockBinding_no_error(GLuint program, GLuint shaderStorageBlockIndex, GLuint shaderStorageBlockBinding); void GLAPIENTRY _mesa_TexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); void GLAPIENTRY _mesa_TextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); void GLAPIENTRY _mesa_TexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_TexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_TextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_TextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_BufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags); void GLAPIENTRY _mesa_BufferStorage_no_error(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags); void GLAPIENTRY _mesa_NamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLbitfield flags); void GLAPIENTRY _mesa_ClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_BindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint *buffers); void GLAPIENTRY _mesa_BindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); void GLAPIENTRY _mesa_BindTextures(GLuint first, GLsizei count, const GLuint *textures); void GLAPIENTRY _mesa_BindTextures_no_error(GLuint first, GLsizei count, const GLuint *textures); void GLAPIENTRY _mesa_BindSamplers(GLuint first, GLsizei count, const GLuint *samplers); void GLAPIENTRY _mesa_BindSamplers_no_error(GLuint first, GLsizei count, const GLuint *samplers); void GLAPIENTRY _mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures); void GLAPIENTRY _mesa_BindImageTextures_no_error(GLuint first, GLsizei count, const GLuint *textures); void GLAPIENTRY _mesa_BindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); void GLAPIENTRY _mesa_BindVertexBuffers_no_error(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); GLuint64 GLAPIENTRY _mesa_GetTextureHandleARB(GLuint texture); GLuint64 GLAPIENTRY _mesa_GetTextureHandleARB_no_error(GLuint texture); GLuint64 GLAPIENTRY _mesa_GetTextureSamplerHandleARB(GLuint texture, GLuint sampler); GLuint64 GLAPIENTRY _mesa_GetTextureSamplerHandleARB_no_error(GLuint texture, GLuint sampler); void GLAPIENTRY _mesa_MakeTextureHandleResidentARB(GLuint64 handle); void GLAPIENTRY _mesa_MakeTextureHandleResidentARB_no_error(GLuint64 handle); void GLAPIENTRY _mesa_MakeTextureHandleNonResidentARB(GLuint64 handle); void GLAPIENTRY _mesa_MakeTextureHandleNonResidentARB_no_error(GLuint64 handle); GLuint64 GLAPIENTRY _mesa_GetImageHandleARB(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); GLuint64 GLAPIENTRY _mesa_GetImageHandleARB_no_error(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format); void GLAPIENTRY _mesa_MakeImageHandleResidentARB(GLuint64 handle, GLenum access); void GLAPIENTRY _mesa_MakeImageHandleResidentARB_no_error(GLuint64 handle, GLenum access); void GLAPIENTRY _mesa_MakeImageHandleNonResidentARB(GLuint64 handle); void GLAPIENTRY _mesa_MakeImageHandleNonResidentARB_no_error(GLuint64 handle); void GLAPIENTRY _mesa_UniformHandleui64ARB(GLint location, GLuint64 value); void GLAPIENTRY _mesa_UniformHandleui64vARB(GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_ProgramUniformHandleui64ARB(GLuint program, GLint location, GLuint64 value); void GLAPIENTRY _mesa_ProgramUniformHandleui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *value); GLboolean GLAPIENTRY _mesa_IsTextureHandleResidentARB(GLuint64 handle); GLboolean GLAPIENTRY _mesa_IsTextureHandleResidentARB_no_error(GLuint64 handle); GLboolean GLAPIENTRY _mesa_IsImageHandleResidentARB(GLuint64 handle); GLboolean GLAPIENTRY _mesa_IsImageHandleResidentARB_no_error(GLuint64 handle); void GLAPIENTRY _mesa_VertexAttribL1ui64ARB(GLuint index, GLuint64EXT x); void GLAPIENTRY _mesa_VertexAttribL1ui64vARB(GLuint index, const GLuint64EXT *v); void GLAPIENTRY _mesa_GetVertexAttribLui64vARB(GLuint index, GLenum pname, GLuint64EXT *params); void GLAPIENTRY _mesa_DispatchComputeGroupSizeARB(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); void GLAPIENTRY _mesa_DispatchComputeGroupSizeARB_no_error(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z); void GLAPIENTRY _mesa_MultiDrawArraysIndirectCountARB(GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); void GLAPIENTRY _mesa_MultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); void GLAPIENTRY _mesa_TexPageCommitmentARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); void GLAPIENTRY _mesa_TexturePageCommitmentEXT(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit); void GLAPIENTRY _mesa_ClipControl(GLenum origin, GLenum depth); void GLAPIENTRY _mesa_ClipControl_no_error(GLenum origin, GLenum depth); void GLAPIENTRY _mesa_CreateTransformFeedbacks(GLsizei n, GLuint *ids); void GLAPIENTRY _mesa_TransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer); void GLAPIENTRY _mesa_TransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); void GLAPIENTRY _mesa_GetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param); void GLAPIENTRY _mesa_GetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index, GLint *param); void GLAPIENTRY _mesa_GetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index, GLint64 *param); void GLAPIENTRY _mesa_CreateBuffers(GLsizei n, GLuint *buffers); void GLAPIENTRY _mesa_CreateBuffers_no_error(GLsizei n, GLuint *buffers); void GLAPIENTRY _mesa_NamedBufferStorage(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLbitfield flags); void GLAPIENTRY _mesa_NamedBufferStorage_no_error(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLbitfield flags); void GLAPIENTRY _mesa_NamedBufferData(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); void GLAPIENTRY _mesa_NamedBufferData_no_error(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); void GLAPIENTRY _mesa_NamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); void GLAPIENTRY _mesa_NamedBufferSubData_no_error(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); void GLAPIENTRY _mesa_CopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); void GLAPIENTRY _mesa_CopyNamedBufferSubData_no_error(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); void GLAPIENTRY _mesa_ClearNamedBufferData(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearNamedBufferData_no_error(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data); void GLAPIENTRY _mesa_ClearNamedBufferSubData_no_error(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data); GLvoid * GLAPIENTRY _mesa_MapNamedBuffer(GLuint buffer, GLenum access); GLvoid * GLAPIENTRY _mesa_MapNamedBuffer_no_error(GLuint buffer, GLenum access); GLvoid * GLAPIENTRY _mesa_MapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); GLvoid * GLAPIENTRY _mesa_MapNamedBufferRange_no_error(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); GLboolean GLAPIENTRY _mesa_UnmapNamedBufferEXT(GLuint buffer); GLboolean GLAPIENTRY _mesa_UnmapNamedBufferEXT_no_error(GLuint buffer); void GLAPIENTRY _mesa_FlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length); void GLAPIENTRY _mesa_FlushMappedNamedBufferRange_no_error(GLuint buffer, GLintptr offset, GLsizeiptr length); void GLAPIENTRY _mesa_GetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 *params); void GLAPIENTRY _mesa_GetNamedBufferPointerv(GLuint buffer, GLenum pname, GLvoid **params); void GLAPIENTRY _mesa_GetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); void GLAPIENTRY _mesa_CreateFramebuffers(GLsizei n, GLuint *framebuffers); void GLAPIENTRY _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); void GLAPIENTRY _mesa_NamedFramebufferRenderbuffer_no_error(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); void GLAPIENTRY _mesa_NamedFramebufferParameteri(GLuint framebuffer, GLenum pname, GLint param); void GLAPIENTRY _mesa_NamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); void GLAPIENTRY _mesa_NamedFramebufferTexture_no_error(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); void GLAPIENTRY _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); void GLAPIENTRY _mesa_NamedFramebufferTextureLayer_no_error(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); void GLAPIENTRY _mesa_NamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf); void GLAPIENTRY _mesa_NamedFramebufferDrawBuffer_no_error(GLuint framebuffer, GLenum buf); void GLAPIENTRY _mesa_NamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n, const GLenum *bufs); void GLAPIENTRY _mesa_NamedFramebufferDrawBuffers_no_error(GLuint framebuffer, GLsizei n, const GLenum *bufs); void GLAPIENTRY _mesa_NamedFramebufferReadBuffer(GLuint framebuffer, GLenum buf); void GLAPIENTRY _mesa_NamedFramebufferReadBuffer_no_error(GLuint framebuffer, GLenum buf); void GLAPIENTRY _mesa_InvalidateNamedFramebufferData(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); void GLAPIENTRY _mesa_InvalidateNamedFramebufferSubData(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_ClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); void GLAPIENTRY _mesa_ClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); void GLAPIENTRY _mesa_ClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); void GLAPIENTRY _mesa_ClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); void GLAPIENTRY _mesa_BlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); void GLAPIENTRY _mesa_BlitNamedFramebuffer_no_error(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); GLenum GLAPIENTRY _mesa_CheckNamedFramebufferStatus(GLuint framebuffer, GLenum target); void GLAPIENTRY _mesa_GetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint *param); void GLAPIENTRY _mesa_GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); void GLAPIENTRY _mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers); void GLAPIENTRY _mesa_CreateRenderbuffers_no_error(GLsizei n, GLuint *renderbuffers); void GLAPIENTRY _mesa_NamedRenderbufferStorage(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_NamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint *params); void GLAPIENTRY _mesa_CreateTextures(GLenum target, GLsizei n, GLuint *textures); void GLAPIENTRY _mesa_CreateTextures_no_error(GLenum target, GLsizei n, GLuint *textures); void GLAPIENTRY _mesa_TextureBuffer(GLuint texture, GLenum internalformat, GLuint buffer); void GLAPIENTRY _mesa_TextureBufferRange(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); void GLAPIENTRY _mesa_TextureStorage1D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); void GLAPIENTRY _mesa_TextureStorage1D_no_error(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); void GLAPIENTRY _mesa_TextureStorage2D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TextureStorage2D_no_error(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TextureStorage3D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_TextureStorage3D_no_error(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_TextureStorage2DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); void GLAPIENTRY _mesa_TextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_CompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CopyTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); void GLAPIENTRY _mesa_CopyTextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); void GLAPIENTRY _mesa_CopyTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyTextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyTextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TextureParameterf(GLuint texture, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_TextureParameterfv(GLuint texture, GLenum pname, const GLfloat *param); void GLAPIENTRY _mesa_TextureParameteri(GLuint texture, GLenum pname, GLint param); void GLAPIENTRY _mesa_TextureParameterIiv(GLuint texture, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_TextureParameterIuiv(GLuint texture, GLenum pname, const GLuint *params); void GLAPIENTRY _mesa_TextureParameteriv(GLuint texture, GLenum pname, const GLint *param); void GLAPIENTRY _mesa_GenerateTextureMipmap(GLuint texture); void GLAPIENTRY _mesa_GenerateTextureMipmap_no_error(GLuint texture); void GLAPIENTRY _mesa_BindTextureUnit(GLuint unit, GLuint texture); void GLAPIENTRY _mesa_BindTextureUnit_no_error(GLuint unit, GLuint texture); void GLAPIENTRY _mesa_GetTextureImage(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels); void GLAPIENTRY _mesa_GetCompressedTextureImage(GLuint texture, GLint level, GLsizei bufSize, GLvoid *pixels); void GLAPIENTRY _mesa_GetTextureLevelParameterfv(GLuint texture, GLint level, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetTextureLevelParameteriv(GLuint texture, GLint level, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params); void GLAPIENTRY _mesa_GetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params); void GLAPIENTRY _mesa_GetTextureParameteriv(GLuint texture, GLenum pname, GLint *params); void GLAPIENTRY _mesa_CreateVertexArrays(GLsizei n, GLuint *arrays); void GLAPIENTRY _mesa_CreateVertexArrays_no_error(GLsizei n, GLuint *arrays); void GLAPIENTRY _mesa_DisableVertexArrayAttrib(GLuint vaobj, GLuint index); void GLAPIENTRY _mesa_DisableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index); void GLAPIENTRY _mesa_EnableVertexArrayAttrib(GLuint vaobj, GLuint index); void GLAPIENTRY _mesa_EnableVertexArrayAttrib_no_error(GLuint vaobj, GLuint index); void GLAPIENTRY _mesa_VertexArrayElementBuffer(GLuint vaobj, GLuint buffer); void GLAPIENTRY _mesa_VertexArrayElementBuffer_no_error(GLuint vaobj, GLuint buffer); void GLAPIENTRY _mesa_VertexArrayVertexBuffer(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void GLAPIENTRY _mesa_VertexArrayVertexBuffer_no_error(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); void GLAPIENTRY _mesa_VertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); void GLAPIENTRY _mesa_VertexArrayVertexBuffers_no_error(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); void GLAPIENTRY _mesa_VertexArrayAttribFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexArrayAttribIFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexArrayAttribLFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); void GLAPIENTRY _mesa_VertexArrayAttribBinding(GLuint vaobj, GLuint attribindex, GLuint bindingindex); void GLAPIENTRY _mesa_VertexArrayAttribBinding_no_error(GLuint vaobj, GLuint attribindex, GLuint bindingindex); void GLAPIENTRY _mesa_VertexArrayBindingDivisor(GLuint vaobj, GLuint bindingindex, GLuint divisor); void GLAPIENTRY _mesa_VertexArrayBindingDivisor_no_error(GLuint vaobj, GLuint bindingindex, GLuint divisor); void GLAPIENTRY _mesa_GetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param); void GLAPIENTRY _mesa_GetVertexArrayIndexediv(GLuint vaobj, GLuint index, GLenum pname, GLint *param); void GLAPIENTRY _mesa_GetVertexArrayIndexed64iv(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); void GLAPIENTRY _mesa_CreateSamplers(GLsizei n, GLuint *samplers); void GLAPIENTRY _mesa_CreateSamplers_no_error(GLsizei n, GLuint *samplers); void GLAPIENTRY _mesa_CreateProgramPipelines(GLsizei n, GLuint *pipelines); void GLAPIENTRY _mesa_CreateProgramPipelines_no_error(GLsizei n, GLuint *pipelines); void GLAPIENTRY _mesa_CreateQueries(GLenum target, GLsizei n, GLuint *ids); void GLAPIENTRY _mesa_GetQueryBufferObjectiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); void GLAPIENTRY _mesa_GetQueryBufferObjectuiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); void GLAPIENTRY _mesa_GetQueryBufferObjecti64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); void GLAPIENTRY _mesa_GetQueryBufferObjectui64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); void GLAPIENTRY _mesa_GetTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, GLvoid *pixels); void GLAPIENTRY _mesa_GetCompressedTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, GLvoid *pixels); void GLAPIENTRY _mesa_TextureBarrierNV(void); void GLAPIENTRY _mesa_BufferPageCommitmentARB(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit); void GLAPIENTRY _mesa_NamedBufferPageCommitmentEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); void GLAPIENTRY _mesa_NamedBufferPageCommitmentARB(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit); void GLAPIENTRY _mesa_PrimitiveBoundingBox(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); void GLAPIENTRY _mesa_BlendBarrier(void); void GLAPIENTRY _mesa_Uniform1i64ARB(GLint location, GLint64 x); void GLAPIENTRY _mesa_Uniform2i64ARB(GLint location, GLint64 x, GLint64 y); void GLAPIENTRY _mesa_Uniform3i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z); void GLAPIENTRY _mesa_Uniform4i64ARB(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); void GLAPIENTRY _mesa_Uniform1i64vARB(GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_Uniform2i64vARB(GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_Uniform3i64vARB(GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_Uniform4i64vARB(GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_Uniform1ui64ARB(GLint location, GLuint64 x); void GLAPIENTRY _mesa_Uniform2ui64ARB(GLint location, GLuint64 x, GLuint64 y); void GLAPIENTRY _mesa_Uniform3ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z); void GLAPIENTRY _mesa_Uniform4ui64ARB(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); void GLAPIENTRY _mesa_Uniform1ui64vARB(GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_Uniform2ui64vARB(GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_Uniform3ui64vARB(GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_Uniform4ui64vARB(GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_GetUniformi64vARB(GLuint program, GLint location, GLint64 *params); void GLAPIENTRY _mesa_GetUniformui64vARB(GLuint program, GLint location, GLuint64 *params); void GLAPIENTRY _mesa_GetnUniformi64vARB(GLuint program, GLint location, GLsizei bufSize, GLint64 *params); void GLAPIENTRY _mesa_GetnUniformui64vARB(GLuint program, GLint location, GLsizei bufSize, GLuint64 *params); void GLAPIENTRY _mesa_ProgramUniform1i64ARB(GLuint program, GLint location, GLint64 x); void GLAPIENTRY _mesa_ProgramUniform2i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y); void GLAPIENTRY _mesa_ProgramUniform3i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); void GLAPIENTRY _mesa_ProgramUniform4i64ARB(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); void GLAPIENTRY _mesa_ProgramUniform1i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_ProgramUniform2i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_ProgramUniform3i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_ProgramUniform4i64vARB(GLuint program, GLint location, GLsizei count, const GLint64 *value); void GLAPIENTRY _mesa_ProgramUniform1ui64ARB(GLuint program, GLint location, GLuint64 x); void GLAPIENTRY _mesa_ProgramUniform2ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y); void GLAPIENTRY _mesa_ProgramUniform3ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); void GLAPIENTRY _mesa_ProgramUniform4ui64ARB(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); void GLAPIENTRY _mesa_ProgramUniform1ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_ProgramUniform2ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_ProgramUniform3ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_ProgramUniform4ui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *value); void GLAPIENTRY _mesa_MaxShaderCompilerThreadsKHR(GLuint count); void GLAPIENTRY _mesa_SpecializeShaderARB(GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); void GLAPIENTRY _mesa_ColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); void GLAPIENTRY _mesa_EdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer); void GLAPIENTRY _mesa_IndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); void GLAPIENTRY _mesa_NormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); void GLAPIENTRY _mesa_TexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); void GLAPIENTRY _mesa_VertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); void GLAPIENTRY _mesa_LockArraysEXT(GLint first, GLsizei count); void GLAPIENTRY _mesa_UnlockArraysEXT(void); void GLAPIENTRY _mesa_ViewportArrayv(GLuint first, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_ViewportArrayv_no_error(GLuint first, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_ViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); void GLAPIENTRY _mesa_ViewportIndexedf_no_error(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); void GLAPIENTRY _mesa_ViewportIndexedfv(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_ViewportIndexedfv_no_error(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_ScissorArrayv(GLuint first, GLsizei count, const int *v); void GLAPIENTRY _mesa_ScissorArrayv_no_error(GLuint first, GLsizei count, const int *v); void GLAPIENTRY _mesa_ScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_ScissorIndexed_no_error(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_ScissorIndexedv(GLuint index, const GLint *v); void GLAPIENTRY _mesa_ScissorIndexedv_no_error(GLuint index, const GLint *v); void GLAPIENTRY _mesa_DepthRangeArrayv(GLuint first, GLsizei count, const GLclampd *v); void GLAPIENTRY _mesa_DepthRangeArrayv_no_error(GLuint first, GLsizei count, const GLclampd *v); void GLAPIENTRY _mesa_DepthRangeIndexed(GLuint index, GLclampd n, GLclampd f); void GLAPIENTRY _mesa_DepthRangeIndexed_no_error(GLuint index, GLclampd n, GLclampd f); void GLAPIENTRY _mesa_GetFloati_v(GLenum target, GLuint index, GLfloat *data); void GLAPIENTRY _mesa_GetDoublei_v(GLenum target, GLuint index, GLdouble *data); void GLAPIENTRY _mesa_FramebufferSampleLocationsfvARB(GLenum target, GLuint start, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_FramebufferSampleLocationsfvARB_no_error(GLenum target, GLuint start, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_NamedFramebufferSampleLocationsfvARB(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_NamedFramebufferSampleLocationsfvARB_no_error(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_EvaluateDepthValuesARB(void); void GLAPIENTRY _mesa_WindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_WindowPos4dvMESA(const GLdouble *v); void GLAPIENTRY _mesa_WindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_WindowPos4fvMESA(const GLfloat *v); void GLAPIENTRY _mesa_WindowPos4iMESA(GLint x, GLint y, GLint z, GLint w); void GLAPIENTRY _mesa_WindowPos4ivMESA(const GLint *v); void GLAPIENTRY _mesa_WindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w); void GLAPIENTRY _mesa_WindowPos4svMESA(const GLshort *v); void GLAPIENTRY _mesa_MultiModeDrawArraysIBM(const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); void GLAPIENTRY _mesa_MultiModeDrawElementsIBM(const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride); void GLAPIENTRY _mesa_VertexAttrib1sNV(GLuint index, GLshort x); void GLAPIENTRY _mesa_VertexAttrib1svNV(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y); void GLAPIENTRY _mesa_VertexAttrib2svNV(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); void GLAPIENTRY _mesa_VertexAttrib3svNV(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); void GLAPIENTRY _mesa_VertexAttrib4svNV(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttrib1fNV(GLuint index, GLfloat x); void GLAPIENTRY _mesa_VertexAttrib1fvNV(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y); void GLAPIENTRY _mesa_VertexAttrib2fvNV(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_VertexAttrib3fvNV(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_VertexAttrib4fvNV(GLuint index, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttrib1dNV(GLuint index, GLdouble x); void GLAPIENTRY _mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); void GLAPIENTRY _mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); void GLAPIENTRY _mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v); void GLAPIENTRY _mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v); void GLAPIENTRY _mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v); void GLAPIENTRY _mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v); void GLAPIENTRY _mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v); void GLAPIENTRY _mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v); void GLAPIENTRY _mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v); void GLAPIENTRY _mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v); GLuint GLAPIENTRY _mesa_GenFragmentShadersATI(GLuint range); void GLAPIENTRY _mesa_BindFragmentShaderATI(GLuint id); void GLAPIENTRY _mesa_DeleteFragmentShaderATI(GLuint id); void GLAPIENTRY _mesa_BeginFragmentShaderATI(void); void GLAPIENTRY _mesa_EndFragmentShaderATI(void); void GLAPIENTRY _mesa_PassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle); void GLAPIENTRY _mesa_SampleMapATI(GLuint dst, GLuint interp, GLenum swizzle); void GLAPIENTRY _mesa_ColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); void GLAPIENTRY _mesa_ColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); void GLAPIENTRY _mesa_ColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); void GLAPIENTRY _mesa_AlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); void GLAPIENTRY _mesa_AlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); void GLAPIENTRY _mesa_AlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); void GLAPIENTRY _mesa_SetFragmentShaderConstantATI(GLuint dst, const GLfloat *value); void GLAPIENTRY _mesa_ActiveStencilFaceEXT(GLenum face); void GLAPIENTRY _mesa_DepthBoundsEXT(GLclampd zmin, GLclampd zmax); void GLAPIENTRY _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer); void GLAPIENTRY _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer); void GLAPIENTRY _mesa_StringMarkerGREMEDY(GLsizei len, const GLvoid *string); void GLAPIENTRY _mesa_ProvokingVertex(GLenum mode); void GLAPIENTRY _mesa_ColorMaski(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); void GLAPIENTRY _mesa_GetBooleani_v(GLenum value, GLuint index, GLboolean *data); void GLAPIENTRY _mesa_GetIntegeri_v(GLenum value, GLuint index, GLint *data); void GLAPIENTRY _mesa_Enablei(GLenum target, GLuint index); void GLAPIENTRY _mesa_Disablei(GLenum target, GLuint index); GLboolean GLAPIENTRY _mesa_IsEnabledi(GLenum target, GLuint index); void GLAPIENTRY _mesa_GetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups); void GLAPIENTRY _mesa_GetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); void GLAPIENTRY _mesa_GetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); void GLAPIENTRY _mesa_GetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); void GLAPIENTRY _mesa_GetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data); void GLAPIENTRY _mesa_GenPerfMonitorsAMD(GLsizei n, GLuint *monitors); void GLAPIENTRY _mesa_DeletePerfMonitorsAMD(GLsizei n, GLuint *monitors); void GLAPIENTRY _mesa_SelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); void GLAPIENTRY _mesa_BeginPerfMonitorAMD(GLuint monitor); void GLAPIENTRY _mesa_EndPerfMonitorAMD(GLuint monitor); void GLAPIENTRY _mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); void GLAPIENTRY _mesa_CopyImageSubDataNV(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_CopyImageSubDataNV_no_error(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_MatrixLoadfEXT(GLenum matrixMode, const GLfloat *m); void GLAPIENTRY _mesa_MatrixLoaddEXT(GLenum matrixMode, const GLdouble *m); void GLAPIENTRY _mesa_MatrixMultfEXT(GLenum matrixMode, const GLfloat *m); void GLAPIENTRY _mesa_MatrixMultdEXT(GLenum matrixMode, const GLdouble *m); void GLAPIENTRY _mesa_MatrixLoadIdentityEXT(GLenum matrixMode); void GLAPIENTRY _mesa_MatrixRotatefEXT(GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_MatrixRotatedEXT(GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_MatrixScalefEXT(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_MatrixScaledEXT(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_MatrixTranslatefEXT(GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); void GLAPIENTRY _mesa_MatrixTranslatedEXT(GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); void GLAPIENTRY _mesa_MatrixOrthoEXT(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); void GLAPIENTRY _mesa_MatrixFrustumEXT(GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); void GLAPIENTRY _mesa_MatrixPushEXT(GLenum matrixMode); void GLAPIENTRY _mesa_MatrixPopEXT(GLenum matrixMode); void GLAPIENTRY _mesa_ClientAttribDefaultEXT(GLbitfield mask); void GLAPIENTRY _mesa_PushClientAttribDefaultEXT(GLbitfield mask); void GLAPIENTRY _mesa_GetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, float *params); void GLAPIENTRY _mesa_GetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, float *params); void GLAPIENTRY _mesa_TextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, int param); void GLAPIENTRY _mesa_TextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_TextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, float param); void GLAPIENTRY _mesa_TextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const float *params); void GLAPIENTRY _mesa_TextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_TextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); void GLAPIENTRY _mesa_CopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, int border); void GLAPIENTRY _mesa_CopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, int border); void GLAPIENTRY _mesa_CopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); void GLAPIENTRY _mesa_CopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_GetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); void GLAPIENTRY _mesa_BindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture); void GLAPIENTRY _mesa_EnableClientStateiEXT(GLenum array, GLuint index); void GLAPIENTRY _mesa_DisableClientStateiEXT(GLenum array, GLuint index); void GLAPIENTRY _mesa_GetPointerIndexedvEXT(GLenum target, GLuint index, GLvoid**params); void GLAPIENTRY _mesa_MultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param); void GLAPIENTRY _mesa_MultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *param); void GLAPIENTRY _mesa_MultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_MultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *param); void GLAPIENTRY _mesa_GetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *param); void GLAPIENTRY _mesa_GetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *param); void GLAPIENTRY _mesa_MultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param); void GLAPIENTRY _mesa_MultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint*param); void GLAPIENTRY _mesa_MultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_MultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat*param); void GLAPIENTRY _mesa_GetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint*params); void GLAPIENTRY _mesa_GetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat*params); void GLAPIENTRY _mesa_GetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid*pixels); void GLAPIENTRY _mesa_GetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint*params); void GLAPIENTRY _mesa_GetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat*params); void GLAPIENTRY _mesa_MultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid*pixels); void GLAPIENTRY _mesa_MultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid*pixels); void GLAPIENTRY _mesa_MultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid*pixels); void GLAPIENTRY _mesa_MultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid*pixels); void GLAPIENTRY _mesa_MultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid*pixels); void GLAPIENTRY _mesa_MultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid*pixels); void GLAPIENTRY _mesa_CopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); void GLAPIENTRY _mesa_CopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); void GLAPIENTRY _mesa_CopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); void GLAPIENTRY _mesa_CopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_CopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_MultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param); void GLAPIENTRY _mesa_MultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble*param); void GLAPIENTRY _mesa_MultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param); void GLAPIENTRY _mesa_MultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *param); void GLAPIENTRY _mesa_MultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param); void GLAPIENTRY _mesa_MultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *param); void GLAPIENTRY _mesa_GetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *param); void GLAPIENTRY _mesa_GetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *param); void GLAPIENTRY _mesa_GetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *param); void GLAPIENTRY _mesa_MultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_MatrixLoadTransposefEXT(GLenum matrixMode, const GLfloat *m); void GLAPIENTRY _mesa_MatrixLoadTransposedEXT(GLenum matrixMode, const GLdouble *m); void GLAPIENTRY _mesa_MatrixMultTransposefEXT(GLenum matrixMode, const GLfloat *m); void GLAPIENTRY _mesa_MatrixMultTransposedEXT(GLenum matrixMode, const GLdouble *m); void GLAPIENTRY _mesa_CompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_GetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint level, GLvoid *img); void GLAPIENTRY _mesa_CompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei border, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_CompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); void GLAPIENTRY _mesa_GetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLvoid *img); void GLAPIENTRY _mesa_NamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); void GLAPIENTRY _mesa_NamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); GLvoid * GLAPIENTRY _mesa_MapNamedBufferEXT(GLuint buffer, GLenum access); void GLAPIENTRY _mesa_GetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); void GLAPIENTRY _mesa_GetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid **params); void GLAPIENTRY _mesa_GetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params); void GLAPIENTRY _mesa_FlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length); GLvoid * GLAPIENTRY _mesa_MapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); void GLAPIENTRY _mesa_FramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode); void GLAPIENTRY _mesa_FramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs); void GLAPIENTRY _mesa_FramebufferReadBufferEXT(GLuint framebuffer, GLenum mode); void GLAPIENTRY _mesa_GetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *param); GLenum GLAPIENTRY _mesa_CheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target); void GLAPIENTRY _mesa_NamedFramebufferTexture1DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void GLAPIENTRY _mesa_NamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); void GLAPIENTRY _mesa_NamedFramebufferTexture3DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); void GLAPIENTRY _mesa_NamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); void GLAPIENTRY _mesa_GetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); void GLAPIENTRY _mesa_NamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_GetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GenerateTextureMipmapEXT(GLuint texture, GLenum target); void GLAPIENTRY _mesa_GenerateMultiTexMipmapEXT(GLenum texunit, GLenum target); void GLAPIENTRY _mesa_NamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_NamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); void GLAPIENTRY _mesa_VertexArrayVertexOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayEdgeFlagOffsetEXT(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayIndexOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayNormalOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayMultiTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayFogCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArraySecondaryColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_VertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); void GLAPIENTRY _mesa_EnableVertexArrayEXT(GLuint vaobj, GLenum array); void GLAPIENTRY _mesa_DisableVertexArrayEXT(GLuint vaobj, GLenum array); void GLAPIENTRY _mesa_EnableVertexArrayAttribEXT(GLuint vaobj, GLuint index); void GLAPIENTRY _mesa_DisableVertexArrayAttribEXT(GLuint vaobj, GLuint index); void GLAPIENTRY _mesa_GetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint*param); void GLAPIENTRY _mesa_GetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, GLvoid**param); void GLAPIENTRY _mesa_GetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint*param); void GLAPIENTRY _mesa_GetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLvoid**param); void GLAPIENTRY _mesa_NamedProgramStringEXT(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid*string); void GLAPIENTRY _mesa_GetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid*string); void GLAPIENTRY _mesa_NamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); void GLAPIENTRY _mesa_NamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat*params); void GLAPIENTRY _mesa_GetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat*params); void GLAPIENTRY _mesa_NamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); void GLAPIENTRY _mesa_NamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble*params); void GLAPIENTRY _mesa_GetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble*params); void GLAPIENTRY _mesa_GetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint*params); void GLAPIENTRY _mesa_TextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); void GLAPIENTRY _mesa_MultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); void GLAPIENTRY _mesa_TextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint*params); void GLAPIENTRY _mesa_TextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint*params); void GLAPIENTRY _mesa_GetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint*params); void GLAPIENTRY _mesa_GetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint*params); void GLAPIENTRY _mesa_MultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint*params); void GLAPIENTRY _mesa_MultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint*params); void GLAPIENTRY _mesa_GetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint*params); void GLAPIENTRY _mesa_GetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint*params); void GLAPIENTRY _mesa_NamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat*params); void GLAPIENTRY _mesa_BindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); void GLAPIENTRY _mesa_LabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label); void GLAPIENTRY _mesa_GetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); void GLAPIENTRY _mesa_SubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits); void GLAPIENTRY _mesa_SubpixelPrecisionBiasNV_no_error(GLuint xbits, GLuint ybits); void GLAPIENTRY _mesa_ConservativeRasterParameterfNV(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_ConservativeRasterParameterfNV_no_error(GLenum pname, GLfloat param); void GLAPIENTRY _mesa_ConservativeRasterParameteriNV(GLenum pname, GLint param); void GLAPIENTRY _mesa_ConservativeRasterParameteriNV_no_error(GLenum pname, GLint param); void GLAPIENTRY _mesa_GetFirstPerfQueryIdINTEL(GLuint *queryId); void GLAPIENTRY _mesa_GetNextPerfQueryIdINTEL(GLuint queryId, GLuint *nextQueryId); void GLAPIENTRY _mesa_GetPerfQueryIdByNameINTEL(GLchar *queryName, GLuint *queryId); void GLAPIENTRY _mesa_GetPerfQueryInfoINTEL(GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask); void GLAPIENTRY _mesa_GetPerfCounterInfoINTEL(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue); void GLAPIENTRY _mesa_CreatePerfQueryINTEL(GLuint queryId, GLuint *queryHandle); void GLAPIENTRY _mesa_DeletePerfQueryINTEL(GLuint queryHandle); void GLAPIENTRY _mesa_BeginPerfQueryINTEL(GLuint queryHandle); void GLAPIENTRY _mesa_EndPerfQueryINTEL(GLuint queryHandle); void GLAPIENTRY _mesa_GetPerfQueryDataINTEL(GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten); void GLAPIENTRY _mesa_AlphaToCoverageDitherControlNV(GLenum mode); void GLAPIENTRY _mesa_AlphaToCoverageDitherControlNV_no_error(GLenum mode); void GLAPIENTRY _mesa_PolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp); void GLAPIENTRY _mesa_WindowRectanglesEXT(GLenum mode, GLsizei count, const GLint *box); void GLAPIENTRY _mesa_FramebufferFetchBarrierEXT(void); void GLAPIENTRY _mesa_TextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width); void GLAPIENTRY _mesa_TextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_TextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth); void GLAPIENTRY _mesa_RenderbufferStorageMultisampleAdvancedAMD(GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_NamedRenderbufferStorageMultisampleAdvancedAMD(GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height); void GLAPIENTRY _mesa_StencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); void GLAPIENTRY _mesa_ProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); void GLAPIENTRY _mesa_ProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); void GLAPIENTRY _mesa_InternalBufferSubDataCopyMESA(GLintptr srcBuffer, GLuint srcOffset, GLuint dstTargetOrName, GLintptr dstOffset, GLsizeiptr size, GLboolean named, GLboolean ext_dsa); void GLAPIENTRY _mesa_InternalSetError(GLenum error); void GLAPIENTRY _mesa_DrawArraysUserBuf(void); void GLAPIENTRY _mesa_DrawElementsUserBuf(const GLvoid *cmd); void GLAPIENTRY _mesa_DrawElementsUserBufPacked(const GLvoid *cmd); void GLAPIENTRY _mesa_MultiDrawArraysUserBuf(void); void GLAPIENTRY _mesa_MultiDrawElementsUserBuf(GLintptr indexBuf, GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, const GLint *basevertex); void GLAPIENTRY _mesa_DrawArraysInstancedBaseInstanceDrawID(void); void GLAPIENTRY _mesa_DrawElementsInstancedBaseVertexBaseInstanceDrawID(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instance_count, GLint basevertex, GLuint baseinstance, GLuint drawid); void GLAPIENTRY _mesa_DrawElementsPacked(GLenum mode, GLenum type, GLushort count, GLushort indices); void GLAPIENTRY _mesa_InternalInvalidateFramebufferAncillaryMESA(void); void GLAPIENTRY _mesa_EGLImageTargetTexture2DOES(GLenum target, GLvoid *writeOffset); void GLAPIENTRY _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLvoid *writeOffset); void GLAPIENTRY _mesa_EGLImageTargetTexStorageEXT(GLenum target, GLvoid *image, const GLint *attrib_list); void GLAPIENTRY _mesa_EGLImageTargetTextureStorageEXT(GLuint texture, GLvoid *image, const GLint *attrib_list); void GLAPIENTRY _mesa_ClearColorIiEXT(GLint r, GLint g, GLint b, GLint a); void GLAPIENTRY _mesa_ClearColorIuiEXT(GLuint r, GLuint g, GLuint b, GLuint a); void GLAPIENTRY _mesa_TexParameterIiv(GLenum target, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_TexParameterIuiv(GLenum target, GLenum pname, const GLuint *params); void GLAPIENTRY _mesa_GetTexParameterIiv(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params); void GLAPIENTRY _mesa_VertexAttribI1iEXT(GLuint index, GLint x); void GLAPIENTRY _mesa_VertexAttribI2iEXT(GLuint index, GLint x, GLint y); void GLAPIENTRY _mesa_VertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z); void GLAPIENTRY _mesa_VertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w); void GLAPIENTRY _mesa_VertexAttribI1uiEXT(GLuint index, GLuint x); void GLAPIENTRY _mesa_VertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y); void GLAPIENTRY _mesa_VertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z); void GLAPIENTRY _mesa_VertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); void GLAPIENTRY _mesa_VertexAttribI1iv(GLuint index, const GLint *v); void GLAPIENTRY _mesa_VertexAttribI2ivEXT(GLuint index, const GLint *v); void GLAPIENTRY _mesa_VertexAttribI3ivEXT(GLuint index, const GLint *v); void GLAPIENTRY _mesa_VertexAttribI4ivEXT(GLuint index, const GLint *v); void GLAPIENTRY _mesa_VertexAttribI1uiv(GLuint index, const GLuint *v); void GLAPIENTRY _mesa_VertexAttribI2uivEXT(GLuint index, const GLuint *v); void GLAPIENTRY _mesa_VertexAttribI3uivEXT(GLuint index, const GLuint *v); void GLAPIENTRY _mesa_VertexAttribI4uivEXT(GLuint index, const GLuint *v); void GLAPIENTRY _mesa_VertexAttribI4bv(GLuint index, const GLbyte *v); void GLAPIENTRY _mesa_VertexAttribI4sv(GLuint index, const GLshort *v); void GLAPIENTRY _mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v); void GLAPIENTRY _mesa_VertexAttribI4usv(GLuint index, const GLushort *v); void GLAPIENTRY _mesa_VertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_VertexAttribIPointer_no_error(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_GetVertexAttribIiv(GLuint index, GLenum pname, GLint *params); void GLAPIENTRY _mesa_GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params); void GLAPIENTRY _mesa_Uniform1ui(GLint location, GLuint x); void GLAPIENTRY _mesa_Uniform2ui(GLint location, GLuint x, GLuint y); void GLAPIENTRY _mesa_Uniform3ui(GLint location, GLuint x, GLuint y, GLuint z); void GLAPIENTRY _mesa_Uniform4ui(GLint location, GLuint x, GLuint y, GLuint z, GLuint w); void GLAPIENTRY _mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value); void GLAPIENTRY _mesa_GetUniformuiv(GLuint program, GLint location, GLuint *params); void GLAPIENTRY _mesa_BindFragDataLocation(GLuint program, GLuint colorNumber, const GLchar *name); void GLAPIENTRY _mesa_BindFragDataLocation_no_error(GLuint program, GLuint colorNumber, const GLchar *name); GLint GLAPIENTRY _mesa_GetFragDataLocation(GLuint program, const GLchar *name); void GLAPIENTRY _mesa_ClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value); void GLAPIENTRY _mesa_ClearBufferiv_no_error(GLenum buffer, GLint drawbuffer, const GLint *value); void GLAPIENTRY _mesa_ClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value); void GLAPIENTRY _mesa_ClearBufferuiv_no_error(GLenum buffer, GLint drawbuffer, const GLuint *value); void GLAPIENTRY _mesa_ClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value); void GLAPIENTRY _mesa_ClearBufferfv_no_error(GLenum buffer, GLint drawbuffer, const GLfloat *value); void GLAPIENTRY _mesa_ClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); void GLAPIENTRY _mesa_ClearBufferfi_no_error(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); const GLubyte * GLAPIENTRY _mesa_GetStringi(GLenum name, GLuint index); void GLAPIENTRY _mesa_BeginTransformFeedback(GLenum mode); void GLAPIENTRY _mesa_BeginTransformFeedback_no_error(GLenum mode); void GLAPIENTRY _mesa_EndTransformFeedback(void); void GLAPIENTRY _mesa_EndTransformFeedback_no_error(void); void GLAPIENTRY _mesa_BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); void GLAPIENTRY _mesa_BindBufferRange_no_error(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); void GLAPIENTRY _mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer); void GLAPIENTRY _mesa_TransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar * const *varyings, GLenum bufferMode); void GLAPIENTRY _mesa_TransformFeedbackVaryings_no_error(GLuint program, GLsizei count, const GLchar * const *varyings, GLenum bufferMode); void GLAPIENTRY _mesa_GetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); void GLAPIENTRY _mesa_BeginConditionalRender(GLuint query, GLenum mode); void GLAPIENTRY _mesa_BeginConditionalRender_no_error(GLuint query, GLenum mode); void GLAPIENTRY _mesa_EndConditionalRender(void); void GLAPIENTRY _mesa_EndConditionalRender_no_error(void); void GLAPIENTRY _mesa_PrimitiveRestartIndex(GLuint index); void GLAPIENTRY _mesa_PrimitiveRestartIndex_no_error(GLuint index); void GLAPIENTRY _mesa_GetInteger64i_v(GLenum cap, GLuint index, GLint64 *data); void GLAPIENTRY _mesa_GetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params); void GLAPIENTRY _mesa_FramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level); void GLAPIENTRY _mesa_FramebufferTexture_no_error(GLenum target, GLenum attachment, GLuint texture, GLint level); void GLAPIENTRY _mesa_PrimitiveRestartNV(void); void GLAPIENTRY _mesa_BindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset); void GLAPIENTRY _mesa_BindBufferOffsetEXT_no_error(GLenum target, GLuint index, GLuint buffer, GLintptr offset); void GLAPIENTRY _mesa_BindTransformFeedback(GLenum target, GLuint id); void GLAPIENTRY _mesa_BindTransformFeedback_no_error(GLenum target, GLuint id); void GLAPIENTRY _mesa_DeleteTransformFeedbacks(GLsizei n, const GLuint *ids); void GLAPIENTRY _mesa_GenTransformFeedbacks(GLsizei n, GLuint *ids); GLboolean GLAPIENTRY _mesa_IsTransformFeedback(GLuint id); void GLAPIENTRY _mesa_PauseTransformFeedback(void); void GLAPIENTRY _mesa_PauseTransformFeedback_no_error(void); void GLAPIENTRY _mesa_ResumeTransformFeedback(void); void GLAPIENTRY _mesa_ResumeTransformFeedback_no_error(void); void GLAPIENTRY _mesa_DrawTransformFeedback(GLenum mode, GLuint id); void GLAPIENTRY _mesa_VDPAUInitNV(const GLvoid *vdpDevice, const GLvoid *getProcAddress); void GLAPIENTRY _mesa_VDPAUFiniNV(void); GLintptr GLAPIENTRY _mesa_VDPAURegisterVideoSurfaceNV(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); GLintptr GLAPIENTRY _mesa_VDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); GLboolean GLAPIENTRY _mesa_VDPAUIsSurfaceNV(GLintptr surface); void GLAPIENTRY _mesa_VDPAUUnregisterSurfaceNV(GLintptr surface); void GLAPIENTRY _mesa_VDPAUGetSurfaceivNV(GLintptr surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); void GLAPIENTRY _mesa_VDPAUSurfaceAccessNV(GLintptr surface, GLenum access); void GLAPIENTRY _mesa_VDPAUMapSurfacesNV(GLsizei numSurfaces, const GLintptr *surfaces); void GLAPIENTRY _mesa_VDPAUUnmapSurfacesNV(GLsizei numSurfaces, const GLintptr *surfaces); void GLAPIENTRY _mesa_GetUnsignedBytevEXT(GLenum pname, GLubyte *data); void GLAPIENTRY _mesa_GetUnsignedBytei_vEXT(GLenum target, GLuint index, GLubyte *data); void GLAPIENTRY _mesa_DeleteMemoryObjectsEXT(GLsizei n, const GLuint *memoryObjects); GLboolean GLAPIENTRY _mesa_IsMemoryObjectEXT(GLuint memoryObject); void GLAPIENTRY _mesa_CreateMemoryObjectsEXT(GLsizei n, GLuint *memoryObjects); void GLAPIENTRY _mesa_MemoryObjectParameterivEXT(GLuint memoryObject, GLenum pname, const GLint *params); void GLAPIENTRY _mesa_GetMemoryObjectParameterivEXT(GLuint memoryObject, GLenum pname, GLint *params); void GLAPIENTRY _mesa_TexStorageMem2DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TexStorageMem2DMultisampleEXT(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TexStorageMem3DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TexStorageMem3DMultisampleEXT(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_BufferStorageMemEXT(GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_BufferStorageMemEXT_no_error(GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TextureStorageMem2DEXT(GLenum texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TextureStorageMem2DMultisampleEXT(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TextureStorageMem3DEXT(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TextureStorageMem3DMultisampleEXT(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_NamedBufferStorageMemEXT(GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_NamedBufferStorageMemEXT_no_error(GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TexStorageMem1DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_TextureStorageMem1DEXT(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset); void GLAPIENTRY _mesa_GenSemaphoresEXT(GLsizei n, GLuint *semaphores); void GLAPIENTRY _mesa_DeleteSemaphoresEXT(GLsizei n, const GLuint *semaphores); GLboolean GLAPIENTRY _mesa_IsSemaphoreEXT(GLuint semaphore); void GLAPIENTRY _mesa_SemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, const GLuint64 *params); void GLAPIENTRY _mesa_GetSemaphoreParameterui64vEXT(GLuint semaphore, GLenum pname, GLuint64 *params); void GLAPIENTRY _mesa_WaitSemaphoreEXT(GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *srcLayouts); void GLAPIENTRY _mesa_SignalSemaphoreEXT(GLuint semaphore, GLuint numBufferBarriers, const GLuint *buffers, GLuint numTextureBarriers, const GLuint *textures, const GLenum *dstLayouts); void GLAPIENTRY _mesa_ImportMemoryFdEXT(GLuint memory, GLuint64 size, GLenum handleType, GLint fd); void GLAPIENTRY _mesa_ImportSemaphoreFdEXT(GLuint semaphore, GLenum handleType, GLint fd); void GLAPIENTRY _mesa_ImportMemoryWin32HandleEXT(GLuint memory, GLuint64 size, GLenum handleType, GLvoid *handle); void GLAPIENTRY _mesa_ImportMemoryWin32NameEXT(GLuint memory, GLuint64 size, GLenum handleType, const GLvoid *name); void GLAPIENTRY _mesa_ImportSemaphoreWin32HandleEXT(GLuint semaphore, GLenum handleType, GLvoid *handle); void GLAPIENTRY _mesa_ImportSemaphoreWin32NameEXT(GLuint semaphore, GLenum handleType, const GLvoid *handle); void GLAPIENTRY _mesa_ViewportSwizzleNV(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); void GLAPIENTRY _mesa_ViewportSwizzleNV_no_error(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew); void GLAPIENTRY _mesa_Vertex2hNV(GLhalfNV x, GLhalfNV y); void GLAPIENTRY _mesa_Vertex2hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_Vertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z); void GLAPIENTRY _mesa_Vertex3hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_Vertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); void GLAPIENTRY _mesa_Vertex4hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_Normal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); void GLAPIENTRY _mesa_Normal3hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_Color3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue); void GLAPIENTRY _mesa_Color3hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_Color4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); void GLAPIENTRY _mesa_Color4hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_TexCoord1hNV(GLhalfNV s); void GLAPIENTRY _mesa_TexCoord1hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_TexCoord2hNV(GLhalfNV s, GLhalfNV t); void GLAPIENTRY _mesa_TexCoord2hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_TexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r); void GLAPIENTRY _mesa_TexCoord3hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_TexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); void GLAPIENTRY _mesa_TexCoord4hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_MultiTexCoord1hNV(GLenum target, GLhalfNV s); void GLAPIENTRY _mesa_MultiTexCoord1hvNV(GLenum target, const GLhalfNV *v); void GLAPIENTRY _mesa_MultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t); void GLAPIENTRY _mesa_MultiTexCoord2hvNV(GLenum target, const GLhalfNV *v); void GLAPIENTRY _mesa_MultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); void GLAPIENTRY _mesa_MultiTexCoord3hvNV(GLenum target, const GLhalfNV *v); void GLAPIENTRY _mesa_MultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); void GLAPIENTRY _mesa_MultiTexCoord4hvNV(GLenum target, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttrib1hNV(GLuint index, GLhalfNV x); void GLAPIENTRY _mesa_VertexAttrib1hvNV(GLuint index, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y); void GLAPIENTRY _mesa_VertexAttrib2hvNV(GLuint index, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); void GLAPIENTRY _mesa_VertexAttrib3hvNV(GLuint index, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); void GLAPIENTRY _mesa_VertexAttrib4hvNV(GLuint index, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttribs1hvNV(GLuint index, GLsizei n, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttribs2hvNV(GLuint index, GLsizei n, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttribs3hvNV(GLuint index, GLsizei n, const GLhalfNV *v); void GLAPIENTRY _mesa_VertexAttribs4hvNV(GLuint index, GLsizei n, const GLhalfNV *v); void GLAPIENTRY _mesa_FogCoordhNV(GLhalfNV x); void GLAPIENTRY _mesa_FogCoordhvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_SecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue); void GLAPIENTRY _mesa_SecondaryColor3hvNV(const GLhalfNV *v); void GLAPIENTRY _mesa_MemoryBarrierByRegion(GLbitfield barriers); void GLAPIENTRY _mesa_MemoryBarrierByRegion_no_error(GLbitfield barriers); void GLAPIENTRY _mesa_AlphaFuncx(GLenum func, GLclampx ref); void GLAPIENTRY _mesa_ClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); void GLAPIENTRY _mesa_ClearDepthx(GLclampx depth); void GLAPIENTRY _mesa_Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); void GLAPIENTRY _mesa_DepthRangex(GLclampx zNear, GLclampx zFar); void GLAPIENTRY _mesa_Fogx(GLenum pname, GLfixed param); void GLAPIENTRY _mesa_Fogxv(GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_Frustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); void GLAPIENTRY _mesa_LightModelx(GLenum pname, GLfixed param); void GLAPIENTRY _mesa_LightModelxv(GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_Lightx(GLenum light, GLenum pname, GLfixed param); void GLAPIENTRY _mesa_Lightxv(GLenum light, GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_LineWidthx(GLfixed width); void GLAPIENTRY _mesa_LoadMatrixx(const GLfixed *m); void GLAPIENTRY _mesa_Materialx(GLenum face, GLenum pname, GLfixed param); void GLAPIENTRY _mesa_Materialxv(GLenum face, GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_MultMatrixx(const GLfixed *m); void GLAPIENTRY _mesa_MultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); void GLAPIENTRY _mesa_Normal3x(GLfixed nx, GLfixed ny, GLfixed nz); void GLAPIENTRY _mesa_Orthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); void GLAPIENTRY _mesa_PointSizex(GLfixed size); void GLAPIENTRY _mesa_PolygonOffsetx(GLfixed factor, GLfixed units); void GLAPIENTRY _mesa_Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z); void GLAPIENTRY _mesa_SampleCoveragex(GLclampx value, GLboolean invert); void GLAPIENTRY _mesa_Scalex(GLfixed x, GLfixed y, GLfixed z); void GLAPIENTRY _mesa_TexEnvx(GLenum target, GLenum pname, GLfixed param); void GLAPIENTRY _mesa_TexEnvxv(GLenum target, GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_TexParameterx(GLenum target, GLenum pname, GLfixed param); void GLAPIENTRY _mesa_Translatex(GLfixed x, GLfixed y, GLfixed z); void GLAPIENTRY _mesa_ClipPlanex(GLenum plane, const GLfixed *equation); void GLAPIENTRY _mesa_GetClipPlanex(GLenum plane, GLfixed *equation); void GLAPIENTRY _mesa_GetFixedv(GLenum pname, GLfixed *params); void GLAPIENTRY _mesa_GetLightxv(GLenum light, GLenum pname, GLfixed *params); void GLAPIENTRY _mesa_GetMaterialxv(GLenum face, GLenum pname, GLfixed *params); void GLAPIENTRY _mesa_GetTexEnvxv(GLenum target, GLenum pname, GLfixed *params); void GLAPIENTRY _mesa_GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params); void GLAPIENTRY _mesa_PointParameterx(GLenum pname, GLfixed param); void GLAPIENTRY _mesa_PointParameterxv(GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_TexParameterxv(GLenum target, GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params); void GLAPIENTRY _mesa_TexGenxOES(GLenum coord, GLenum pname, GLfixed param); void GLAPIENTRY _mesa_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params); void GLAPIENTRY _mesa_ClipPlanef(GLenum plane, const GLfloat *equation); void GLAPIENTRY _mesa_GetClipPlanef(GLenum plane, GLfloat *equation); void GLAPIENTRY _mesa_Frustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); void GLAPIENTRY _mesa_Orthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); void GLAPIENTRY _mesa_DrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height); void GLAPIENTRY _mesa_DrawTexivOES(const GLint *coords); void GLAPIENTRY _mesa_DrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); void GLAPIENTRY _mesa_DrawTexfvOES(const GLfloat *coords); void GLAPIENTRY _mesa_DrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); void GLAPIENTRY _mesa_DrawTexsvOES(const GLshort *coords); void GLAPIENTRY _mesa_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); void GLAPIENTRY _mesa_DrawTexxvOES(const GLfixed *coords); void GLAPIENTRY _mesa_PointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer); void GLAPIENTRY _mesa_PointSizePointerOES_no_error(GLenum type, GLsizei stride, const GLvoid *pointer); GLbitfield GLAPIENTRY _mesa_QueryMatrixxOES(GLfixed *mantissa, GLint *exponent); void GLAPIENTRY _mesa_DiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments); void GLAPIENTRY _mesa_FramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); void GLAPIENTRY _mesa_DepthRangeArrayfvOES(GLuint first, GLsizei count, const GLfloat *v); void GLAPIENTRY _mesa_DepthRangeIndexedfOES(GLuint index, GLfloat n, GLfloat f); void GLAPIENTRY _mesa_FramebufferParameteriMESA(GLenum target, GLenum pname, GLint param); void GLAPIENTRY _mesa_GetFramebufferParameterivMESA(GLenum target, GLenum pname, GLint *params); void GLAPIENTRY _mesa_TexStorageAttribs2DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, const GLint *attrib_list); void GLAPIENTRY _mesa_TexStorageAttribs2DEXT_no_error(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, const GLint *attrib_list); void GLAPIENTRY _mesa_TexStorageAttribs3DEXT(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, const GLint *attrib_list); void GLAPIENTRY _mesa_TexStorageAttribs3DEXT_no_error(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, const GLint *attrib_list); #ifdef __cplusplus } #endif # 1882 "src/mapi/glapi/gen/api_exec_decl.h" #endif # 1884 "src/mapi/glapi/gen/api_exec_decl.h" #endif /* api_exec_decl.h expanded by -frewrite-includes */ # 37 "../mesa/src/mesa/main/accum.c" 2 void GLAPIENTRY _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) { GLfloat tmp[4]; GET_CURRENT_CONTEXT(ctx); tmp[0] = CLAMP( red, -1.0F, 1.0F ); tmp[1] = CLAMP( green, -1.0F, 1.0F ); tmp[2] = CLAMP( blue, -1.0F, 1.0F ); tmp[3] = CLAMP( alpha, -1.0F, 1.0F ); if (TEST_EQ_4V(tmp, ctx->Accum.ClearColor)) return; ctx->PopAttribState |= GL_ACCUM_BUFFER_BIT; COPY_4FV( ctx->Accum.ClearColor, tmp ); } /** * Clear the accumulation buffer by mapping the renderbuffer and * writing the clear color to it. Called by the driver's implementation * of the glClear function. */ void _mesa_clear_accum_buffer(struct gl_context *ctx) { GLuint x, y, width, height; GLubyte *accMap; GLint accRowStride; struct gl_renderbuffer *accRb; if (!ctx->DrawBuffer) return; accRb = ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer; if (!accRb) return; /* missing accum buffer, not an error */ _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); /* bounds, with scissor */ x = ctx->DrawBuffer->_Xmin; y = ctx->DrawBuffer->_Ymin; width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin; height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin; _mesa_map_renderbuffer(ctx, accRb, x, y, width, height, GL_MAP_WRITE_BIT, &accMap, &accRowStride, ctx->DrawBuffer->FlipY); if (!accMap) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); return; } if (accRb->Format == MESA_FORMAT_RGBA_SNORM16) { const GLshort clearR = FLOAT_TO_SHORT(ctx->Accum.ClearColor[0]); const GLshort clearG = FLOAT_TO_SHORT(ctx->Accum.ClearColor[1]); const GLshort clearB = FLOAT_TO_SHORT(ctx->Accum.ClearColor[2]); const GLshort clearA = FLOAT_TO_SHORT(ctx->Accum.ClearColor[3]); GLuint i, j; for (j = 0; j < height; j++) { GLshort *row = (GLshort *) accMap; for (i = 0; i < width; i++) { row[i * 4 + 0] = clearR; row[i * 4 + 1] = clearG; row[i * 4 + 2] = clearB; row[i * 4 + 3] = clearA; } accMap += accRowStride; } } else { /* other types someday? */ _mesa_warning(ctx, "unexpected accum buffer type"); } _mesa_unmap_renderbuffer(ctx, accRb); } /** * if (bias) * Accum += value * else * Accum *= value */ static void accum_scale_or_bias(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height, GLboolean bias) { struct gl_renderbuffer *accRb = ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer; GLubyte *accMap; GLint accRowStride; assert(accRb); _mesa_map_renderbuffer(ctx, accRb, xpos, ypos, width, height, GL_MAP_READ_BIT | GL_MAP_WRITE_BIT, &accMap, &accRowStride, ctx->DrawBuffer->FlipY); if (!accMap) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); return; } if (accRb->Format == MESA_FORMAT_RGBA_SNORM16) { const GLshort incr = (GLshort) (value * 32767.0f); GLint i, j; if (bias) { for (j = 0; j < height; j++) { GLshort *acc = (GLshort *) accMap; for (i = 0; i < 4 * width; i++) { acc[i] += incr; } accMap += accRowStride; } } else { /* scale */ for (j = 0; j < height; j++) { GLshort *acc = (GLshort *) accMap; for (i = 0; i < 4 * width; i++) { acc[i] = (GLshort) (acc[i] * value); } accMap += accRowStride; } } } else { /* other types someday? */ } _mesa_unmap_renderbuffer(ctx, accRb); } /** * if (load) * Accum = ColorBuf * value * else * Accum += ColorBuf * value */ static void accum_or_load(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height, GLboolean load) { struct gl_renderbuffer *accRb = ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer; struct gl_renderbuffer *colorRb = ctx->ReadBuffer->_ColorReadBuffer; GLubyte *accMap, *colorMap; GLint accRowStride, colorRowStride; GLbitfield mappingFlags; if (!colorRb) { /* no read buffer - OK */ return; } assert(accRb); mappingFlags = GL_MAP_WRITE_BIT; if (!load) /* if we're accumulating */ mappingFlags |= GL_MAP_READ_BIT; /* Map accum buffer */ _mesa_map_renderbuffer(ctx, accRb, xpos, ypos, width, height, mappingFlags, &accMap, &accRowStride, ctx->DrawBuffer->FlipY); if (!accMap) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); return; } /* Map color buffer */ _mesa_map_renderbuffer(ctx, colorRb, xpos, ypos, width, height, GL_MAP_READ_BIT, &colorMap, &colorRowStride, ctx->DrawBuffer->FlipY); if (!colorMap) { _mesa_unmap_renderbuffer(ctx, accRb); _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); return; } if (accRb->Format == MESA_FORMAT_RGBA_SNORM16) { const GLfloat scale = value * 32767.0f; GLint i, j; GLfloat (*rgba)[4]; rgba = malloc(width * 4 * sizeof(GLfloat)); if (rgba) { for (j = 0; j < height; j++) { GLshort *acc = (GLshort *) accMap; /* read colors from source color buffer */ _mesa_unpack_rgba_row(colorRb->Format, width, colorMap, rgba); if (load) { for (i = 0; i < width; i++) { acc[i * 4 + 0] = (GLshort) (rgba[i][RCOMP] * scale); acc[i * 4 + 1] = (GLshort) (rgba[i][GCOMP] * scale); acc[i * 4 + 2] = (GLshort) (rgba[i][BCOMP] * scale); acc[i * 4 + 3] = (GLshort) (rgba[i][ACOMP] * scale); } } else { /* accumulate */ for (i = 0; i < width; i++) { acc[i * 4 + 0] += (GLshort) (rgba[i][RCOMP] * scale); acc[i * 4 + 1] += (GLshort) (rgba[i][GCOMP] * scale); acc[i * 4 + 2] += (GLshort) (rgba[i][BCOMP] * scale); acc[i * 4 + 3] += (GLshort) (rgba[i][ACOMP] * scale); } } colorMap += colorRowStride; accMap += accRowStride; } free(rgba); } else { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); } } else { /* other types someday? */ } _mesa_unmap_renderbuffer(ctx, accRb); _mesa_unmap_renderbuffer(ctx, colorRb); } /** * ColorBuffer = Accum * value */ static void accum_return(struct gl_context *ctx, GLfloat value, GLint xpos, GLint ypos, GLint width, GLint height) { struct gl_framebuffer *fb = ctx->DrawBuffer; struct gl_renderbuffer *accRb = fb->Attachment[BUFFER_ACCUM].Renderbuffer; GLubyte *accMap, *colorMap; GLint accRowStride, colorRowStride; GLuint buffer; /* Map accum buffer */ _mesa_map_renderbuffer(ctx, accRb, xpos, ypos, width, height, GL_MAP_READ_BIT, &accMap, &accRowStride, fb->FlipY); if (!accMap) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); return; } /* Loop over destination buffers */ for (buffer = 0; buffer < fb->_NumColorDrawBuffers; buffer++) { struct gl_renderbuffer *colorRb = fb->_ColorDrawBuffers[buffer]; const GLboolean masking = (!GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 0) || !GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 1) || !GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 2) || !GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 3)); GLbitfield mappingFlags = GL_MAP_WRITE_BIT; if (masking) mappingFlags |= GL_MAP_READ_BIT; /* Map color buffer */ _mesa_map_renderbuffer(ctx, colorRb, xpos, ypos, width, height, mappingFlags, &colorMap, &colorRowStride, fb->FlipY); if (!colorMap) { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); continue; } if (accRb->Format == MESA_FORMAT_RGBA_SNORM16) { const GLfloat scale = value / 32767.0f; GLint i, j; GLfloat (*rgba)[4], (*dest)[4]; rgba = malloc(width * 4 * sizeof(GLfloat)); dest = malloc(width * 4 * sizeof(GLfloat)); if (rgba && dest) { for (j = 0; j < height; j++) { GLshort *acc = (GLshort *) accMap; for (i = 0; i < width; i++) { rgba[i][0] = acc[i * 4 + 0] * scale; rgba[i][1] = acc[i * 4 + 1] * scale; rgba[i][2] = acc[i * 4 + 2] * scale; rgba[i][3] = acc[i * 4 + 3] * scale; } if (masking) { /* get existing colors from dest buffer */ _mesa_unpack_rgba_row(colorRb->Format, width, colorMap, dest); /* use the dest colors where mask[channel] = 0 */ if (!GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 0)) { for (i = 0; i < width; i++) rgba[i][RCOMP] = dest[i][RCOMP]; } if (!GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 1)) { for (i = 0; i < width; i++) rgba[i][GCOMP] = dest[i][GCOMP]; } if (!GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 2)) { for (i = 0; i < width; i++) rgba[i][BCOMP] = dest[i][BCOMP]; } if (!GET_COLORMASK_BIT(ctx->Color.ColorMask, buffer, 3)) { for (i = 0; i < width; i++) rgba[i][ACOMP] = dest[i][ACOMP]; } } _mesa_pack_float_rgba_row(colorRb->Format, width, (const GLfloat (*)[4]) rgba, colorMap); accMap += accRowStride; colorMap += colorRowStride; } } else { _mesa_error(ctx, GL_OUT_OF_MEMORY, "glAccum"); } free(rgba); free(dest); } else { /* other types someday? */ } _mesa_unmap_renderbuffer(ctx, colorRb); } _mesa_unmap_renderbuffer(ctx, accRb); } /** * Software fallback for glAccum. A hardware driver that supports * signed 16-bit color channels could implement hardware accumulation * operations, but no driver does so at this time. */ static void accum(struct gl_context *ctx, GLenum op, GLfloat value) { GLint xpos, ypos, width, height; if (!ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer) { _mesa_warning(ctx, "Calling glAccum() without an accumulation buffer"); return; } if (!_mesa_check_conditional_render(ctx)) return; _mesa_update_draw_buffer_bounds(ctx, ctx->DrawBuffer); xpos = ctx->DrawBuffer->_Xmin; ypos = ctx->DrawBuffer->_Ymin; width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin; height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin; switch (op) { case GL_ADD: if (value != 0.0F) { accum_scale_or_bias(ctx, value, xpos, ypos, width, height, GL_TRUE); } break; case GL_MULT: if (value != 1.0F) { accum_scale_or_bias(ctx, value, xpos, ypos, width, height, GL_FALSE); } break; case GL_ACCUM: if (value != 0.0F) { accum_or_load(ctx, value, xpos, ypos, width, height, GL_FALSE); } break; case GL_LOAD: accum_or_load(ctx, value, xpos, ypos, width, height, GL_TRUE); break; case GL_RETURN: accum_return(ctx, value, xpos, ypos, width, height); break; default: unreachable("invalid mode in _mesa_Accum()"); break; } } void _mesa_init_accum( struct gl_context *ctx ) { /* Accumulate buffer group */ ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 ); } void GLAPIENTRY _mesa_Accum( GLenum op, GLfloat value ) { GET_CURRENT_CONTEXT(ctx); FLUSH_VERTICES(ctx, 0, 0); switch (op) { case GL_ADD: case GL_MULT: case GL_ACCUM: case GL_LOAD: case GL_RETURN: /* OK */ break; default: _mesa_error(ctx, GL_INVALID_ENUM, "glAccum(op)"); return; } if (ctx->DrawBuffer->Visual.accumRedBits == 0) { _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(no accum buffer)"); return; } if (ctx->DrawBuffer != ctx->ReadBuffer) { /* See GLX_SGI_make_current_read or WGL_ARB_make_current_read, * or GL_EXT_framebuffer_blit. */ _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(different read/draw buffers)"); return; } if (ctx->NewState) _mesa_update_state(ctx); if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) { _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "glAccum(incomplete framebuffer)"); return; } if (ctx->RasterDiscard) return; if (ctx->RenderMode == GL_RENDER) { accum(ctx, op, value); } }