From ffd561e4b5dcc0f13d30519f08af0f2b5aba1419 Mon Sep 17 00:00:00 2001
From: Jon Taylor <taylorj@ggi-project.org>
Date: Sun, 11 Jun 2000 20:11:55 +0000
Subject: Lots of small updates to GGIMesa, tracking LibGGI internals changes

---
 src/mesa/drivers/ggi/default/genkgi_visual.c        | 21 +++++++++++++++++----
 src/mesa/drivers/ggi/default/linear.c               | 20 +++++++++++++++++---
 src/mesa/drivers/ggi/default/linear_15.c            |  1 +
 src/mesa/drivers/ggi/default/linear_16.c            |  1 +
 src/mesa/drivers/ggi/default/linear_24.c            |  1 +
 src/mesa/drivers/ggi/default/linear_32.c            |  1 +
 src/mesa/drivers/ggi/default/linear_8.c             |  1 +
 src/mesa/drivers/ggi/default/stubs.c                | 19 ++++++++++++++++---
 src/mesa/drivers/ggi/display/fbdev_visual.c         |  6 ++++--
 src/mesa/drivers/ggi/ggimesa.c                      |  2 +-
 src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h |  2 ++
 11 files changed, 62 insertions(+), 13 deletions(-)

(limited to 'src')

