Print this page
6375 Add native name demangling support

@@ -20,31 +20,30 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2001-2002 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2017 Jason King.
  */
 
 #ifndef _MDB_DEMANGLE_H
 #define _MDB_DEMANGLE_H
 
-#pragma ident   "%Z%%M% %I%     %E% SMI"
-
 #ifdef  __cplusplus
 extern "C" {
 #endif
 
 #ifdef  _MDB
 
 #include <sys/types.h>
 #include <sys/param.h>
 #include <mdb/mdb_modapi.h>
+#include <sysdemangle.h>
 
 typedef struct mdb_demangler {
-        char dm_pathname[MAXPATHLEN];   /* pathname of demangling library */
-        void *dm_handle;                /* rtld handle to demangling library */
-        int (*dm_convert)(const char *, char *, size_t);        /* demangler */
+        sysdem_lang_t dm_lang;          /* language to demangle */
         char *dm_buf;                   /* demangling buffer */
         size_t dm_len;                  /* size of dm_buf in bytes */
         char *dm_dem;                   /* start of demangled string (in buf) */
         uint_t dm_flags;                /* convert flags (see below) */
 } mdb_demangler_t;

@@ -53,11 +52,11 @@
 #define MDB_DM_SCOPE    0x2             /* show function scope specifiers */
 #define MDB_DM_FUNCARG  0x4             /* show function arguments */
 #define MDB_DM_MANGLED  0x8             /* show mangled name */
 #define MDB_DM_ALL      0xf             /* mask of all valid flags */
 
-extern mdb_demangler_t *mdb_dem_load(const char *);
+extern mdb_demangler_t *mdb_dem_load(void);
 extern void mdb_dem_unload(mdb_demangler_t *);
 extern const char *mdb_dem_convert(mdb_demangler_t *, const char *);
 
 extern int cmd_demangle(uintptr_t, uint_t, int, const mdb_arg_t *);
 extern int cmd_demflags(uintptr_t, uint_t, int, const mdb_arg_t *);