Computer architecture utilizing layered device drivers
First Claim
1. A method for dynamically adding a device driver into a layered stack of device drivers in a computer system comprising:
- responsive to a parameter indicating at least one device driver in the layered stack initiates I/O, suspending I/O operations for the layered stack;
during said suspension of I/O operations for the layered stack;
unbinding an upper driver in the stack from a lower driver in the stack;
binding the device driver to the lower driver to form a layered device; and
binding the upper driver to the layered device; and
thereafter, restarting I/O operations for the layered stack.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer storage architecture utilizing layered device drivers enables a user to create and install a device driver into a computer. The device driver is installed into the storage unit through a registration process. In order to permit the user to specify a device driver stack for the device driver and specify the relative position of the device driver within the device driver stack, a novel layered device driver registration system that is separate from a operating system device driver registration system is utilized. The layered device driver registration system enables the user to install one or more device drivers and to specify the placement of each device driver relative to the other device drivers in various device driver stacks. The layered device driver registration system allows a device driver to be dynamically inserted into or removed from a particular device driver stack.
38 Citations
8 Claims
-
1. A method for dynamically adding a device driver into a layered stack of device drivers in a computer system comprising:
-
responsive to a parameter indicating at least one device driver in the layered stack initiates I/O, suspending I/O operations for the layered stack;
during said suspension of I/O operations for the layered stack;
unbinding an upper driver in the stack from a lower driver in the stack;
binding the device driver to the lower driver to form a layered device; and
binding the upper driver to the layered device; and
thereafter, restarting I/O operations for the layered stack. - View Dependent Claims (2, 3)
-
-
4. A method for dynamically removing a device driver from a layered stack in a computer system comprising:
-
responsive to a parameter indicating at least one device driver in the layered stack initiates I/O, suspending I/O operations for the layered stack;
during said suspension of I/O operations for the layered stack;
unbinding an upper driver in the stack from the device driver;
unbinding the device driver from a lower driver; and
binding the upper driver to the lower driver; and
thereafter, restarting I/O operations for the layered stack. - View Dependent Claims (5, 6)
-
-
7. A computer program product, for use on a computer system, for managing a layered stack of device drivers, the computer program product comprising:
-
program code for determining whether at least one device driver in the layer stack initiates I/O, and if so, suspending I/O operations for the layered stack;
program code, operational upon suspension of I/O operations for the layered stack, for unbinding an upper driver in the stack from a lower driver in the stack;
program code for binding the device driver to the lower driver to form a layered device;
program code for binding the upper driver to the layered device; and
program code, operational upon said binding of the upper driver to the layered device, for restarting I/O operations for the layered stack.
-
-
8. A computer program product, for use on a computer system, for managing a layered stack of device drivers, the computer program product comprising:
-
program code for determining whether at least one device driver in the layered stack initiates I/O, and if so, suspending I/O operations for the layered stack;
program code, operational upon suspension of I/O operations for the layered stack, for unbinding an upper driver in the stack from the device driver;
program code for unbinding the device driver from a lower driver;
program code for binding the upper driver to the lower driver; and
program code, operational upon said binding of the upper driver to the lower driver, for restarting I/O operations for the layered stack.
-
Specification