System and methods for generating and managing a virtual device
Abstract
Embodiments of the present disclosure may be configured to permit development and validation of a device driver or a device application program by using improved virtual devices. Such improved virtual devices may facilitate driver development without use of physical devices or hardware prototypes. In various embodiments, advanced validation of a device-driver combination may be permitted that would be difficult to achieve even with a physical device. Certain embodiments also may detect inconsistencies between virtual and physical devices, which may be used to improve drivers and device application programs and increase compatibility of such drivers and device application programs with physical devices.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method, comprising:
obtaining, by a computer, a device trace associated with a physical device; symbolically executing, by the computer based on the device trace, a virtual device configured to function as the physical device without access to the physical device; and assessing, by the computer, whether one or more observable states of the virtual device comports with the device trace.
2 . The computer-implemented method of claim 1 , wherein the device trace comprises a sequence of driver requests issued to the physical device.
3 . The computer-implemented method of claim 2 , wherein the device trace comprises a sequence of partial states of the physical device that correspond to the sequence of driver requests.
4 . The computer-implemented method of claim 3 , wherein a partial state from the sequence of partial states comprises a first set of variables that are assigned concrete values and a second set of variables that are assigned symbolic values.
5 . The computer-implemented method of claim 4 , wherein the second set of variables corresponds to registers inaccessible from outside of the physical device.
6 . The computer-implemented method of claim 3 , wherein the assessment comprises determining, by the computer, whether there is an intersection between a particular partial state from the sequence of partial states of the physical device and any symbolic state of the virtual device resulting from provision, to the virtual device, of a driver request from the sequence of driver requests that corresponds to the particular partial state.
7 . The computer-implemented method of claim 1 , further comprising synchronizing, by the computer, the virtual device with the physical device responsive to a determination, based on the assessment, that an inconsistency exists between the virtual device and the physical device.
8 . The computer-implemented method of claim 7 , wherein the synchronization comprises assigning, by the computer, a state of the physical device to a state of the virtual device.
9 . The computer-implemented method of claim 1 , wherein the obtaining comprises selectively capturing, by the computer or another computer for inclusion in the device trace, register values of the physical device based on a criterion.
10 . The computer-implemented method of claim 9 , wherein the criterion comprises registers of the physical device that are interface registers.
11 . The computer-implemented method of claim 9 , wherein the criterion comprises a user selection.
12 . The computer-implemented method of claim 1 , further comprising:
concretizing, by the computer, the virtual device to produce a concretized virtual device; executing, by the computer, the concretized virtual device; and assessing, by the computer, whether one or more observable states of the concretized virtual device comport with the device trace associated with the physical device.
13 . The computer-implemented method of claim 12 , wherein symbolic execution of the virtual device comprises symbolic execution of the virtual device based on driver requests generated by the assessment of whether the one or more observable states of the concretized virtual device comports with the device trace associated with the physical device.
14 . The computer-implemented method of claim 13 , wherein the generated driver requests are driver requests that revealed an inconsistency between the virtual device and the physical device.
15 . The computer-implemented method of claim 12 , wherein the concretizing comprises directly assigning random concrete values to symbolic variables in the virtual device to produce the concretized virtual device.
16 . At least one computer-readable medium comprising instructions that, in response to execution of the instructions by computing device, enable the computing device to:
obtain a device trace associated with a physical device; symbolically execute, based on the device trace, a virtual device configured to function as the physical device without access to the physical device; and assess whether one or more observable states of the virtual device comports with the device trace.
17 . The at least one computer-readable medium of claim 16 , wherein the device trace comprises a sequence of driver requests issued to the physical device.
18 . The at least one computer-readable medium of claim 17 , wherein the device trace comprises a sequence of partial states of the physical device that correspond to the sequence of driver requests.
19 . The at least one computer-readable medium of claim 18 , wherein a partial state from the sequence of partial states comprises a first set of variables that are assigned concrete values and a second set of variables that are assigned symbolic values.
20 . The at least one computer-readable medium of claim 19 , wherein the second set of variables corresponds to registers inaccessible from outside of the physical device.
21 . The at least one computer-readable medium of claim 18 , wherein the assessment comprises determining, by the computer, whether there is an intersection between a particular partial state from the sequence of partial states of the physical device and any symbolic state of the virtual device resulting from provision, to the virtual device, of a driver request from the sequence of driver requests that corresponds to the particular partial state.
22 . The at least one computer-readable medium of claim 16 , further comprising instructions that, in response to execution by computing device, enable the computing device to synchronize the virtual device with the physical device responsive to a determination, based on the assessment, that an inconsistency exists between the virtual device and the physical device.
23 . The at least one computer-readable medium of claim 22 , wherein the synchronization comprises assigning, by the computer, a state of the physical device to a state of the virtual device.
24 . The at least one computer-readable medium of claim 16 , wherein the obtaining comprises selectively capturing, by the computer or another computer for inclusion in the device trace, register values of the physical device based on a criterion.
25 . The at least one computer-readable medium of claim 24 , wherein the criterion comprises registers of the physical device that are interface registers.
26 . The at least one computer-readable medium of claim 24 , wherein the criterion comprises a user selection.
27 . The at least one computer-readable medium of claim 16 , further comprising instructions that, in response to execution by the computing device, enable the computing device to:
concretize the virtual device to produce a concretized virtual device; execute the concretized virtual device; and assess whether one or more observable states of the concretized virtual device comport with the device trace associated with the physical device.
28 . The at least one computer-readable medium of claim 27 , wherein symbolic execution of the virtual device comprises symbolic execution of the virtual device based on driver requests generated by the assessment of whether the one or more observable states of the concretized virtual device comports with the device trace associated with the physical device.
29 . The at least one computer-readable medium of claim 28 , wherein the generated driver requests are driver requests that revealed an inconsistency between the virtual device and the physical device.
30 . The at least one computer-readable medium of claim 27 , wherein the concretizing comprises directly assigning random concrete values to symbolic variables in the virtual device to produce the concretized virtual device.Join the waitlist — get patent alerts
Track US2015355920A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.