Controlling a layered driver
First Claim
Patent Images
1. A method for controlling a layered device driver of a computer, the method comprising:
- insulating the computer from application component crashes by operating the device driver with an application component operating in user space, an interface driver component operating in kernel space, and a physical driver component operating in kernel space;
calling a driver control process running in the application driver component, wherein the application driver component operates in user space to allow use of one or more debugging tools to identify issues with the device driver in user space rather than kernel space;
identifying, from the driver control process, at least one device port; and
mapping a port memory space into a shared memory space, wherein the shared memory space is within physical primary memory of the computer, wherein the application driver component is coupled to the interface driver component operating in the kernel space, the interface driver component is coupled to a plurality of disparate physical driver components operating in the kernel space, wherein the interface driver component interfaces with the plurality of physical driver components using function pointers and having buffer management functions needed by the physical driver components allowing the disparate physical driver components having unique respective drivers to be used with same application and interface components.
9 Assignments
0 Petitions
Accused Products
Abstract
A method, for controlling a layered device driver is discussed. The device driver includes three components divided between user space and kernel space. A control process operating in user space may be used to initiate device driver processes and control a shared memory space.
25 Citations
18 Claims
-
1. A method for controlling a layered device driver of a computer, the method comprising:
-
insulating the computer from application component crashes by operating the device driver with an application component operating in user space, an interface driver component operating in kernel space, and a physical driver component operating in kernel space; calling a driver control process running in the application driver component, wherein the application driver component operates in user space to allow use of one or more debugging tools to identify issues with the device driver in user space rather than kernel space; identifying, from the driver control process, at least one device port; and mapping a port memory space into a shared memory space, wherein the shared memory space is within physical primary memory of the computer, wherein the application driver component is coupled to the interface driver component operating in the kernel space, the interface driver component is coupled to a plurality of disparate physical driver components operating in the kernel space, wherein the interface driver component interfaces with the plurality of physical driver components using function pointers and having buffer management functions needed by the physical driver components allowing the disparate physical driver components having unique respective drivers to be used with same application and interface components. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product for controlling a layered device driver, comprising a non-transitory computer readable medium having program instructions embodied therein for:
-
operating the device driver with an application component operating in user space, an interface driver component operating in kernel space, and a physical driver component operating in kernel space to insulate the computer from application component crashes; calling a driver control process running in an application driver component, wherein the application driver component operates in user space to allow use of one or more debugging tools to identify issues with the device driver in user space rather than kernel space; identifying, from the driver control processes, at least one device port of a first device; mapping a port memory space into a shared memory space; receiving a first request from an application for a first connection through the at least one device port of the first device; establishing a first transfer area within the shared memory space for the application to access; reading, by a shared memory reader running in the application driver component, first instructions written to the first transfer area by the application; transferring the first instructions to the application driver process running in the application driver component for processing; calling, by the application driver process, the interface driver component operating in kernel space; passing, by the interface driver component, the processed first instructions to a first physical driver component operating in the kernel space for the first physical driver component to manipulate the first device; receiving a second request from the application for a second connection through a device port of a second device, different from the first device; establishing a second transfer area within the shared memory space for the application to access; reading, by the shared memory reader running in the application driver component, second instructions written to the second transfer area by the application; transferring the second instructions to the application driver process for processing; calling, by the application driver process, the interface driver component; and passing, by the interface driver component, the processed second instructions to a second physical driver component operating in the kernel space for the second physical driver component to manipulate the second device, wherein the second physical driver component is different from the first physical driver component, the first physical driver component thereby being unique to the first device, and the second physical driver component thereby being unique to the second device, and further wherein the interface driver component interfaces with the first and second physical driver components using function pointers and has buffer management functions to allow the first and second physical driver components to used with different hardware components for same application and interface driver components to allow these same application and interface driver components to be used with the different hardware components having unique respective drivers.
-
-
18. A system for controlling a hardware component through a layered device driver comprising a non-transitory computer readable medium and a processor configured to:
-
insulate the processor from application component crashes by operating the device driver with an application component operating in user space, an interface driver component operating in kernel space, and a physical driver component operating in kernel space; call a driver control process running in the application driver component, wherein the application driver component operates in user space to allow use of one or more debugging tools to identify issues with the device driver in user space rather than kernel space; identify, from the driver control process, at least one device port; and map a port memory space into a shared memory space, wherein the shared memory space is within physical primary memory of the computer, wherein the application driver component is coupled to the interface driver component operating in kernel space, the interface driver component is coupled to a plurality of disparate physical driver components operating in the kernel space, wherein the interface driver component interfaces with the plurality of physical driver components using function pointers and having buffer management functions needed by the physical driver components allowing the disparate physical driver components having unique respective drivers to be used with same application and interface components.
-
Specification