PERFORCE change 73513 for review
Juli Mallett
jmallett at FreeBSD.org
Sat Mar 19 01:59:09 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=73513
Change 73513 by jmallett at jmallett_windward on 2005/03/19 09:59:07
Hierarchical attachment.
Affected files ...
.. //depot/projects/mips/sys/dev/arcs/arcs_cpu.c#2 edit
.. //depot/projects/mips/sys/dev/arcs/arcs_dev.c#4 edit
.. //depot/projects/mips/sys/dev/arcs/arcs_fpu.c#2 edit
.. //depot/projects/mips/sys/dev/arcs/arcs_system.c#2 edit
Differences ...
==== //depot/projects/mips/sys/dev/arcs/arcs_cpu.c#2 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $P4: //depot/projects/mips/sys/dev/arcs/arcs_cpu.c#1 $
+ * $P4: //depot/projects/mips/sys/dev/arcs/arcs_cpu.c#2 $
*/
#include <sys/param.h>
@@ -35,6 +35,7 @@
#include <sys/limits.h>
#include <dev/arcs/arcs.h>
+#include <dev/arcs/arcs_dev.h>
#include <machine/bus.h>
@@ -60,12 +61,12 @@
static devclass_t arcs_cpu_devclass;
-DRIVER_MODULE(arcs_cpu, arcs, arcs_cpu_driver, arcs_cpu_devclass, 0, 0);
+DRIVER_MODULE(arcs_cpu, arcs_system, arcs_cpu_driver, arcs_cpu_devclass, 0, 0);
static int
arcs_cpu_probe(device_t dev)
{
- struct ARCS_Component *component;
+ struct ARCS_Component *component, *child;
component = device_get_softc(dev);
if (component == NULL)
@@ -73,5 +74,9 @@
device_set_desc(dev, arcs_component_identifier(component));
device_printf(dev, "version %d revision %d\n",
component->Version, component->Revision);
+
+ child = ARCS_GetChild(component);
+ if (child != NULL)
+ arcs_configure(dev, child);
return (0);
}
==== //depot/projects/mips/sys/dev/arcs/arcs_dev.c#4 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $P4: //depot/projects/mips/sys/dev/arcs/arcs_dev.c#3 $
+ * $P4: //depot/projects/mips/sys/dev/arcs/arcs_dev.c#4 $
*/
#include <sys/param.h>
@@ -35,6 +35,7 @@
#include <sys/limits.h>
#include <dev/arcs/arcs.h>
+#include <dev/arcs/arcs_dev.h>
#include <machine/bus.h>
@@ -62,89 +63,82 @@
DRIVER_MODULE(arcs, mainbus, arcs_driver, arcs_devclass, 0, 0);
-static void
+void
arcs_configure(device_t parent, struct ARCS_Component *this)
{
struct ARCS_Component *c;
device_t me;
+ const char *device;
+ int unit;
- me = parent;
- if (this != NULL) {
- const char *device;
- int unit;
+ device = NULL;
+ unit = this->Key;
- device = NULL;
- unit = this->Key;
-
- switch (this->Class) {
- case ARCS_Component_Class_SystemClass:
- device = "arcs_system";
- unit = 0;
+ switch (this->Class) {
+ case ARCS_Component_Class_SystemClass:
+ device = "arcs_system";
+ unit = 0;
+ break;
+ case ARCS_Component_Class_ProcessorClass:
+ switch (this->Type) {
+ case ARCS_Component_Type_Processor_CPU:
+ device = "arcs_cpu";
break;
- case ARCS_Component_Class_ProcessorClass:
- switch (this->Type) {
- case ARCS_Component_Type_Processor_CPU:
- device = "arcs_cpu";
- break;
- case ARCS_Component_Type_Processor_FPU:
- device = "arcs_fpu";
- break;
- default:
- device_printf(parent,
- "Unknown ARCS CPU %d\n",
- this->Class);
- }
- break;
- case ARCS_Component_Class_CacheClass:
- /* Not yet. */
- break;
- case ARCS_Component_Class_MemoryClass:
- /* Not yet. */
- break;
- case ARCS_Component_Class_AdapterClass:
- /* Not yet. */
+ case ARCS_Component_Type_Processor_FPU:
+ device = "arcs_fpu";
break;
- case ARCS_Component_Class_ControllerClass:
- /* Not yet. */
- break;
- case ARCS_Component_Class_PeripheralClass:
- /* Not yet. */
- break;
default:
- device_printf(parent,
- "Unknown ARCS class %d\n",
+ device_printf(parent, "Unknown ARCS CPU %d\n",
this->Class);
}
- if (device != NULL) {
- me = device_add_child(parent, device, unit);
- if (me != NULL) {
- device_set_softc(me, this);
- }
- } else {
- device_printf(parent,
- "Not attaching ARCS device "
- "class %d, type %d, #%d: %s\n",
- this->Class, this->Type,
- this->Key,
- arcs_component_identifier(this));
- }
- c = ARCS_GetPeer(this);
- if (c != NULL)
- arcs_configure(parent, c);
+ break;
+ case ARCS_Component_Class_CacheClass:
+ /* Not yet. */
+ break;
+ case ARCS_Component_Class_MemoryClass:
+ /* Not yet. */
+ break;
+ case ARCS_Component_Class_AdapterClass:
+ /* Not yet. */
+ break;
+ case ARCS_Component_Class_ControllerClass:
+ /* Not yet. */
+ break;
+ case ARCS_Component_Class_PeripheralClass:
+ /* Not yet. */
+ break;
+ default:
+ device_printf(parent, "Unknown ARCS class %d\n",
+ this->Class);
+ }
+ if (device != NULL) {
+ device_printf(parent, "attaching %s\n", device);
+ me = device_add_child(parent, device, unit);
+ if (me != NULL)
+ device_set_softc(me, this);
+ } else {
+ device_printf(parent,
+ "Not attaching ARCS device "
+ "class %d, type %d, #%d: %s\n",
+ this->Class, this->Type, this->Key,
+ arcs_component_identifier(this));
}
-
- c = ARCS_GetChild(this);
+ c = ARCS_GetPeer(this);
if (c != NULL)
- arcs_configure(me, c);
+ arcs_configure(parent, c);
}
static int
arcs_probe(device_t dev)
{
+ struct ARCS_Component *root;
+
if (device_get_unit(dev) != 0)
panic("can't have more than one ARCS");
device_set_desc(dev, "ARCS Component Tree");
- arcs_configure(dev, NULL);
+ root = ARCS_GetChild(NULL);
+ if (root != NULL)
+ arcs_configure(dev, root);
return (0);
}
==== //depot/projects/mips/sys/dev/arcs/arcs_fpu.c#2 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $P4: //depot/projects/mips/sys/dev/arcs/arcs_fpu.c#1 $
+ * $P4: //depot/projects/mips/sys/dev/arcs/arcs_fpu.c#2 $
*/
#include <sys/param.h>
@@ -35,6 +35,7 @@
#include <sys/limits.h>
#include <dev/arcs/arcs.h>
+#include <dev/arcs/arcs_dev.h>
#include <machine/bus.h>
@@ -60,12 +61,12 @@
static devclass_t arcs_fpu_devclass;
-DRIVER_MODULE(arcs_fpu, arcs, arcs_fpu_driver, arcs_fpu_devclass, 0, 0);
+DRIVER_MODULE(arcs_fpu, arcs_cpu, arcs_fpu_driver, arcs_fpu_devclass, 0, 0);
static int
arcs_fpu_probe(device_t dev)
{
- struct ARCS_Component *component;
+ struct ARCS_Component *component, *child;
component = device_get_softc(dev);
if (component == NULL)
@@ -73,5 +74,9 @@
device_set_desc(dev, arcs_component_identifier(component));
device_printf(dev, "version %d revision %d\n",
component->Version, component->Revision);
+
+ child = ARCS_GetChild(component);
+ if (child != NULL)
+ arcs_configure(dev, child);
return (0);
}
==== //depot/projects/mips/sys/dev/arcs/arcs_system.c#2 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $P4: //depot/projects/mips/sys/dev/arcs/arcs_system.c#1 $
+ * $P4: //depot/projects/mips/sys/dev/arcs/arcs_system.c#2 $
*/
#include <sys/param.h>
@@ -35,6 +35,7 @@
#include <sys/limits.h>
#include <dev/arcs/arcs.h>
+#include <dev/arcs/arcs_dev.h>
#include <machine/bus.h>
@@ -65,7 +66,7 @@
static int
arcs_system_probe(device_t dev)
{
- struct ARCS_Component *component;
+ struct ARCS_Component *component, *child;
component = device_get_softc(dev);
if (component == NULL)
@@ -73,6 +74,11 @@
device_set_desc(dev, arcs_component_identifier(component));
device_printf(dev, "version %d revision %d\n",
component->Version, component->Revision);
+
+ child = ARCS_GetChild(component);
+ if (child != NULL)
+ arcs_configure(dev, child);
+
/*
* Attach busses for this system.
*/
More information about the p4-projects
mailing list