diff options
author | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:34:07 +0000 |
---|---|---|
committer | Stan Shebs <shebs@codesourcery.com> | 1999-04-16 01:34:07 +0000 |
commit | 071ea11e85eb9d529cc5eb3d35f6247466a21b99 (patch) | |
tree | 5deda65b8d7b04d1f4cbc534c3206d328e1267ec /sim/common/hw-instances.h | |
parent | 1730ec6b1848f0f32154277f788fb29f88d8475b (diff) | |
download | gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.zip gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.gz gdb-071ea11e85eb9d529cc5eb3d35f6247466a21b99.tar.bz2 |
Initial creation of sourceware repository
Diffstat (limited to 'sim/common/hw-instances.h')
-rw-r--r-- | sim/common/hw-instances.h | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/sim/common/hw-instances.h b/sim/common/hw-instances.h deleted file mode 100644 index 6d27b11..0000000 --- a/sim/common/hw-instances.h +++ /dev/null @@ -1,157 +0,0 @@ -/* This file is part of the program psim. - - Copyright (C) 1994-1998, Andrew Cagney <cagney@highland.com.au> - - 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 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, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - */ - - -#ifndef HW_INSTANCES_H -#define HW_INSTANCES_H - -/* Instances: - - As with IEEE1275, a device can be opened, creating an instance. - Instances provide more abstract interfaces to the underlying - hardware. For example, the instance methods for a disk may include - code that is able to interpret file systems found on disks. Such - methods would there for allow the manipulation of files on the - disks file system. The operations would be implemented using the - basic block I/O model provided by the disk. - - This model includes methods that faciliate the creation of device - instance and (should a given device support it) standard operations - on those instances. - - */ - - -struct hw_instance; - - -typedef void (hw_finish_instance_method) - (struct hw *hw, - struct hw_instance *); - -extern void set_hw_finish_instance -(struct hw *hw, - hw_finish_instance_method *method); - - -/* construct an instance of the hardware */ - -struct hw_instance *hw_instance_create -(struct hw *hw, - struct hw_instance *parent, - const char *path, - const char *args); - -struct hw_instance *hw_instance_interceed -(struct hw_instance *parent, - const char *path, - const char *args); - -void hw_instance_delete -(struct hw_instance *instance); - - -/* methods applied to an instance of the hw */ - -typedef int (hw_instance_read_method) - (struct hw_instance *instance, - void *addr, - unsigned_cell len); - -#define hw_instance_read(instance, addr, len) \ -((instance)->to_instance_read ((instance), (addr), (len))) - -#define set_hw_instance_read(instance, method) \ -((instance)->to_instance_read = (method)) - - -typedef int (hw_instance_write_method) - (struct hw_instance *instance, - const void *addr, - unsigned_cell len); - -#define hw_instance_write(instance, addr, len) \ -((instance)->to_instance_write ((instance), (addr), (len))) - -#define set_hw_instance_write(instance, method) \ -((instance)->to_instance_write = (method)) - - -typedef int (hw_instance_seek_method) - (struct hw_instance *instance, - unsigned_cell pos_hi, - unsigned_cell pos_lo); - -#define hw_instance_seek(instance, pos_hi, pos_lo) \ -((instance)->to_instance_seek ((instance), (pos_hi), (pos_lo))); - -#define set_hw_instance_seek(instance, method) \ -((instance)->to_instance_seek = (method)) - - -int hw_instance_call_method -(struct hw_instance *instance, - const char *method, - int n_stack_args, - unsigned_cell stack_args[/*n_stack_args + 1(NULL)*/], - int n_stack_returns, - unsigned_cell stack_returns[/*n_stack_returns + 1(NULL)*/]); - - - -/* the definition of the instance */ - -#define hw_instance_hw(instance) ((instance)->hw_of_instance + 0) - -#define hw_instance_path(instance) ((instance)->path_of_instance + 0) - -#define hw_instance_args(instance) ((instance)->args_of_instance) - -#define hw_instance_data(instance) ((instance)->data_of_instance) - -#define hw_instance_system(instance) (hw_system (hw_instance_hw (instance))) - - - -/* Finally an instance of a hardware device - keep your grubby little - mits off of these internals! :-) */ - -struct hw_instance { - - void *data_of_instance; - char *args_of_instance; - char *path_of_instance; - - /* the device that owns the instance */ - struct hw *hw_of_instance; - struct hw_instance *sibling_of_instance; - - /* interposed instance */ - struct hw_instance *parent_of_instance; - struct hw_instance *child_of_instance; - - /* methods */ - hw_instance_read_method *to_instance_read; - hw_instance_write_method *to_instance_write; - hw_instance_seek_method *to_instance_seek; - -}; - -#endif |