For symbols which have C-level global scope but which we regard as
module-local, use the new ML_ prefix instead of VG_.  This makes it
trivial to see which names are those exported from public module
interfaces: precisely those using VG_.

/* VG_ is for symbols exported from modules.  ML_ (module-local) is
   for symbols which are not intended to be visible outside modules,
   but which cannot be declared as C 'static's since they need to be
   visible across C files within a given module.  It is a mistake for
   a ML_ name to appear in a pub_core_*.h or pub_tool_*.h file.
   Likewise it is a mistake for a VG_ name to appear in a priv_*.h
   file. 
*/



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4000 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/include/pub_tool_basics_asm.h b/include/pub_tool_basics_asm.h
index 4de39fe..42f13dc 100644
--- a/include/pub_tool_basics_asm.h
+++ b/include/pub_tool_basics_asm.h
@@ -38,7 +38,17 @@
 
 #define VGAPPEND(str1,str2) str1##str2
 
-#define VG_(str)    VGAPPEND(vgPlain_,    str)
+/* VG_ is for symbols exported from modules.  ML_ (module-local) is
+   for symbols which are not intended to be visible outside modules,
+   but which cannot be declared as C 'static's since they need to be
+   visible across C files within a given module.  It is a mistake for
+   a ML_ name to appear in a pub_core_*.h or pub_tool_*.h file.
+   Likewise it is a mistake for a VG_ name to appear in a priv_*.h
+   file. 
+*/
+#define VG_(str)    VGAPPEND(vgPlain_,          str)
+#define ML_(str)    VGAPPEND(vgModuleLocal_,    str)
+
 #define VGA_(str)   VGAPPEND(vgArch_,     str)
 #define VGO_(str)   VGAPPEND(vgOS_,       str)
 #define VGP_(str)   VGAPPEND(vgPlatform_, str)