added GL_EXT_stencil_two_side and GL_NV_fence
diff --git a/src/mesa/glapi/APIspec b/src/mesa/glapi/APIspec
index 8585206..f5b113d 100644
--- a/src/mesa/glapi/APIspec
+++ b/src/mesa/glapi/APIspec
@@ -1,4 +1,4 @@
-# $Id: APIspec,v 1.9 2002/09/06 02:46:44 brianp Exp $
+# $Id: APIspec,v 1.10 2002/09/06 03:19:36 brianp Exp $
 
 # This file describes all the OpenGL functions.
 # We use a number of Python scripts to parse this file and
@@ -6562,44 +6562,31 @@
 
 # GL_NV_fence
 
-name		GenFencesNV
-return		void
-param		n		GLsizei
-param		fences		GLuint *
-category	GL_NV_fence
-offset		?
-
 name		DeleteFencesNV
 return		void
 param		n		GLsizei
 param		fences		const GLuint *
 category	GL_NV_fence
-offset		?
+offset		647
 
-name		SetFenceNV
+name		GenFencesNV
 return		void
-param		fence		GLuint
-param		condition	GLenum
+param		n		GLsizei
+param		fences		GLuint *
 category	GL_NV_fence
-offset		?
-
-name		TestFenceNV
-return		GLboolean
-param		fence		GLuint
-category	GL_NV_fence
-offset		?
-
-name		FinishFenceNV
-return		void
-param		fence		GLuint
-category	GL_NV_fence
-offset		?
+offset		648
 
 name		IsFenceNV
 return		GLboolean
 param		fence		GLuint
 category	GL_NV_fence
-offset		?
+offset		649
+
+name		TestFenceNV
+return		GLboolean
+param		fence		GLuint
+category	GL_NV_fence
+offset		650
 
 name		GetFenceivNV
 return		void
@@ -6607,7 +6594,21 @@
 param		pname		GLenum
 param		params		GLint *
 category	GL_NV_fence
-offset		?
+offset		651
+
+name		FinishFenceNV
+return		void
+param		fence		GLuint
+category	GL_NV_fence
+offset		652
+
+name		SetFenceNV
+return		void
+param		fence		GLuint
+param		condition	GLenum
+category	GL_NV_fence
+offset		653
+
 
 
 # GL_NV_evaluators
@@ -7622,6 +7623,16 @@
 alias		WindowPos3svMESA
 
 
+# GL_EXT_stencil_two_side
+
+name ActiveStencilFaceEXT
+return		void
+param		face		GLenum
+category	EXT_stencil_two_side
+offset		646
+
+
+
 
 # end of file sentinal
 
diff --git a/src/mesa/glapi/glapioffsets.h b/src/mesa/glapi/glapioffsets.h
index 21d70ef..4223395 100644
--- a/src/mesa/glapi/glapioffsets.h
+++ b/src/mesa/glapi/glapioffsets.h
@@ -648,5 +648,13 @@
 #define _gloffset_PointParameterivNV 643
 #define _gloffset_MultiDrawArraysEXT 644
 #define _gloffset_MultiDrawElementsEXT 645
+#define _gloffset_ActiveStencilFaceEXT 646
+#define _gloffset_DeleteFencesNV 647
+#define _gloffset_GenFencesNV 648
+#define _gloffset_IsFenceNV 649
+#define _gloffset_TestFenceNV 650
+#define _gloffset_GetFenceivNV 651
+#define _gloffset_FinishFenceNV 652
+#define _gloffset_SetFenceNV 653
 
 #endif
diff --git a/src/mesa/glapi/glapitable.h b/src/mesa/glapi/glapitable.h
index 5511863..f75ee10 100644
--- a/src/mesa/glapi/glapitable.h
+++ b/src/mesa/glapi/glapitable.h
@@ -652,6 +652,14 @@
    void (*PointParameterivNV)(GLenum pname, const GLint * params); /* 643 */
    void (*MultiDrawArraysEXT)(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); /* 644 */
    void (*MultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); /* 645 */
