Patent ID: 6963946

Claim:
A descriptor system for transferring incoming data from a peripheral to a host and outgoing data from the host to the peripheral using a shared memory, the descriptor system comprising: an outgoing data descriptor ring in the shared memory, the outgoing data descriptor ring storing outgoing data descriptors indicating locations of outgoing data buffers in the shared memory; an incoming data descriptor ring in the shared memory, the incoming data descriptor ring storing incoming data descriptors indicating locations of incoming data buffers in the shared memory; an incoming data status ring in the shared memory, the incoming data status ring storing incoming data status entries corresponding to incoming data in the incoming data buffers; a control status block in the shared memory, the control status block comprising: an outgoing data descriptor read pointer indicating a location of an outgoing data descriptor in the outgoing data descriptor ring, wherein the outgoing data descriptor read pointer indicates a number of outgoing data buffers to which the host can write outgoing data; and an incoming data status pointer indicating a location of an incoming data status entry in the incoming data status ring, wherein the incoming data status pointer indicates a number of incoming data buffers from which the host can read incoming data; and a descriptor management system in the peripheral, the descriptor management comprising: an outgoing data descriptor write pointer indicating a location of an outgoing data descriptor in the outgoing data descriptor ring, wherein the outgoing data descriptor write pointer indicates a number of outgoing data buffers from which the peripheral can read outgoing data; and an incoming data descriptor pointer indicating a location of an incoming data descriptor in the incoming data descriptor ring, wherein the incoming data descriptor pointer indicates a number of incoming data buffers to which the peripheral can write incoming data.