-/* $Id: glapi.c,v 1.67 2002/10/29 15:03:14 brianp Exp $ */
/*
* Mesa 3-D graphics library
#define KEYWORD1 static
-#define KEYWORD2
+#define KEYWORD2 GLAPIENTRY
#define NAME(func) NoOp##func
#define F NULL
return code;
#elif defined(USE_SPARC_ASM)
-#ifdef __sparc_v9__
+#if defined(__sparc_v9__) && !defined(__linux__)
static const unsigned int insn_template[] = {
0x05000000, /* sethi %uhi(_glapi_Dispatch), %g2 */
0x03000000, /* sethi %hi(_glapi_Dispatch), %g1 */
if (code) {
memcpy(code, insn_template, sizeof(insn_template));
-#ifdef __sparc_v9__
+#if defined(__sparc_v9__) && !defined(__linux__)
code[0] |= (glapi_addr >> (32 + 10));
code[1] |= ((glapi_addr & 0xffffffff) >> 10);
__glapi_sparc_icache_flush(&code[0]);
/* XXX this hasn't been tested! */
unsigned int *code = (unsigned int *) entrypoint;
-#ifdef __sparc_v9__
+#if defined(__sparc_v9__) && !defined(__linux__)
code[6] = 0x05000000; /* sethi %hi(8 * glapioffset), %g2 */
code[7] = 0x8410a000; /* or %g2, %lo(8 * glapioffset), %g2 */
code[6] |= ((offset * 8) >> 10);
code[7] |= ((offset * 8) & ((1 << 10) - 1));
__glapi_sparc_icache_flush(&code[6]);
-#else /* __sparc_v9__ */
+#else /* __sparc_v9__ && !linux */
code[2] = 0xc6006000; /* ld [%g1 + %lo(4*glapioffset)], %g3 */
code[2] |= (offset * 4);
__glapi_sparc_icache_flush(&code[2]);
-#endif /* __sparc_v9__ */
+#endif /* __sparc_v9__ && !linux */
#endif /* USE_*_ASM */
}
if (ExtEntryTable[i].Offset == offset) {
return GL_TRUE; /* offsets match */
}
- else if (ExtEntryTable[i].Offset == ~0
+ else if (ExtEntryTable[i].Offset == (GLuint) ~0
&& offset < DISPATCH_TABLE_SIZE) {
/* need to patch-up the dispatch code */
- if (offset != ~0) {
+ if (offset != (GLuint) ~0) {
fill_in_entrypoint_offset(ExtEntryTable[i].Address, offset);
ExtEntryTable[i].Offset = offset;
}
const GLvoid *
_glapi_get_proc_address(const char *funcName)
{
- /* search extension functions first */
GLuint i;
+
+ if (funcName[0] != 'g' || funcName[1] != 'l')
+ return NULL;
+
+ /* search extension functions first */
for (i = 0; i < NumExtEntryPoints; i++) {
if (strcmp(ExtEntryTable[i].Name, funcName) == 0) {
return ExtEntryTable[i].Address;