+   void (*ActiveStencilFaceEXT)(GLenum face); /* 646 */
+   void (*DeleteFencesNV)(GLsizei n, const GLuint * fences); /* 647 */
+   void (*GenFencesNV)(GLsizei n, GLuint * fences); /* 648 */
+   GLboolean (*IsFenceNV)(GLuint fence); /* 649 */
+   GLboolean (*TestFenceNV)(GLuint fence); /* 650 */
+   void (*GetFenceivNV)(GLuint fence, GLenum pname, GLint * params); /* 651 */
+   void (*FinishFenceNV)(GLuint fence); /* 652 */
+   void (*SetFenceNV)(GLuint fence, GLenum condition); /* 653 */
 };
 
 #endif
diff --git a/src/mesa/glapi/glapitemp.h b/src/mesa/glapi/glapitemp.h
index a67c4fa..21acf56 100644
--- a/src/mesa/glapi/glapitemp.h
+++ b/src/mesa/glapi/glapitemp.h
@@ -3534,13 +3534,41 @@
 
 /* No dispatch for TextureColorMaskSGIS() */
 /* No dispatch for IglooInterfaceSGIX() */
-/* No dispatch for GenFencesNV() */
-/* No dispatch for DeleteFencesNV() */
-/* No dispatch for SetFenceNV() */
-/* No dispatch for TestFenceNV() */
-/* No dispatch for FinishFenceNV() */
-/* No dispatch for IsFenceNV() */
-/* No dispatch for GetFenceivNV() */
+KEYWORD1 void KEYWORD2 NAME(DeleteFencesNV)(GLsizei n, const GLuint * fences)
+{
+   DISPATCH(DeleteFencesNV, (n, fences), (F, "glDeleteFencesNV(%d, %p);\n", n, (void *) fences));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GenFencesNV)(GLsizei n, GLuint * fences)
+{
+   DISPATCH(GenFencesNV, (n, fences), (F, "glGenFencesNV(%d, %p);\n", n, (void *) fences));
+}
+
+KEYWORD1 GLboolean KEYWORD2 NAME(IsFenceNV)(GLuint fence)
+{
+   RETURN_DISPATCH(IsFenceNV, (fence), (F, "glIsFenceNV(%d);\n", fence));
+}
+
+KEYWORD1 GLboolean KEYWORD2 NAME(TestFenceNV)(GLuint fence)
+{
+   RETURN_DISPATCH(TestFenceNV, (fence), (F, "glTestFenceNV(%d);\n", fence));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFenceivNV)(GLuint fence, GLenum pname, GLint * params)
+{
+   DISPATCH(GetFenceivNV, (fence, pname, params), (F, "glGetFenceivNV(%d, 0x%x, %p);\n", fence, pname, (void *) params));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FinishFenceNV)(GLuint fence)
+{
+   DISPATCH(FinishFenceNV, (fence), (F, "glFinishFenceNV(%d);\n", fence));
+}
+
+KEYWORD1 void KEYWORD2 NAME(SetFenceNV)(GLuint fence, GLenum condition)
+{
+   DISPATCH(SetFenceNV, (fence, condition), (F, "glSetFenceNV(%d, 0x%x);\n", fence, condition));
+}
+
 /* No dispatch for MapControlPointsNV() */
 /* No dispatch for MapParameterivNV() */
 /* No dispatch for MapParameterfvNV() */
@@ -4147,6 +4175,11 @@
    DISPATCH(WindowPos3svMESA, (v), (F, "glWindowPos3sv(%p);\n", (void *) v));
 }
 
