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