-extern void /* Defined in m2-typeprint.c */
-m2_print_type PARAMS ((struct type *, char *, GDB_FILE *, int, int));
+extern void m2_error (char *); /* Defined in m2-exp.y */
+
+/* Defined in m2-typeprint.c */
+extern void m2_print_type (struct type *, const char *, struct ui_file *, int,
+ int);
+
+extern void m2_print_typedef (struct type *, struct symbol *,
+ struct ui_file *);
+
+extern int m2_is_long_set (struct type *type);
+extern int m2_is_unbounded_array (struct type *type);
+
+extern int m2_val_print (struct type *, const gdb_byte *, int, CORE_ADDR,
+ struct ui_file *, int,
+ const struct value *,
+ const struct value_print_options *);
+
+extern int get_long_set_bounds (struct type *type, LONGEST *low,
+ LONGEST *high);
+
+/* Modula-2 types */
+
+struct builtin_m2_type
+{
+ struct type *builtin_char;
+ struct type *builtin_int;
+ struct type *builtin_card;
+ struct type *builtin_real;
+ struct type *builtin_bool;
+};
+
+/* Return the Modula-2 type table for the specified architecture. */
+extern const struct builtin_m2_type *builtin_m2_type (struct gdbarch *gdbarch);