Home | History | Annotate | Line # | Download | only in common
      1 /* Device definitions.
      2    Copyright (C) 1998-2024 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 #include <stdarg.h>
     24 
     25 #include "ansidecl.h"
     26 
     27 /* Parse a hardware definition */
     28 
     29 struct hw *sim_hw_parse
     30 (struct sim_state *sd,
     31  const char *fmt,
     32  ...) ATTRIBUTE_PRINTF (2, 3);
     33 
     34 
     35 /* Print the hardware tree */
     36 
     37 void sim_hw_print
     38 (struct sim_state *sd,
     39  void (*print) (struct sim_state *, const char *, va_list ap));
     40 
     41 
     42 /* Abort the simulation specifying HW as the reason */
     43 
     44 void sim_hw_abort
     45 (SIM_DESC sd,
     46  struct hw *hw,
     47  const char *fmt,
     48  ...) ATTRIBUTE_PRINTF (3, 4) ATTRIBUTE_NORETURN;
     49 
     50 
     51 
     52 /* CPU: The simulation is running and the current CPU/CIA
     53    initiates a data transfer. */
     54 
     55 void sim_cpu_hw_io_read_buffer
     56 (sim_cpu *cpu,
     57  sim_cia cia,
     58  struct hw *hw,
     59  void *dest,
     60  int space,
     61  unsigned_word addr,
     62  unsigned nr_bytes);
     63 
     64 void sim_cpu_hw_io_write_buffer
     65 (sim_cpu *cpu,
     66  sim_cia cia,
     67  struct hw *hw,
     68  const void *source,
     69  int space,
     70  unsigned_word addr,
     71  unsigned nr_bytes);
     72 
     73 
     74 
     75 /* SYSTEM: A data transfer is being initiated by the system. */
     76 
     77 unsigned sim_hw_io_read_buffer
     78 (struct sim_state *sd,
     79  struct hw *hw,
     80  void *dest,
     81  int space,
     82  unsigned_word addr,
     83  unsigned nr_bytes);
     84 
     85 unsigned sim_hw_io_write_buffer
     86 (struct sim_state *sd,
     87  struct hw *hw,
     88  const void *source,
     89  int space,
     90  unsigned_word addr,
     91  unsigned nr_bytes);
     92 
     93 
     94 #endif
     95