System and method for using a hierarchical data structure to control and identify devices and represent connections between the devices
First Claim
1. A computer-implemented process for creating and using a hierarchical data structure to identify and control a plurality of devices connected to the computer including a first device physically connected to the computer and a second device physically connected to the first device, comprising the steps of:
- storing a first device object within the hierarchical data structure, the first device object identifying the first device; and
storing a second device object positioned below the first device object within the hierarchical data structure, the second device object identifying the second device;
the relative positions of first and second device objects within the hierarchical data structure representing the physical connection between the first and second devices; and
referring to the hierarchical data structure when controlling the first and second devices.
2 Assignments
0 Petitions
Accused Products
Abstract
A hierarchical data structure is created in dynamic memory that is dynamically expanded or modified during run-time operations of the computer system. Information about the devices is loaded from a definition block into the hierarchical data structure. The information is a byte stream of data that is translated and stored as hierarchical information, such as device objects, data objects, and control method objects. These objects are hierarchically nested within the hierarchical data structure. A device object identifies a corresponding device in the computer system. The hierarchy formed between device objects represents the hierarchical I/O connections within the computer system. A data object identifies configuration and hardware dependency information associated with a corresponding device. A control method object is an executable reference for controlling a corresponding device. The control method object is a sequence of pseudocode instructions interpreted by the operating system providing an abstract, extensible, and portable mechanism for precise control of a device without calling routines from the BIOS.
The hierarchical data structure is preferably used by the operating system as a communication tool and reference to identify devices, to identify configuration and power management information about devices, to provide an executable control mechanism that is abstract and extensible to control devices, and to extensibly add functionality to a device.
165 Citations
44 Claims
-
1. A computer-implemented process for creating and using a hierarchical data structure to identify and control a plurality of devices connected to the computer including a first device physically connected to the computer and a second device physically connected to the first device, comprising the steps of:
-
storing a first device object within the hierarchical data structure, the first device object identifying the first device; and storing a second device object positioned below the first device object within the hierarchical data structure, the second device object identifying the second device; the relative positions of first and second device objects within the hierarchical data structure representing the physical connection between the first and second devices; and referring to the hierarchical data structure when controlling the first and second devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system for dynamically expanding a hierarchical data structure, comprising:
-
a processor; a plurality of controllable devices functionally connected to the processor, the plurality of controllable devices comprising; a first device physically connected to the processor, and a second device physically connected to the first device; a memory storage device connected to the processor and storing the hierarchical data structure including a first device object identifying the first device and a second device object positioned below the first device object, the second device object identifying the second device and the relative positions of first and second device objects within the hierarchical data structure representing the physical connection between the first and second devices; and the processor being operative to; interrogate the first device in response to a hardware event affecting the first device, sense the second device is connected to the first device, search the hierarchical data structure for the second device object, obtain hierarchical information about the second device if the processor fails to locate the one of the hierarchically related objects that identifies the underlying device, and store the hierarchical information about the second device at an insert location within the hierarchical data structure. - View Dependent Claims (20, 21, 22)
-
-
23. A computer system for dynamically modifying a hierarchical data structure having a plurality of hierarchically related objects that identify a plurality of controllable devices within the computer system, comprising:
-
a processor; the plurality of controllable devices connected to the processor; a memory storage device connected to the processor for storing the hierarchical data structure; and the processor being operative to; sense a request to remove one of the controllable devices from the computer system, determine which of the controllable devices in the computer system are affected if the requested device is removed, set a first status attribute of any of the hierarchically related objects within the hierarchical data structure associated with the requested device, the first status attribute indicating that the requested device is not present within the computer system; and set a second status attribute of any of the hierarchically related objects within the hierarchical data structure associated with the affected devices, the second status attribute indicating that the affected devices are not present within the computer system. - View Dependent Claims (24, 25)
-
-
26. A computer-readable medium on which is stored a computer program for controlling a device within a computer system using a hierarchical data structure, the computer program comprising instructions, which when executed by a computer, perform the steps of:
-
receiving a request to control the device in a desired manner, the device having a controllable element; identifying a first control method within the hierarchical data structure corresponding to the request, the first control method being a sequence of one or more pseudocode instructions; executing the first control method by sequentially calling each of the pseudocode instructions; and accessing a representation of the controllable element of the device in response to the executing step, wherein accessing the representation of the controllable element provides control of the device. - View Dependent Claims (27, 28, 29, 30, 31)
-
-
32. A computer system for using a hierarchical data structure to provide enhanced functionality of a controllable device in the computer system, comprising:
-
a processor; the controllable device coupled to the processor; a memory storage device coupled to the processor for storing the hierarchical data structure; and the processor being operative to; identify the controllable device by reading the hierarchical data structure containing a device object, the device object corresponding to the controllable device, load a device driver into memory from the memory storage device for supporting the device object, determine if the controllable device supports additional functionality beyond the functionality supported by the device driver, and create a new device object associated with the device driver if the controllable device supports the additional functionality, wherein the new device object, in response to a call to the device driver, references the hierarchical data structure to provide the additional functionality for the controllable device. - View Dependent Claims (33, 34)
-
-
35. A method for using a hierarchical data structure to power down one of a plurality of controllable devices within a computer system having a plurality of power resources, comprising the steps of:
-
(a) selecting one of the controllable devices to power down; (b) identifying the power resources that must be on to support the selected device when powered down by reading one of a plurality of hierarchically related objects within the hierarchical data structure below a device object within the hierarchical data structure, the device object being one of the hierarchically related objects and associated with the selected device; and (c) turning off all of the power resources that are not one of the identified power resources. - View Dependent Claims (36, 37, 38, 39, 40)
-
-
41. A method for using a hierarchical data structure to turn on one of a plurality of controllable devices within a computer system having a plurality of power resources, comprising the steps of:
-
(a) selecting one of the controllable devices to turn on; (b) identifying the power resources that must be on to support the selected device by reading one of a plurality of hierarchically related objects within the hierarchical data structure below a device object within the hierarchical data structure, the device object being one of the hierarchically related objects and associated with the selected device; and (c) turning on all of the identified power resources. - View Dependent Claims (42, 43, 44)
-
Specification