diff options
Diffstat (limited to 'sim/common/hw-properties.h')
-rw-r--r-- | sim/common/hw-properties.h | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/sim/common/hw-properties.h b/sim/common/hw-properties.h deleted file mode 100644 index 198878fb06b..00000000000 --- a/sim/common/hw-properties.h +++ /dev/null @@ -1,244 +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_PROPERTIES_H -#define HW_PROPERTIES_H - -/* The following are valid property types. The property `array' is - for generic untyped data. */ - -typedef enum { - array_property, - boolean_property, -#if 0 - ihandle_property, /*runtime*/ -#endif - integer_property, - range_array_property, - reg_array_property, - string_property, - string_array_property, -} hw_property_type; - -struct hw_property { - struct hw *owner; - const char *name; - hw_property_type type; - unsigned sizeof_array; - const void *array; - const struct hw_property *original; - object_disposition disposition; -}; - -#define hw_property_owner(p) ((p)->owner + 0) -#define hw_property_name(p) ((p)->name + 0) -#define hw_property_type(p) ((p)->type + 0) -#define hw_property_array(p) ((p)->array + 0) -#define hw_property_sizeof_array(p) ((p)->sizeof_array + 0) -#define hw_property_original(p) ((p)->original + 0) -#define hw_property_disposition(p) ((p)->disposition + 0) - - -/* Find/iterate over properites attached to a device. - - To iterate over all properties attached to a device, call - hw_find_property (.., NULL) and then hw_property_next. */ - -const struct hw_property *hw_find_property -(struct hw *me, - const char *property); - -const struct hw_property *hw_next_property -(const struct hw_property *previous); - - -/* Manipulate the properties belonging to a given device. - - HW_ADD_* will, if the property is not already present, add a - property to the device. Adding a property to a device after it has - been created is a checked run-time error (use HW_SET_*). - - HW_SET_* will always update (or create) the property so that it has - the specified value. Changing the type of a property is a checked - run-time error. - - FIND returns the specified properties value. It is a checked - runtime error to either request a nonexistant property or to - request a property using the wrong type. Code locating a property - should first check its type (using hw_find_property above) and then - obtain its value using the below. - - Naming convention: - - void hw_add_<type>_property(struct hw *, const char *, <type>) - void hw_add_*_array_property(struct hw *, const char *, const <type>*, int) - void hw_set_*_property(struct hw *, const char *, <type>) - void hw_set_*_array_property(struct hw *, const char *, const <type>*, int) - <type> hw_find_*_property(struct hw *, const char *) - int hw_find_*_array_property(struct hw *, const char *, int, <type>*) - - */ - - -void hw_add_array_property -(struct hw *me, - const char *property, - const void *array, - int sizeof_array); - -void hw_set_array_property -(struct hw *me, - const char *property, - const void *array, - int sizeof_array); - -const struct hw_property *hw_find_array_property -(struct hw *me, - const char *property); - - - -void hw_add_boolean_property -(struct hw *me, - const char *property, - int bool); - -int hw_find_boolean_property -(struct hw *me, - const char *property); - - - -#if 0 -typedef struct _ihandle_runtime_property_spec { - const char *full_path; -} ihandle_runtime_property_spec; - -void hw_add_ihandle_runtime_property -(struct hw *me, - const char *property, - const ihandle_runtime_property_spec *ihandle); - -void hw_find_ihandle_runtime_property -(struct hw *me, - const char *property, - ihandle_runtime_property_spec *ihandle); - -void hw_set_ihandle_property -(struct hw *me, - const char *property, - hw_instance *ihandle); - -hw_instance * hw_find_ihandle_property -(struct hw *me, - const char *property); -#endif - - -void hw_add_integer_property -(struct hw *me, - const char *property, - signed_cell integer); - -signed_cell hw_find_integer_property -(struct hw *me, - const char *property); - -int hw_find_integer_array_property -(struct hw *me, - const char *property, - unsigned index, - signed_cell *integer); - - - -typedef struct _range_property_spec { - hw_unit child_address; - hw_unit parent_address; - hw_unit size; -} range_property_spec; - -void hw_add_range_array_property -(struct hw *me, - const char *property, - const range_property_spec *ranges, - unsigned nr_ranges); - -int hw_find_range_array_property -(struct hw *me, - const char *property, - unsigned index, - range_property_spec *range); - - - -typedef struct _reg_property_spec { - hw_unit address; - hw_unit size; -} reg_property_spec; - -void hw_add_reg_array_property -(struct hw *me, - const char *property, - const reg_property_spec *reg, - unsigned nr_regs); - -int hw_find_reg_array_property -(struct hw *me, - const char *property, - unsigned index, - reg_property_spec *reg); - - - -void hw_add_string_property -(struct hw *me, - const char *property, - const char *string); - -const char *hw_find_string_property -(struct hw *me, - const char *property); - - - -typedef const char *string_property_spec; - -void hw_add_string_array_property -(struct hw *me, - const char *property, - const string_property_spec *strings, - unsigned nr_strings); - -int hw_find_string_array_property -(struct hw *me, - const char *property, - unsigned index, - string_property_spec *string); - - - -void hw_add_duplicate_property -(struct hw *me, - const char *property, - const struct hw_property *original); - -#endif |