1 /* Device definitions.
2    Copyright (C) 1998-2013 Free Software Foundation, Inc.
3    Contributed by Cygnus Support.
4 
5 This file is part of GDB, the GNU debugger.
6 
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
11 
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 #ifndef SIM_HW_H
21 #define SIM_HW_H
22 
23 
24 /* Establish this object */
25 
26 SIM_RC sim_hw_install
27 (struct sim_state *sd);
28 
29 
30 /* Parse a hardware definition */
31 
32 struct hw *sim_hw_parse
33 (struct sim_state *sd,
34  const char *fmt,
35  ...) __attribute__ ((format (printf, 2, 3)));
36 
37 
38 /* Print the hardware tree */
39 
40 void sim_hw_print
41 (struct sim_state *sd,
42  void (*print) (struct sim_state *, const char *, va_list ap));
43 
44 
45 /* Abort the simulation specifying HW as the reason */
46 
47 void sim_hw_abort
48 (SIM_DESC sd,
49  struct hw *hw,
50  const char *fmt,
51  ...) __attribute__ ((format (printf, 3, 4), noreturn));
52 
53 
54 
55 /* CPU: The simulation is running and the current CPU/CIA
56    initiates a data transfer. */
57 
58 void sim_cpu_hw_io_read_buffer
59 (sim_cpu *cpu,
60  sim_cia cia,
61  struct hw *hw,
62  void *dest,
63  int space,
64  unsigned_word addr,
65  unsigned nr_bytes);
66 
67 void sim_cpu_hw_io_write_buffer
68 (sim_cpu *cpu,
69  sim_cia cia,
70  struct hw *hw,
71  const void *source,
72  int space,
73  unsigned_word addr,
74  unsigned nr_bytes);
75 
76 
77 
78 /* SYSTEM: A data transfer is being initiated by the system. */
79 
80 unsigned sim_hw_io_read_buffer
81 (struct sim_state *sd,
82  struct hw *hw,
83  void *dest,
84  int space,
85  unsigned_word addr,
86  unsigned nr_bytes);
87 
88 unsigned sim_hw_io_write_buffer
89 (struct sim_state *sd,
90  struct hw *hw,
91  const void *source,
92  int space,
93  unsigned_word addr,
94  unsigned nr_bytes);
95 
96 
97 #endif
98