IP Library › Granted Patent US 8,301,806
Granted Patent B2
US 8,301,806 · App. 12/953,938 · Granted Oct 30, 2012

Configuring an input/output adapter

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,301,806
App. No.
12/953,938
Granted
Oct 30, 2012
Kind
B2
Abstract

A computer-implemented method includes initializing a driver associated with an input/output adapter in response to receiving an initialize driver request from a client application. The input/output adapter may be initialized to enable adapter capabilities of the input/output adapter to be determined. The computer-implemented method also includes determining the adapter capabilities of the input/output adapter and determining slot capabilities of a slot associated with the input/output adapter. The computer-implemented method further includes setting configurable capabilities of the input/output adapter based on the adapter capabilities and the slot capabilities.

Claims (37)

1. A computer-implemented method, comprising:

initializing a driver associated with an input/output adapter in response to receiving an initialize driver request from a client application;

initializing the input/output adapter to enable adapter capabilities of the input/output adapter to be determined;

determining the adapter capabilities of the input/output adapter;

determining slot capabilities of a slot associated with the input/output adapter; and

setting configurable capabilities of the input/output adapter based on the adapter capabilities and the slot capabilities, the configurable capabilities including a maximum number of virtual functions associated with the input/output adapter and a maximum number of virtual functions associated with each port of the input/output adapter, and wherein setting the configurable capabilities of the input/output adapter comprises setting the maximum number of virtual functions associated with each port of the input/output adapter that are configurable by the client application.

2. The computer-implemented method of claim 1 , wherein determining the adapter capabilities of the input/output adapter comprises receiving the maximum number of virtual functions associated with the input/output adapter from an adapter driver associated with the input/output adapter.

3. The computer-implemented method of claim 2 , wherein setting the configurable capabilities of the input/output adapter comprises setting the maximum number of virtual functions that are configurable by the client application.

4. The computer-implemented method of claim 3 , further comprising associating at least one interrupt source with each of the virtual functions.

5. The computer-implemented method of claim 1 , wherein determining the adapter capabilities of the input/output adapter comprises receiving the maximum number of virtual functions associated with each port of the input/output adapter from an adapter driver associated with the input/output adapter.

6. A computer program product comprising a non-transitory computer usable medium having computer usable program code embodied therewith, the computer usable program code executable by a processor to:

initialize a driver associated with an input/output adapter in response to receiving an initialize driver request from a client application;

initialize the input/output adapter to enable adapter capabilities of the input/output adapter to be determined;

determine the adapter capabilities of the input/output adapter;

determine slot capabilities of a slot associated with the input/output adapter; and

set configurable capabilities of the input/output adapter based on the adapter capabilities and the slot capabilities, the configurable capabilities including a maximum number of virtual functions associated with the input/output adapter and a maximum number of virtual functions associated with each port of the input/output adapter, and wherein setting the configurable capabilities of the input/output adapter comprises setting the maximum number of virtual functions for each port of the input/output adapter that are configurable by the client application.

7. The computer program product of claim 6 , wherein the computer usable program code is further executable by the processor to receive the maximum number of virtual functions associated with the input/output adapter from an adapter driver associated with the input/output adapter.

8. The computer program product of claim 6 , wherein the computer usable program code is further executable by the processor to set the maximum number of virtual functions that are configurable by the client application based on the adapter capabilities and the slot capabilities.

9. The computer program product of claim 6 , wherein the computer usable program code is further executable by the processor to associate at least one interrupt source with each of the virtual functions associated with the input/output adapter.

10. The computer program product of claim 6 , wherein the computer usable program code is further executable by the processor to receive the maximum number of virtual functions for each port of the input/output adapter from an adapter driver associated with the input/output adapter.

11. A system, comprising:

a processor; and

an adapter abstraction layer comprising computer usable program code that is stored at a non-transitory computer usable medium, the adapter abstraction layer executable by the processor to:

initialize a driver associated with an input/output adapter in response to receiving an initialize driver request from a client application;

initialize the input/output adapter to enable adapter capabilities of the input/output adapter to be determined;

determine the adapter capabilities of the input/output adapter;

determine slot capabilities of a slot associated with the input/output adapter; and

set configurable capabilities of the input/output adapter based on the adapter capabilities and the slot capabilities, the configurable capabilities including a maximum number of virtual functions associated with the input/output adapter and a maximum number of virtual functions associated with each port of the input/output adapter, and wherein setting the configurable capabilities of the input/output adapter comprises setting the maximum number of virtual functions for each port of the input/output adapter that are configurable by the client application.

12. The system of claim 11 , wherein the adapter abstraction layer is further executable by the processor to receive the maximum number of virtual functions associated with the input/output adapter from an adapter driver associated with the input/output adapter.

13. The system of claim 11 , wherein the adapter abstraction layer is further executable by the processor to set the maximum number of virtual functions that are configurable by the client application based on the adapter capabilities and the slot capabilities.

14. The system of claim 11 , wherein the adapter abstraction layer is further executable by the processor to associate at least one interrupt source with each of the virtual functions associated with the input/output adapter.

15. The system of claim 11 , wherein the computer usable program code is further executable by the processor to receive the maximum number of virtual functions for each port of the input/output adapter from an adapter driver associated with the input/output adapter.

16. The computer-implemented method of claim 1 , further comprising setting the maximum number of virtual functions for each port of the input/output adapter that are configurable by the client application based on the adapter capabilities and the slot capabilities.

17. The computer-implemented method of claim 1 , further comprising associating at least one interrupt source with each of the virtual functions.

18. The computer-implemented method of claim 3 , further comprising setting the maximum number of virtual functions that are configurable by the client application based on the adapter capabilities and the slot capabilities.

19. The computer program product of claim 6 , wherein the computer usable program code is further executable by the processor to set the maximum number of virtual functions for each port of the input/output adapter that are configurable by the client application based on the adapter capabilities and the slot capabilities.

20. The system of claim 11 , wherein the adapter abstraction layer is further executable by the processor to set the maximum number of virtual functions for each port of the input/output adapter that are configurable by the client application based on the adapter capabilities and the slot capabilities.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 24, 2010
From: BROWNLOW, SEAN T.; OBERLY, JOHN R., III
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 025422/0275 →
Continuity (1)
Related Publication 20120131232A1 · May 24, 2012