+KEYWORD1 void KEYWORD2 NAME(ActiveStencilFaceEXT)(GLenum face)
+{
+   DISPATCH(ActiveStencilFaceEXT, (face), (F, "glActiveStencilFaceEXT(0x%x);\n", face));
+}
+
 
 
 /*
@@ -4806,6 +4839,14 @@
    TABLE_ENTRY(PointParameterivNV),
    TABLE_ENTRY(MultiDrawArraysEXT),
    TABLE_ENTRY(MultiDrawElementsEXT),
+   TABLE_ENTRY(ActiveStencilFaceEXT),
+   TABLE_ENTRY(DeleteFencesNV),
+   TABLE_ENTRY(GenFencesNV),
+   TABLE_ENTRY(IsFenceNV),
+   TABLE_ENTRY(TestFenceNV),
+   TABLE_ENTRY(GetFenceivNV),
+   TABLE_ENTRY(FinishFenceNV),
+   TABLE_ENTRY(SetFenceNV),
    /* A whole bunch of no-op functions.  These might be called
     * when someone tries to call a dynamically-registered
     * extension function without a current rendering context.
diff --git a/src/mesa/main/glprocs.h b/src/mesa/main/glprocs.h
index a481ea86..2df9870 100644
--- a/src/mesa/main/glprocs.h
+++ b/src/mesa/main/glprocs.h
@@ -674,6 +674,13 @@
    { "glTbufferMask3DFX", (GLvoid *) glTbufferMask3DFX, _gloffset_TbufferMask3DFX },
    { "glSampleMaskEXT", (GLvoid *) glSampleMaskEXT, _gloffset_SampleMaskSGIS },
    { "glSamplePatternEXT", (GLvoid *) glSamplePatternEXT, _gloffset_SamplePatternSGIS },
+   { "glDeleteFencesNV", (GLvoid *) glDeleteFencesNV, _gloffset_DeleteFencesNV },
+   { "glGenFencesNV", (GLvoid *) glGenFencesNV, _gloffset_GenFencesNV },
+   { "glIsFenceNV", (GLvoid *) glIsFenceNV, _gloffset_IsFenceNV },
+   { "glTestFenceNV", (GLvoid *) glTestFenceNV, _gloffset_TestFenceNV },
+   { "glGetFenceivNV", (GLvoid *) glGetFenceivNV, _gloffset_GetFenceivNV },
+   { "glFinishFenceNV", (GLvoid *) glFinishFenceNV, _gloffset_FinishFenceNV },
+   { "glSetFenceNV", (GLvoid *) glSetFenceNV, _gloffset_SetFenceNV },
    { "glWindowPos2dARB", (GLvoid *) glWindowPos2dARB, _gloffset_WindowPos2dMESA },
    { "glWindowPos2fARB", (GLvoid *) glWindowPos2fARB, _gloffset_WindowPos2fMESA },
    { "glWindowPos2iARB", (GLvoid *) glWindowPos2iARB, _gloffset_WindowPos2iMESA },
@@ -793,5 +800,6 @@
    { "glWindowPos3iv", (GLvoid *) glWindowPos3iv, _gloffset_WindowPos3ivMESA },
    { "glWindowPos3s", (GLvoid *) glWindowPos3s, _gloffset_WindowPos3sMESA },
    { "glWindowPos3sv", (GLvoid *) glWindowPos3sv, _gloffset_WindowPos3svMESA },
+   { "glActiveStencilFaceEXT", (GLvoid *) glActiveStencilFaceEXT, _gloffset_ActiveStencilFaceEXT },
    { NULL, NULL }  /* end of list marker */
 };
diff --git a/src/mesa/sparc/glapi_sparc.S b/src/mesa/sparc/glapi_sparc.S
index 97d458d..2f7c936 100644
--- a/src/mesa/sparc/glapi_sparc.S
+++ b/src/mesa/sparc/glapi_sparc.S
@@ -14091,6 +14091,153 @@
 	jmpl	%g3, %g0
 	nop
 
