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-handles.c | |
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-handles.c')
-rw-r--r-- | sim/common/hw-handles.c | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/sim/common/hw-handles.c b/sim/common/hw-handles.c deleted file mode 100644 index a62c015..0000000 --- a/sim/common/hw-handles.c +++ /dev/null @@ -1,237 +0,0 @@ -/* This file is part of the program psim. - - Copyright (C) 1994-1995,1997-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. - - */ - - -#include "hw-main.h" -#include "hw-base.h" - - -struct hw_handle_mapping { - cell_word external; - struct hw *phandle; - struct hw_instance *ihandle; - struct hw_handle_mapping *next; -}; - - -struct hw_handle_data { - int nr_mappings; - struct hw_handle_mapping *mappings; -}; - -void -create_hw_handle_data (struct hw *hw) -{ - if (hw_parent (hw) == NULL) - { - hw->handles_of_hw = HW_ZALLOC (hw, struct hw_handle_data); - } - else - { - hw->handles_of_hw = hw_root (hw)->handles_of_hw; - } -} - -void -delete_hw_handle_data (struct hw *hw) -{ - /* NULL */ -} - - - -#if 0 -void -hw_handle_init (struct hw *hw) -{ - struct hw_handle_mapping *current_map = db->mappings; - if (current_map != NULL) - { - db->nr_mappings = db->mappings->external; - /* verify that the mappings that were not removed are in - sequence down to nr 1 */ - while (current_map->next != NULL) - { - if (current_map->external != current_map->next->external + 1) - error ("hw_handle: hw_handle database possibly corrupt"); - current_map = current_map->next; - } - ASSERT (current_map->next == NULL); - if (current_map->external != 1) - error ("hw_handle: hw_handle database possibly corrupt"); - } - else - { - db->nr_mappings = 0; - } -} -#endif - - -struct hw_instance * -hw_handle_ihandle2 (struct hw *hw, - cell_word external) -{ - struct hw_handle_data *db = hw->handles_of_hw; - struct hw_handle_mapping *current_map = db->mappings; - while (current_map != NULL) - { - if (current_map->external == external) - return current_map->ihandle; - current_map = current_map->next; - } - return (void*)0; -} - - -struct hw * -hw_handle_phandle2 (struct hw *hw, - cell_word external) -{ - struct hw_handle_data *db = hw->handles_of_hw; - struct hw_handle_mapping *current_map = db->mappings; - while (current_map != NULL) - { - if (current_map->external == external) - return current_map->phandle; - current_map = current_map->next; - } - return (void*)0; -} - - -cell_word -hw_handle_2ihandle (struct hw *hw, - struct hw_instance *internal) -{ - struct hw_handle_data *db = hw->handles_of_hw; - struct hw_handle_mapping *current_map = db->mappings; - while (current_map != NULL) - { - if (current_map->ihandle == internal) - return current_map->external; - current_map = current_map->next; - } - return 0; -} - - -cell_word -hw_handle_2phandle (struct hw *hw, - struct hw *internal) -{ - struct hw_handle_data *db = hw->handles_of_hw; - struct hw_handle_mapping *current_map = db->mappings; - while (current_map != NULL) - { - if (current_map->phandle == internal) - return current_map->external; - current_map = current_map->next; - } - return 0; -} - - -void -hw_handle_add_ihandle (struct hw *hw, - struct hw_instance *internal) -{ - struct hw_handle_data *db = hw->handles_of_hw; - if (hw_handle_2ihandle (hw, internal) != NULL) - { - hw_abort (hw, "attempting to add an ihandle already in the data base"); - } - else - { - /* insert at the front making things in decending order */ - struct hw_handle_mapping *new_map = ZALLOC (struct hw_handle_mapping); - new_map->next = db->mappings; - new_map->ihandle = internal; - db->nr_mappings += 1; - new_map->external = db->nr_mappings; - db->mappings = new_map; - } -} - - -void -hw_handle_add_phandle (struct hw *hw, - struct hw *internal) -{ - struct hw_handle_data *db = hw->handles_of_hw; - if (hw_handle_2phandle (hw, internal) != NULL) - { - hw_abort (hw, "attempting to add a phandle already in the data base"); - } - else - { - /* insert at the front making things in decending order */ - struct hw_handle_mapping *new_map = ZALLOC (struct hw_handle_mapping); - new_map->next = db->mappings; - new_map->phandle = internal; - db->nr_mappings += 1; - new_map->external = db->nr_mappings; - db->mappings = new_map; - } -} - - -void -hw_handle_remove_ihandle (struct hw *hw, - struct hw_instance *internal) -{ - struct hw_handle_data *db = hw->handles_of_hw; - struct hw_handle_mapping **current_map = &db->mappings; - while (*current_map != NULL) - { - if ((*current_map)->ihandle == internal) - { - struct hw_handle_mapping *delete = *current_map; - *current_map = delete->next; - zfree (delete); - return; - } - current_map = &(*current_map)->next; - } - hw_abort (hw, "attempt to remove nonexistant ihandle"); -} - - -void -hw_handle_remove_phandle (struct hw *hw, - struct hw *internal) -{ - struct hw_handle_data *db = hw->handles_of_hw; - struct hw_handle_mapping **current_map = &db->mappings; - while (*current_map != NULL) - { - if ((*current_map)->phandle == internal) - { - struct hw_handle_mapping *delete = *current_map; - *current_map = delete->next; - zfree (delete); - return; - } - current_map = &(*current_map)->next; - } - hw_abort (hw, "attempt to remove nonexistant phandle"); -} - - |