diff --git a/src/mesa/drivers/ggi/default/genkgi_visual.c b/src/mesa/drivers/ggi/default/genkgi_visual.c
index c30f15fdb0..17ef9679bb 100644
--- a/src/mesa/drivers/ggi/default/genkgi_visual.c
+++ b/src/mesa/drivers/ggi/default/genkgi_visual.c
@@ -1,4 +1,4 @@
-/* $Id: genkgi_visual.c,v 1.6 2000/01/07 08:34:44 jtaylor Exp $
+/* $Id: genkgi_visual.c,v 1.7 2000/06/11 20:11:55 jtaylor Exp $
 ******************************************************************************
 
    genkgi_visual.c: visual handling for the generic KGI helper
@@ -106,7 +106,8 @@ static int changed(ggi_visual_t vis, int whatchanged)
 	return 0;
 }
 
-int GGIdlinit(ggi_visual *vis, const char *args, void *argptr)
+static int GGIdlinit(ggi_visual *vis, struct ggi_dlhandle *dlh,
+			const char *args, void *argptr, uint32 *dlret)
 {
 	struct genkgi_priv_mesa *priv;
 	char libname[256], libargs[256];
@@ -166,12 +167,24 @@ int GGIdlinit(ggi_visual *vis, const char *args, void *argptr)
 #endif	
 	GGIMESADPRINT_CORE("display-fbdev-kgicon-mesa: GGIdlinit finished\n");
 
+	*dlret = GGI_DL_OPDRAW;
 	return 0;
 }
 
-int GGIdlcleanup(ggi_visual *vis)
+int MesaGGIdl_fbdev(int func, void **funcptr)
 {
-	return 0;
+	switch (func) {
+		case GGIFUNC_open:
+			*funcptr = GGIopen;
+			return 0;
+		case GGIFUNC_exit:
+		case GGIFUNC_close:
+			*funcptr = NULL;
+			return 0;
+		default:
+			*funcptr = NULL;
+	}
+	return GGI_ENOTFOUND;
 }
 
 #include <ggi/internal/ggidlinit.h>
diff --git a/src/mesa/drivers/ggi/default/linear.c b/src/mesa/drivers/ggi/default/linear.c
index 6acdf4d801..e15a0db050 100644
--- a/src/mesa/drivers/ggi/default/linear.c
+++ b/src/mesa/drivers/ggi/default/linear.c
@@ -320,14 +320,28 @@ int GGIsetup_driver(GGIMesaContext ggictx,struct ggi_mesa_info *info)
 	return 0;
 }
 
-int GGIdlinit(ggi_visual_t vis,const char *version,void *argptr)
+static int GGIopen(ggi_visual_t vis,struct ggi_dlhandle *dlh,
+			const char *args,void *argptr, uint32 *dlret)
 {	
 	LIBGGI_MESAEXT(vis)->setup_driver=GGIsetup_driver;
 
+	*dlret = GGI_DL_OPDRAW;
 	return 0;
 }
 
-int GGIdlcleanup(ggi_visual_t vis)
+int DLOPENFUNC(int func, void **funcptr)
 {
-	return 0;
+	switch (func) {
+		case GGIFUNC_open:
+			*funcptr = GGIopen;
+			return 0;
+		case GGIFUNC_exit:
+		case GGIFUNC_close:
+			*funcptr = NULL;
+			return 0;
+		default:
+			*funcptr = NULL;
+	}
+	return GGI_ENOTFOUND;
 }
+
diff --git a/src/mesa/drivers/ggi/default/linear_15.c b/src/mesa/drivers/ggi/default/linear_15.c
index 05879d10a9..ead7cc5847 100644
--- a/src/mesa/drivers/ggi/default/linear_15.c
+++ b/src/mesa/drivers/ggi/default/linear_15.c
@@ -30,6 +30,7 @@
 
 #define FB_TYPE uint16
 #define FB_BITS 15
+#define DLOPENFUNC MesaGGIdl_linear_15
 
 #include "linear.c"
 
diff --git a/src/mesa/drivers/ggi/default/linear_16.c b/src/mesa/drivers/ggi/default/linear_16.c
index 221891bf20..6028699bbc 100644
--- a/src/mesa/drivers/ggi/default/linear_16.c
+++ b/src/mesa/drivers/ggi/default/linear_16.c
@@ -30,6 +30,7 @@
 
 #define FB_TYPE uint16
 #define FB_BITS 16
+#define DLOPENFUNC MesaGGIdl_linear_16
 
 #include "linear.c"
 
diff --git a/src/mesa/drivers/ggi/default/linear_24.c b/src/mesa/drivers/ggi/default/linear_24.c
index 0d315321f0..7a2236f124 100644
--- a/src/mesa/drivers/ggi/default/linear_24.c
+++ b/src/mesa/drivers/ggi/default/linear_24.c
@@ -30,6 +30,7 @@
 
 #define FB_TYPE uint32
 #define FB_BITS 24
+#define DLOPENFUNC MesaGGIdl_linear_24
 
 #include "linear.c"
 
diff --git a/src/mesa/drivers/ggi/default/linear_32.c b/src/mesa/drivers/ggi/default/linear_32.c
index d16a923b35..7cbf945f35 100644
--- a/src/mesa/drivers/ggi/default/linear_32.c
+++ b/src/mesa/drivers/ggi/default/linear_32.c
@@ -30,6 +30,7 @@
 
 #define FB_TYPE uint32
 #define FB_BITS 32
+#define DLOPENFUNC MesaGGIdl_linear_32
 
 #include "linear.c"
 
diff --git a/src/mesa/drivers/ggi/default/linear_8.c b/src/mesa/drivers/ggi/default/linear_8.c
index 19a3ee27e4..9c7b5d712f 100644
--- a/src/mesa/drivers/ggi/default/linear_8.c
+++ b/src/mesa/drivers/ggi/default/linear_8.c
@@ -30,6 +30,7 @@
 
 #define FB_TYPE uint8
 #define FB_BITS 8
+#define DLOPENFUNC MesaGGIdl_linear_8
 
 #include "linear.c"
 
diff --git a/src/mesa/drivers/ggi/default/stubs.c b/src/mesa/drivers/ggi/default/stubs.c
index df9efb5c40..f377532efd 100644
--- a/src/mesa/drivers/ggi/default/stubs.c
+++ b/src/mesa/drivers/ggi/default/stubs.c
@@ -399,15 +399,28 @@ triangle_func ggiGetTriangleFunc(GLcontext *ctx)
 	return GGItriangle_flat;	
 }
 
-int GGIdlinit(ggi_visual_t vis, const char *version, void *argptr)
+static int GGIopen(ggi_visual_t vis, struct ggi_dlhandle *dlh,
+			const char *args, void *argptr, uint32 *dlret)
 { 
        	LIBGGI_MESAEXT(vis)->update_state = GGIupdate_state;
 	LIBGGI_MESAEXT(vis)->setup_driver = GGIsetup_driver;
 
+	*dlret = GGI_DL_OPDRAW;
 	return 0;
 }
 
-int GGIdlcleanup(ggi_visual_t vis)
+int MesaGGIdl_stubs(int func, void **funcptr)
 {
-	return 0;
+	switch (func) {
+		case GGIFUNC_open:
+			*funcptr = GGIopen;
+			return 0;
+		case GGIFUNC_exit:
+		case GGIFUNC_close:
+			*funcptr = NULL;
+			return 0;
+		default:
+			*funcptr = NULL;
+	}
+	return GGI_ENOTFOUND;
 }
diff --git a/src/mesa/drivers/ggi/display/fbdev_visual.c b/src/mesa/drivers/ggi/display/fbdev_visual.c
index 8a375da66b..a861d815a6 100644
--- a/src/mesa/drivers/ggi/display/fbdev_visual.c
+++ b/src/mesa/drivers/ggi/display/fbdev_visual.c
@@ -1,4 +1,4 @@
-/* $Id: fbdev_visual.c,v 1.5 2000/01/07 08:34:44 jtaylor Exp $
+/* $Id: fbdev_visual.c,v 1.6 2000/06/11 20:11:55 jtaylor Exp $
 ******************************************************************************
 
    display-fbdev-mesa: visual handling
@@ -39,6 +39,8 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
+#define GGI_SYMNAME_PREFIX  "MesaGGIdl_"
+
 #ifdef HAVE_SYS_VT_H
 #include <sys/vt.h>
 #else
@@ -95,7 +97,7 @@ static int changed(ggi_visual_t vis, int whatchanged)
 					continue;
 				}
 				
-				lib = ggiExtensionLoadDL(vis, fname, args, NULL);
+				lib = ggiExtensionLoadDL(vis, fname, args, NULL, GGI_SYMNAME_PREFIX);
 			}
 		}
 		break;
diff --git a/src/mesa/drivers/ggi/ggimesa.c b/src/mesa/drivers/ggi/ggimesa.c
index ddd280931c..6e8dd47e74 100644
--- a/src/mesa/drivers/ggi/ggimesa.c
+++ b/src/mesa/drivers/ggi/ggimesa.c
@@ -552,7 +552,7 @@ static int changed(ggi_visual_t vis, int whatchanged)
 					/* No special implementation for this sublib */
 					continue;
 				}
-				lib = ggiExtensionLoadDL(vis, fname, args, NULL);
+				lib = ggiExtensionLoadDL(vis, fname, args, NULL, GGI_SYMNAME_PREFIX);
 			}
 		} 
 		break;
diff --git a/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h b/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h
index 0589991ce9..ae4a3c5825 100644
--- a/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h
+++ b/src/mesa/drivers/ggi/include/ggi/mesa/ggimesa_int.h
@@ -4,6 +4,8 @@
 #include <ggi/internal/internal.h>
 #include "ggimesa.h"
 
+#define GGI_SYMNAME_PREFIX  "MesaGGIdl_"
+
 extern ggi_extid ggiMesaID;
 
 ggifunc_setmode GGIMesa_setmode;
-- 
cgit v1.2.3