From 48f83b1a2e0a034c1b28a72c41c85a27a3a01266 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 25 May 1998 11:06:29 +0000 Subject: Make hw-main.h the main header file for H/W devices. Like sim-main.h Update dv-*.c Replace *_callback with more correct. *_method. Update dv-*.c --- sim/common/hw-main.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 sim/common/hw-main.h (limited to 'sim/common/hw-main.h') diff --git a/sim/common/hw-main.h b/sim/common/hw-main.h new file mode 100644 index 00000000000..96b404c48c2 --- /dev/null +++ b/sim/common/hw-main.h @@ -0,0 +1,73 @@ +/* Common hardware header file. + Copyright (C) 1998 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 2, 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, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + + +#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 -- cgit v1.2.1