Patent ID: 8700823

Claim:
A non-transitory computer program product comprising a computer useable medium including instructions stored therein that, when executed by a computing device, cause the computing device to perform a method to transfer data from a data source to a data sink, comprising: negotiating with a device driver of the data sink to transfer data from the data source to the data sink; allocating a first buffer to the data source; locking the first buffer so as to enable only the data source to transfer data to the first buffer; allowing the data source to transfer a predetermined amount of data to the first buffer; signaling availability of data in the first buffer to the device driver of the data sink; unlocking the first buffer; granting access to the data sink to read from the first buffer; allocating a second buffer to the data source; locking the second buffer so as to enable only the data source to transfer data to the second buffer; and allowing the data source to write data to the second buffer while enabling the data sink to read data from the first buffer, thereby pipelining data transfer from the data source to the data sink.