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 99