+.globl glDeleteFencesNV
+.type glDeleteFencesNV,#function
+glDeleteFencesNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_DeleteFencesNV), %g2
+	or	%g2, %lo(8 * _gloffset_DeleteFencesNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_DeleteFencesNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
+.globl glGenFencesNV
+.type glGenFencesNV,#function
+glGenFencesNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_GenFencesNV), %g2
+	or	%g2, %lo(8 * _gloffset_GenFencesNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_GenFencesNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
+.globl glIsFenceNV
+.type glIsFenceNV,#function
+glIsFenceNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_IsFenceNV), %g2
+	or	%g2, %lo(8 * _gloffset_IsFenceNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_IsFenceNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
+.globl glTestFenceNV
+.type glTestFenceNV,#function
+glTestFenceNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_TestFenceNV), %g2
+	or	%g2, %lo(8 * _gloffset_TestFenceNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_TestFenceNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
+.globl glGetFenceivNV
+.type glGetFenceivNV,#function
+glGetFenceivNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_GetFenceivNV), %g2
+	or	%g2, %lo(8 * _gloffset_GetFenceivNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_GetFenceivNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
+.globl glFinishFenceNV
+.type glFinishFenceNV,#function
+glFinishFenceNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_FinishFenceNV), %g2
+	or	%g2, %lo(8 * _gloffset_FinishFenceNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_FinishFenceNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
+.globl glSetFenceNV
+.type glSetFenceNV,#function
+glSetFenceNV:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_SetFenceNV), %g2
+	or	%g2, %lo(8 * _gloffset_SetFenceNV), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_SetFenceNV)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
+
 .globl glWindowPos2dARB
 .type glWindowPos2dARB,#function
 glWindowPos2dARB:
@@ -16589,6 +16736,27 @@
 #endif
 	jmpl	%g3, %g0
 	nop
+
+.globl glActiveStencilFaceEXT
+.type glActiveStencilFaceEXT,#function
+glActiveStencilFaceEXT:
+#ifdef __sparc_v9__
+	sethi	%hi(0x00000000), %g2
+	sethi	%hi(0x00000000), %g1
+	or	%g2, %lo(0x00000000), %g2
+	or	%g1, %lo(0x00000000), %g1
+	sllx	%g2, 32, %g2
+	ldx	[%g1 + %g2], %g1
+	sethi	%hi(8 * _gloffset_ActiveStencilFaceEXT), %g2
+	or	%g2, %lo(8 * _gloffset_ActiveStencilFaceEXT), %g2
+	ldx	[%g1 + %g2], %g3
+#else
+	sethi	%hi(0x00000000), %g1
+	ld	[%g1 + %lo(0x00000000)], %g1
+	ld	[%g1 + (4 * _gloffset_ActiveStencilFaceEXT)], %g3
+#endif
+	jmpl	%g3, %g0
+	nop
 	 nop
 
 .globl _mesa_sparc_glapi_end
diff --git a/src/mesa/x86/glapi_x86.S b/src/mesa/x86/glapi_x86.S
index 99504eb..28482b3 100644
--- a/src/mesa/x86/glapi_x86.S
+++ b/src/mesa/x86/glapi_x86.S
@@ -4042,6 +4042,48 @@
 	JMP(GL_OFFSET(_gloffset_SamplePatternSGIS))
 
 ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(DeleteFencesNV))
+GL_PREFIX(DeleteFencesNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_DeleteFencesNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GenFencesNV))
+GL_PREFIX(GenFencesNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_GenFencesNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(IsFenceNV))
+GL_PREFIX(IsFenceNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_IsFenceNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(TestFenceNV))
+GL_PREFIX(TestFenceNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_TestFenceNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFenceivNV))
+GL_PREFIX(GetFenceivNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_GetFenceivNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FinishFenceNV))
+GL_PREFIX(FinishFenceNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_FinishFenceNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SetFenceNV))
+GL_PREFIX(SetFenceNV):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_SetFenceNV))
+
+ALIGNTEXT16
 GLOBL_FN(GL_PREFIX(WindowPos2dARB))
 GL_PREFIX(WindowPos2dARB):
 	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
@@ -4755,5 +4797,11 @@
 	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
 	JMP(GL_OFFSET(_gloffset_WindowPos3svMESA))
 
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ActiveStencilFaceEXT))
+GL_PREFIX(ActiveStencilFaceEXT):
+	MOV_L(CONTENT(GLNAME(_glapi_Dispatch)), EAX)
+	JMP(GL_OFFSET(_gloffset_ActiveStencilFaceEXT))
+
 
 #endif  /* __WIN32__ */