Patent ID: 7853957

Claim:
A method capable of writing doorbell information, comprising: creating one or more protection domain address spaces in a doorbell space of an Input/Output (I/O) device; storing doorbell structures in a protection domain address space, wherein the doorbell structures include a receive doorbell structure, a send doorbell structure, completion doorbell structures, a shared receive doorbell structure, and an event doorbell structure; associating data structures with the protection domain address space, wherein the data structures include a receive data structure, a send data structure, completion data structures, a shared receive data structure, and an event data structure; receiving updated content for a data structure selected from the data structures that is associated with a doorbell structure selected from the stored doorbell structures; computing a doorbell structure address for the doorbell structure from a doorbell base address, a protection domain identifier associated with the data structure, and a protection domain stride that indicates a size of the protection domain address space; and submitting doorbell information including the computed doorbell structure address and content for the doorbell structure for writing into a write structure.