Patent ID: 8156295

Claim:
A computer-implemented method performed by a client device for transferring data to a host, wherein the client device is coupled to the host, comprising: reading a first one or more bits from a local memory of the client device, wherein the first one or more bits indicate whether a data structure on a host has been written to since a second one or more bits in the local memory have been most recently updated, wherein the data structure comprises a first pair of slots and a second pair of slots; if the first one or more bits indicate that the data structure on the host has not been written to since the second one or more bits in the local memory have been most recently updated, then: reading the second one or more bits from the local memory, wherein the second one or more bits indicate that the first pair of slots has been read from most recently by the host; reading a third one or more bits from the local memory, wherein the third one or more bits indicate that a first slot of the second pair of slots has been written to more recently than a second slot of the second pair of slots; writing data to the second slot of the second pair of slots based on the first one or more bits, the second one or more bits, and the third one or more bits; updating the first one or more bits in the local memory to indicate that the data structure on the host has been written to since the second one or more bits have been most recently updated; and updating the third one or more bits in the local memory to indicate that the second slot of the second pair of slots has been written to most recently.