+struct frame_arg
+{
+ /* Symbol for this parameter used for example for its name. */
+ struct symbol *sym = nullptr;
+
+ /* Value of the parameter. It is NULL if ERROR is not NULL; if both VAL and
+ ERROR are NULL this parameter's value should not be printed. */
+ struct value *val = nullptr;
+
+ /* String containing the error message, it is more usually NULL indicating no
+ error occured reading this parameter. */
+ gdb::unique_xmalloc_ptr<char> error;
+
+ /* One of the print_entry_values_* entries as appropriate specifically for
+ this frame_arg. It will be different from print_entry_values. With
+ print_entry_values_no this frame_arg should be printed as a normal
+ parameter. print_entry_values_only says it should be printed as entry
+ value parameter. print_entry_values_compact says it should be printed as
+ both as a normal parameter and entry values parameter having the same
+ value - print_entry_values_compact is not permitted fi ui_out_is_mi_like_p
+ (in such case print_entry_values_no and print_entry_values_only is used
+ for each parameter kind specifically. */
+ const char *entry_kind = nullptr;
+};
+
+extern void read_frame_arg (const frame_print_options &fp_opts,
+ symbol *sym, frame_info *frame,
+ struct frame_arg *argp,
+ struct frame_arg *entryargp);
+extern void read_frame_local (struct symbol *sym, struct frame_info *frame,
+ struct frame_arg *argp);
+
+extern void info_args_command (const char *, int);
+
+extern void info_locals_command (const char *, int);
+
+extern void return_command (const char *, int);