OSDN Git Service

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