Patent ID: 7590817

Claim:
A method, in a data processing system, for establishing address translations for communicating between a device driver and an input/output (I/O) device, comprising: creating, by the device driver, a queue data structure used to contain queue elements associated with communication between the device driver and the I/O device; initializing one or more address translation entries in an address translation data structure associated with a root complex of the data processing system for the queue data structure, in response to the device driver invoking device driver services, wherein the one or more address translation entries specify one or more translations from one or more untranslated addresses to one or more translated memory addresses associated with the queue data structure; providing translation information, from the address translation data structure, for the one or more address translations associated with the queue data structure to the I/O device; and caching the address translation information in the I/O device for processing communications associated with the queue data structure, wherein the one or more untranslated addresses comprise at least an untranslated starting address for the queue data structure and optionally comprise one of an untranslated ending address for the queue data structure or a length of the queue data structure.