Patentable/Patents/US-10970383
US-10970383

Device manager providing resource control and synchronization

PublishedApril 6, 2021
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

In an embodiment, an operating system includes a device manager that is a central repository of device information. Device drivers may communicate with the device manager over respective channels, and may request channel identifiers (Cids) to communicate with resources related to the respective devices. The device manager may provide values for resource access (or handles that the resources may use to access values). In an embodiment, the device drivers do not have the ability to allocate resources for a peripheral device. Accordingly, the security of the system may be increased. Furthermore, the resource allocation may be centrally located, simplifying the process of updating resource allocation when needed. Additionally, the device manager may delay response to requests from a given device driver until its dependencies are clear (e.g. other device drivers and hardware initializations). Thus, startup scripts may be avoided in some embodiments.

Patent Claims
23 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A non-transitory computer accessible storage medium storing a plurality of instructions that are computer-executable to: receive a request from a device driver for a resource allocated to a device in a computer system, the request received by a device manager that has access to a device database; access the device database by the device manager to locate the resource; and respond to the request by the device manager with a value useable by the device driver to access the resource, restricting the device driver to the provided resource and preventing the device driver from allocating the resource to the device, wherein the resource comprises at least one of a first address space within a memory address space or an interrupt assigned to the device, wherein the first address space is memory-mapped to the device, and wherein a read having an address in the first address space is routed to the device instead of to a memory to which a remainder of the memory address space is mapped, and wherein the device is configured to assert the interrupt to an interrupt controller.

2

2. The non-transitory computer accessible storage medium as recited in claim 1 wherein the value is a resource value that directly identifies the resource.

3

3. The non-transitory computer accessible storage medium as recited in claim 1 wherein the value is a handle to the resource, and wherein the device driver is configured to transmit the handle to a controller for the resource, and wherein the controller is configured to transmit the handle to the device manager to obtain a resource value corresponding to the resource.

4

4. The non-transitory computer accessible storage medium as recited in claim 1 wherein the device database further includes dependency data identifying dependencies between a plurality of device drivers, and wherein the device manager further includes instructions which, when executed: receive a request from the device driver for one or more channel identifiers of channels to communicate with at least the device manager; and delay a response to the device driver with the one or more channel identifiers until dependencies identified for the device driver with respect to one or more of the plurality of device drivers have cleared.

5

5. The non-transitory computer accessible storage medium as recited in claim 4 wherein the request from the device driver for the one or more channel identifiers is received prior to the request for the resource.

6

6. The non-transitory computer accessible storage medium as recited in claim 1 wherein only the device manager has access to the device database.

7

7. The non-transitory computer accessible storage medium as recited in claim 1 wherein the device database is an only storage location for resource values for a plurality of devices in the computer system.

8

8. A non-transitory computer accessible storage medium storing a plurality of instructions that are computer-executable to: receive a request from a device driver for a resource allocated to a device in a computer system, the request received by a device manager that has access to a device database, and wherein the request includes an indication that the device driver has an entitlement to access the resource; verify that the device driver has the entitlement, wherein the instructions which, when executed, verify that the device driver has the entitlement comprise instructions which, when executed: transmit the indication to an authenticator; receive a response from the authenticator including the entitlement; and process the entitlement to determine that the device driver is permitted to access the resource; access the device database by the device manager to locate the resource; and respond to the request by the device manager with a value useable by the device driver to access the resource, restricting the device driver to the provided resource and preventing the device driver from allocating the resource to the device.

9

9. The non-transitory computer accessible storage medium as recited in claim 8 wherein the value is a resource value that directly identifies the resource.

10

10. The non-transitory computer accessible storage medium as recited in claim 8 wherein the value is a handle to the resource, and wherein the device driver is configured to transmit the handle to a controller for the resource, and wherein the controller is configured to transmit the handle to the device manager to obtain a resource value corresponding to the resource.

11

11. The non-transitory computer accessible storage medium as recited in claim 8 wherein the device database further includes dependency data identifying dependencies between a plurality of device drivers, and wherein the device manager further includes instructions which, when executed: receive a request from the device driver for one or more channel identifiers of channels to communicate with at least the device manager; and delay a response to the device driver with the one or more channel identifiers until dependencies identified for the device driver with respect to one or more of the plurality of device drivers have cleared.

12

12. The non-transitory computer accessible storage medium as recited in claim 11 wherein the request from the device driver for the one or more channel identifiers is received prior to the request for the resource.

13

13. The non-transitory computer accessible storage medium as recited in claim 8 wherein only the device manager has access to the device database.

14

14. The non-transitory computer accessible storage medium as recited in claim 8 wherein the device database is an only storage location for resource values for a plurality of devices in the computer system.

15

15. A method comprising: receiving a request from a device driver for a resource allocated to a device in a computer system, the request received by a device manager that has access to a device database; accessing the device database by the device manager to locate the resource; and responding to the request by the device manager with a value useable by the device driver to access the resource, restricting the device driver to the provided resource and preventing the device driver from allocating the resource to the device, wherein the resource comprises at least one of a first address space within a memory address space or an interrupt assigned to the device, wherein the first address space is memory-mapped to the device, and wherein a read having an address in the first address space is routed to the device instead of to a memory to which a remainder of the memory address space is mapped, and wherein the device is configured to assert the interrupt to an interrupt controller.

16

16. The method as recited in claim 15 wherein the value is a resource value that directly identifies the resource.

17

17. The method as recited in claim 15 wherein the value is a handle to the resource, and wherein the device driver is configured to transmit the handle to a controller for the resource, and wherein the controller is configured to transmit the handle to the device manager to obtain a resource value corresponding to the resource.

18

18. The method as recited in claim 15 wherein the device database further includes dependency data identifying dependencies between a plurality of device drivers, and the method further comprises: receiving a request from the device driver for one or more channel identifiers of channels to communicate with at least the device manager; and delaying a response to the device driver with the one or more channel identifiers until dependencies identified for the device driver with respect to one or more of the plurality of device drivers have cleared.

19

19. The method as recited in claim 18 wherein the request from the device driver for the one or more channel identifiers is received prior to the request for the resource.

20

20. The method as recited in claim 15 wherein only the device manager has access to the device database.

21

21. The method as recited in claim 15 wherein the device database is an only storage location for resource values for a plurality of devices in the computer system.

22

22. The method as recited in claim 15 wherein the request includes an indication that the device driver has entitlement to access the resource, and the method further comprises verifying that the device driver has the entitlement.

23

23. The method as recited in claim 22 wherein verifying that the device driver has the entitlement comprises: transmitting the indication to an authenticator; receiving a response from the authenticator including the entitlement; and processing the entitlement to determine that the device driver is permitted to access the resource.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

August 30, 2018

Publication Date

April 6, 2021

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Device manager providing resource control and synchronization” (US-10970383). https://patentable.app/patents/US-10970383

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.