Method and system for configuring and executing device drivers based on configuration requirements
First Claim
1. A method in a computer system for configuring a device driver from a plurality of component drivers by determining whether each of the plurality of component drivers should be included in the device driver, the method comprising the computer-implemented steps of:
- for each selected one of the plurality of component drivers,determining configuration requirements imposed by each of the component drivers that is already included in the device driver;
determining whether the selected component driver satisfies at least one of the determined configuration requirements imposed by the component drivers that are already included in the device driver; and
when the selected component driver satisfies at least one of the determined configuration requirements, including the selected component driver in the device driver.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for configuring and executing device drivers in a computer system. In a preferred embodiment, a device driver comprises a plurality of component drivers. Each component driver performs a function that may be used in accessing a device. The component drivers of a device driver are ordered from a top layer to a bottom layer. When accessing a device, the top layer component driver of the device driver is first invoked. Each component driver performs its function and invokes the next lower layer component driver to the bottom layer component driver, which interacts directly with the device. An operating system dynamically configures the device drivers at computer system startup. The operating system invokes each of a plurality of component drivers to determine based on device-specific information and configuration requirements of previously included component drivers whether the component driver should be selected to be included as a layer in a particular device driver. If selected, the component driver stores a reference to itself in a call-down table for the device driver and stores its configuration requirements with the unsatisfied configuration requirements of previously included component drivers. When accessing the device, if all configuration requirements for the device driver have been satisfied, the operating system first invokes the component driver referenced by the top reference in the call-down table. Each component driver in turn invokes the component driver referenced by the next lower reference in the call-down table.
-
Citations
41 Claims
-
1. A method in a computer system for configuring a device driver from a plurality of component drivers by determining whether each of the plurality of component drivers should be included in the device driver, the method comprising the computer-implemented steps of:
for each selected one of the plurality of component drivers, determining configuration requirements imposed by each of the component drivers that is already included in the device driver; determining whether the selected component driver satisfies at least one of the determined configuration requirements imposed by the component drivers that are already included in the device driver; and when the selected component driver satisfies at least one of the determined configuration requirements, including the selected component driver in the device driver. - View Dependent Claims (2, 3, 4, 10, 11)
-
5. A method in a computer system for configuring and executing a device driver, the device driver being configured from a plurality of component drivers by determining whether each of the plurality of component drivers should be included in the device driver, each of the plurality of component drivers performing a function, the method comprising the computer-implemented steps of:
-
for each selected one of the plurality of component drivers, determining configuration requirements imposed by each of the component drivers that is already included in the device driver; determining whether the selected component driver satisfies at least one of the determined configuration requirements imposed by the component drivers that are already included in the device driver; and when the selected component driver satisfies at least one of the determined configuration requirements, including the selected component driver in the device driver; and invoking and performing the function of each component driver that is part of the device driver. - View Dependent Claims (6, 7, 8, 12, 13)
-
-
9. A computer system for configuring a device driver from a plurality of component drivers by determining whether each selected one of the plurality of component drivers should be included in the device driver, the computer system comprising:
-
a plurality of component drivers; a component driver selection routine for performing the following steps for each selected component driver; determining configuration requirements imposed by each of the component drivers that is already included in the device driver; determining whether the selected component driver satisfies one of the determined configuration requirements; and when the selected component driver satisfies at least one of the determined configuration requirements, including the component driver in the device driver.
-
-
14. A method in a computer system for configuring a device driver from a plurality of component drivers by determining whether each of the plurality of component drivers should be included in the device driver, the device driver corresponding to a device, the method comprising the computer-implemented steps of:
-
determining a type of the device; and for each selected one of the plurality of component drivers, determining configuration requirements imposed by each of the component drivers that is already included in the device driver and not satisfied by any other of the component drivers that are already included in the device driver; determining whether the selected component driver should be included in the device driver based on the determined type of the device and the determined configuration requirements; and including the selected component driver in the device driver when the selected component driver relates to the determined type of the device or when the selected component driver satisfies any of the determined configuration requirements. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A method in a computer system for executing a device driver, the device driver being configured from a plurality of component drivers, the component drivers imposing configuration requirements, each of the plurality of component drivers performing a function, at least one component driver being included in the device driver, the method comprising the computer-implemented steps of:
-
determining whether the configuration requirements imposed by each component driver included in the device driver have been satisfied; and when the configuration requirements have been satisfied, invoking and performing the function of each of the component drivers that is included in the device driver.
-
-
21. A method in a computer system for executing a device driver, the device driver being configured from a plurality of component drivers, the component drivers imposing configuration requirements, each of the plurality of component drivers performing a function, at least two component drivers being part of the device driver, the component drivers comprising layers in the device driver, a first of the component drivers that is included in the device driver comprising a bottom layer, each additional one of the component drivers that is included in the device driver comprising a higher layer, and a last of the component drivers that is included in the device driver comprising a top layer, the method comprising the computer-implemented steps of:
-
determining whether the configuration requirements imposed by each of the component drivers that is included in the device driver have been satisfied; and when the configuration requirements have been satisfied, for each given one of component drivers that is included in the device driver starting with the component driver at the top layer of the device driver, invoking the given component driver; and performing the function of the given component driver. - View Dependent Claims (22)
-
-
23. A method in a computer system for configuring and executing a device driver, the device driver being configured from a plurality of component drivers by determining whether each of the plurality of component drivers should be included in the device driver, each of the plurality of component drivers performing a function, the device driver corresponding to a device, the method comprising the computer-implemented steps of:
-
determining a type of the device; for each selected one of the plurality of component drivers, determining configuration requirements imposed by each of the component drivers that is already included in the device driver and not satisfied by any other of the component drivers that are already included in the device driver; determining whether the selected component driver should be included in the device driver based on the determined type of the device and the determined configuration requirements; and including the selected component driver in the device driver when the selected component driver relates to the determined type of the device or when the selected component driver satisfies any of the determined configuration requirements; determining whether the configuration requirements imposed by each of the component drivers that is included in the device driver have been satisfied; and when the configuration requirements have been satisfied, invoking and performing the function of each of the component drivers that is included in the device driver. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer system comprising:
-
a device; a device driver for the device; a plurality of component drivers tier possible incorporation into the device driver; and a component driver selection routine for determining whether each selected one of the component drivers should be made part of the device driver, said routine performing the steps of; determining the type of the device; determining configuration requirements imposed by each of the component drivers that is already included in the device driver and not satisfied by any other of the component drivers that are already included in the device driver; determining whether the selected component driver should be included in the device driver based on the determined type of the device and the determined configuration requirements; and including the selected component driver in the device driver when the selected component driver relates to the determined type of the device or when the selected component driver satisfies any of the determined configuration requirements. - View Dependent Claims (32)
-
-
33. A computer system for executing a device driver, the device driver being configured from a plurality of component drivers, the component drivers imposing configuration requirements, each of the plurality of component drivers performing a function, the system comprising:
-
at least one of the component drivers being included in the device driver for performing the component driver function; and an input-output system for; determining whether the configuration requirements imposed by each of the component drivers that is included in the device driver have been satisfied; and when the configuration requirements have been satisfied, for each given one of the component drivers that is included in the device driver, invoking the given component driver.
-
-
34. A method in a computer system for configuring a computer module from a plurality of component routines by determining whether each of the plurality of component routines should be included in the computer module, the method comprising the computer-implemented steps of:
for each selected one of the plurality of component routines, determining configuration requirements imposed by each of the component routines that is already included in the computer module; determining whether the selected component routine satisfies a determined configuration requirement; and when the selected component routine satisfies one of the determined configuration requirements, including the component routine in the computer module. - View Dependent Claims (35, 36, 37)
-
38. A method in a computer system for configuring and executing a computer program, the computer program being configured from a plurality of component programs by determining whether each of the plurality of component programs should be included in the computer program, each of the plurality of component programs performing a function, the method comprising the computer-implemented steps of:
-
for each selected one of the plurality of component programs, determining configuration requirements imposed by each of the component programs that is already included in the computer program; determining whether the selected component program satisfies any of the determined configuration requirements; and when the selected component program satisfies at least one of the determined configuration requirements, including the selected component program in the computer program; and invoking and performing the function of each selected component program that are included in the computer program. - View Dependent Claims (39, 40)
-
-
41. A computer system for configuring a computer module from a plurality of component routines by determining whether each of the plurality of component routines should be included in the computer module, the computer system comprising:
-
a plurality of component routines; a component routine selector for performing the following steps for each of selected one of the component routines; determining configuration requirements imposed by each of the component routines that is already included in the computer module; determining whether the selected component routine satisfies at least one of the determined configuration requirements; and when the selected component routine satisfies one of the determined configuration requirements, including the selected component routine in the computer module.
-
Specification