aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/hw_register.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1999-04-16 01:34:07 +0000
committerStan Shebs <shebs@codesourcery.com>1999-04-16 01:34:07 +0000
commit071ea11e85eb9d529cc5eb3d35f6247466a21b99 (patch)
tree5deda65b8d7b04d1f4cbc534c3206d328e1267ec /sim/ppc/hw_register.c
parent1730ec6b1848f0f32154277f788fb29f88d8475b (diff)
downloadgdb-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.c125
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, &register_callbacks },
- { NULL },
-};
-
-#endif _HW_REGISTER_C_