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/ppc/hw_register.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/ppc/hw_register.c')
-rw-r--r-- | sim/ppc/hw_register.c | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/sim/ppc/hw_register.c b/sim/ppc/hw_register.c deleted file mode 100644 index 4c812b1..0000000 --- a/sim/ppc/hw_register.c +++ /dev/null @@ -1,125 +0,0 @@ -/* This file is part of the program psim. - - Copyright (C) 1994-1996, 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_REGISTER_C_ -#define _HW_REGISTER_C_ - -#include "device_table.h" -#include <stdlib.h> -#include "psim.h" - -/* DEVICE - - register - dummy device to initialize processor registers - - DESCRIPTION - - The properties of this device are used, during initialization, to - specify the initial value of various processor registers. The - property name specifying the register to be initialized with the - special form <cpu-nr>.<register> being used to initialize a - specific processor's register (eg 0.pc). - - Because, when the device tree is created, overriding properties are - entered into the tree before any default values, this device must - initialize registers in newest (default) to oldest (overriding) - property order. - - The actual registers (for a given target) are defined in the file - registers.c. - - This device is normally a child of the /openprom/init node. - - EXAMPLE - - Given a device tree containing the entry: - - | /openprom/init/register/pc 0xfff00cf0 - - then specifying the command line option: - - | -o '/openprom/init/register/pc 0x0' - - would override the initial value of processor zero's program - counter. The resultant device tree tree containing: - - | /openprom/init/register/0.pc 0x0 - | /openprom/init/register/pc 0xfff00cf0 - - and would be processed last to first resulting in the sequence: set - all program counters to 0xfff00cf0; set processor zero's program - counter to zero. */ - -static void -do_register_init(device *me, - const device_property *prop) -{ - psim *system = device_system(me); - if (prop != NULL) { - const char *name = prop->name; - unsigned32 value = device_find_integer_property(me, name); - int processor; - - do_register_init(me, device_next_property(prop)); - - if (strchr(name, '.') == NULL) { - processor = -1; - DTRACE(register, ("%s=0x%lx\n", name, (unsigned long)value)); - } - else { - char *end; - processor = strtoul(name, &end, 0); - ASSERT(end[0] == '.'); - name = end+1; - DTRACE(register, ("%d.%s=0x%lx\n", processor, name, - (unsigned long)value)); - } - psim_write_register(system, processor, /* all processors */ - &value, - name, - cooked_transfer); - } -} - - -static void -register_init_data_callback(device *me) -{ - const device_property *prop = device_find_property(me, NULL); - do_register_init(me, prop); -} - - -static device_callbacks const register_callbacks = { - { NULL, register_init_data_callback, }, - { NULL, }, /* address */ - { NULL, }, /* IO */ - { NULL, }, /* DMA */ - { NULL, }, /* interrupt */ - { NULL, }, /* unit */ -}; - -const device_descriptor hw_register_device_descriptor[] = { - { "register", NULL, ®ister_callbacks }, - { NULL }, -}; - -#endif _HW_REGISTER_C_ |