| /* Common hardware header file. |
| Copyright (C) 1998-2021 Free Software Foundation, Inc. |
| Contributed by Andrew Cagney and Cygnus Support. |
| |
| This file is part of GDB, the GNU debugger. |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3 of the License, or |
| (at your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| GNU General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| |
| |
| #ifndef HW_MAIN |
| #define HW_MAIN |
| |
| /* establish a type system */ |
| #include "sim-basics.h" |
| |
| /* construct a hw device */ |
| #include "hw-device.h" |
| #include "hw-properties.h" |
| #include "hw-events.h" |
| #include "hw-alloc.h" |
| #include "hw-instances.h" |
| #include "hw-handles.h" |
| #include "hw-ports.h" |
| |
| /* Description of a hardware device */ |
| |
| typedef void (hw_finish_method) |
| (struct hw *me); |
| |
| struct hw_descriptor |
| { |
| const char *family; |
| hw_finish_method *to_finish; |
| }; |
| |
| /* Helper functions to make the implementation of a device easier */ |
| |
| /* Go through the devices reg properties and look for those specifying |
| an address to attach various registers to */ |
| |
| void do_hw_attach_regs (struct hw *me); |
| |
| /* Perform a polling read on FD returning either the number of bytes |
| or a hw_io status code that indicates the reason for the read |
| failure */ |
| |
| enum |
| { |
| HW_IO_EOF = -1, HW_IO_NOT_READY = -2, /* See: IEEE 1275 */ |
| }; |
| |
| typedef int (do_hw_poll_read_method) |
| (SIM_DESC sd, int, char *, int); |
| |
| int do_hw_poll_read |
| (struct hw *me, |
| do_hw_poll_read_method *read, |
| int sim_io_fd, |
| void *buf, |
| unsigned size_of_buf); |
| |
| |
| #endif |