aboutsummaryrefslogtreecommitdiff
path: root/sim/common/sim-hw.h
diff options
context:
space:
mode:
Diffstat (limited to 'sim/common/sim-hw.h')
-rw-r--r--sim/common/sim-hw.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/sim/common/sim-hw.h b/sim/common/sim-hw.h
new file mode 100644
index 0000000..1bebd18
--- /dev/null
+++ b/sim/common/sim-hw.h
@@ -0,0 +1,98 @@
+/* Device definitions.
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ Contributed by Cygnus Support.
+
+This file is part of GDB, the GNU debugger.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef SIM_HW_H
+#define SIM_HW_H
+
+
+/* Establish this object */
+
+SIM_RC sim_hw_install
+(struct sim_state *sd);
+
+
+/* Parse a hardware definition */
+
+struct hw *sim_hw_parse
+(struct sim_state *sd,
+ const char *fmt,
+ ...) __attribute__ ((format (printf, 2, 3)));
+
+
+/* Print the hardware tree */
+
+void sim_hw_print
+(struct sim_state *sd,
+ void (*print) (struct sim_state *, const char *, va_list ap));
+
+
+/* Abort the simulation specifying HW as the reason */
+
+void sim_hw_abort
+(SIM_DESC sd,
+ struct hw *hw,
+ const char *fmt,
+ ...) __attribute__ ((format (printf, 3, 4)));
+
+
+
+/* CPU: The simulation is running and the current CPU/CIA
+ initiates a data transfer. */
+
+void sim_cpu_hw_io_read_buffer
+(sim_cpu *cpu,
+ sim_cia cia,
+ struct hw *hw,
+ void *dest,
+ int space,
+ unsigned_word addr,
+ unsigned nr_bytes);
+
+void sim_cpu_hw_io_write_buffer
+(sim_cpu *cpu,
+ sim_cia cia,
+ struct hw *hw,
+ const void *source,
+ int space,
+ unsigned_word addr,
+ unsigned nr_bytes);
+
+
+
+/* SYSTEM: A data transfer is being initiated by the system. */
+
+unsigned sim_hw_io_read_buffer
+(struct sim_state *sd,
+ struct hw *hw,
+ void *dest,
+ int space,
+ unsigned_word addr,
+ unsigned nr_bytes);
+
+unsigned sim_hw_io_write_buffer
+(struct sim_state *sd,
+ struct hw *hw,
+ const void *source,
+ int space,
+ unsigned_word addr,
+ unsigned nr_bytes);
+
+
+#endif