Computer architecture utilizing layered device drivers
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.
Claims
exact text as granted — not AI-modified1 . 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.
2 . The method of claim 1 , wherein the computer system comprises an operating system and a layered device driver registration system, and wherein the method further comprises:
registering the device driver with the operating system; and registering the device driver with the layered device driver registration system.
3 . The method of claim 2 wherein registering the device driver with the layered device driver registration system includes adding a key to a driver file maintained by the layered device driver registration system, said key including an I/O initiator parameter indicating whether the device driver initiates I/O.
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.
5 . The method of claim 4 wherein the lower driver emulates a device, the device having
a first device name and further comprising exporting the device under the first device name to the upper driver for use in the layered stack.
6 . The method of claim 4 , wherein the computer system is a computer storage system, and wherein the layered stack is a logical unit input/output stack.
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.Join the waitlist — get patent alerts
Track US2005050236A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.