Fixes to Basic and Generic layers to work singly with LD_PRELOAD
diff --git a/xgl-generate.py b/xgl-generate.py
index 6e790d8..552c84d 100755
--- a/xgl-generate.py
+++ b/xgl-generate.py
@@ -151,7 +151,7 @@
                              "    %s = wrapped_obj->nextObject;\n"
                              "    %s;\n"
                                  "}" % (qual, decl, proto.params[0].name, proto.params[0].name, stmt))
-            elif proto.name != "GetProcAddr":
+            elif proto.name != "GetProcAddr" and proto.name != "InitAndEnumerateGpus":
                 decl = proto.c_func(prefix="xgl", attr="XGLAPI")
                 param0_name = proto.params[0].name
                 ret_val = ''
@@ -194,8 +194,13 @@
         for name in xgl.icd_dispatch_table:
             if name == "GetProcAddr":
                 continue
-            func_body.append('    else if (!strncmp("%s%s", (const char *) funcName, sizeof("%s%s")))\n'
+            if name == "InitAndEnumerateGpus":
+                func_body.append('    else if (!strncmp("%s%s", (const char *) funcName, sizeof("%s%s")))\n'
+                             '        return nextTable.%s;' % (prefix, name, prefix, name, name))
+            else:
+                func_body.append('    else if (!strncmp("%s%s", (const char *) funcName, sizeof("%s%s")))\n'
                              '        return %s%s;' % (prefix, name, prefix, name, prefix, name))
+
         func_body.append("    else {\n"
                          "        XGL_BASE_LAYER_OBJECT* gpuw = (XGL_BASE_LAYER_OBJECT *) gpu;\n"
                          "        if (gpuw->pGPA == NULL)\n"