SIM_RC sim_analyze_program (SIM_DESC sd, char *prog_name,
struct _bfd *prog_bfd);
-/* Load program PROG into the simulator.
+/* Load program PROG into the simulator using the function DO_LOAD.
If PROG_BFD is non-NULL, the file has already been opened.
If VERBOSE_P is non-zero statistics are printed of each loaded section
and the transfer rate (for consistency with gdb).
+ If LMA_P is non-zero the program sections are loaded at the LMA
+ rather than the VMA
If this fails an error message is printed and NULL is returned.
- If it succeeds the bfd is returned. */
+ If it succeeds the bfd is returned.
+ NOTE: For historical reasons, older hardware simulators incorrectly
+ write the program sections at LMA interpreted as a virtual address.
+ This is still accommodated for backward compatibility reasons. */
+typedef int sim_write_fn PARAMS ((SIM_DESC sd, SIM_ADDR mem,
+ unsigned char *buf, int length));
struct _bfd *sim_load_file (SIM_DESC sd, const char *myname,
host_callback *callback, char *prog,
- struct _bfd *prog_bfd, int verbose_p);
+ struct _bfd *prog_bfd, int verbose_p,
+ int lma_p, sim_write_fn do_load);
+
+/* Internal version of sim_do_command, include formatting */
+void sim_do_commandf (SIM_DESC sd, const char *fmt, ...);
+
/* These are defined in callback.c as cover functions to the vprintf
callbacks. */
void sim_cb_printf (host_callback *, const char *, ...);
void sim_cb_eprintf (host_callback *, const char *, ...);
+
+/* sim-basics.h defines a number of enumerations, convert each of them
+ to a string representation */
+const char *map_to_str (unsigned map);
+const char *access_to_str (unsigned access);
+const char *transfer_to_str (unsigned transfer);
+
#endif