+2020-03-13  Tom Tromey  <tom@tromey.com>
+
+       * valprint.h (generic_value_print): Declare.
+       * valprint.c (generic_value_print): New function.
+
 2020-03-13  Tom Tromey  <tom@tromey.com>
 
        * valprint.c (do_val_print): Call la_value_print_inner, if
 
     }
 }
 
+/* See valprint.h.  */
+
+void
+generic_value_print (struct value *val, struct ui_file *stream, int recurse,
+                    const struct value_print_options *options,
+                    const struct generic_val_print_decorations *decorations)
+{
+  generic_val_print (value_type (val), value_embedded_offset (val),
+                    value_address (val), stream, recurse, val, options,
+                    decorations);
+}
+
 /* Helper function for val_print and common_val_print that does the
    work.  Arguments are as to val_print, but FULL_VALUE, if given, is
    the value to be printed.  */
 
                               const struct value_print_options *options,
                               const struct generic_val_print_decorations *);
 
+/* Print a value in a generic way.  VAL is the value, STREAM is where
+   to print it, RECURSE is the recursion depth, OPTIONS describe how
+   the printing should be done, and D is the language-specific
+   decorations object.  Note that structs and unions cannot be printed
+   by this function.  */
+
+extern void generic_value_print (struct value *val, struct ui_file *stream,
+                                int recurse,
+                                const struct value_print_options *options,
+                                const struct generic_val_print_decorations *d);
+
 extern void generic_emit_char (int c, struct type *type, struct ui_file *stream,
                               int quoter, const char *encoding);