qapi: Support downstream enums

Enhance the testsuite to cover a downstream enum type and enum
string.  Update the generator to mangle the enum name in the
appropriate places.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index 0368e62..7697ec6 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -173,7 +173,7 @@
     error_propagate(errp, err);
 }
 ''',
-                name=name)
+                name=type_name(name))
 
 def generate_visit_enum(name, members):
     return mcgen('''
@@ -183,7 +183,7 @@
     visit_type_enum(m, (int *)obj, %(name)s_lookup, "%(name)s", name, errp);
 }
 ''',
-                 name=name)
+                 name=c_name(name))
 
 def generate_visit_alternate(name, members):
     ret = mcgen('''
@@ -364,7 +364,7 @@
     ret = mcgen('''
 void visit_type_%(name)sList(Visitor *m, %(name)sList **obj, const char *name, Error **errp);
 ''',
-                name=name)
+                name=c_name(name))
 
     return ret
 
@@ -373,7 +373,7 @@
 
 void visit_type_%(name)s(Visitor *m, %(name)s *obj, const char *name, Error **errp);
 ''',
-                name=name)
+                 name=c_name(name))
 
 try:
     opts, args = getopt.gnu_getopt(sys.argv[1:], "chbp:i:o:",