1. A computing device comprising
a processor, user memory, kernel memory and a network communications unit
an application program disposed in user space in the user memory
a communications protocol stack configured to interact with the application program,
wherein the communications protocol stack is disposed in kernel space in the kernel memory, the communications protocol stack comprising
a plurality of interfaced layers in which data units are received at the highest layer and logically passed down to and processed by succeeding lower layers
wherein the communications protocol stack is adapted to inform the application program of bandwidth availability on the computing device, the bandwidth availability including timing information and an amount of data that can be sent, wherein the timing information comprises at least one of when a transmit window will open paired with a size of the transmit window and a deadline for action
wherein the communications protocol stack is further adapted to designate at least one region in a shared memory for storage of descriptors of payload data by the application program and to form data units from the descriptors of payload data obtained from the shared memory
wherein the communications protocol stack is adapted to recognize the descriptors indicative that the protocol stack should set the payload data to be one selected from the group including anything, a constant value or constant application data.
2. The computing device of claim 1 wherein
the constant application data is pointed to by a buffer.
3. The computing device of claim 1, wherein the computing device is a communications apparatus.
4. The computing device of claim 1 wherein the plurality of interfaced layers include at least two of, from highest to lowest, a session layer, a transport layer, a network layer and a data-link layer.
5. The computing device of claim 4 wherein the transport layer is the transmission control protocol of a TCPIP protocol and the network layer is the Internet Protocol of the TCPIP protocol.
6. A process for transmitting data using a communications protocol stack on a computing device, the communications protocol stack comprising a plurality of interfaced layers, wherein the communications protocol stack is disposed in kernel space on the computing device, the communications protocol stack for interacting with an application program which is disposed in user space on the computing device, the process comprising
informing the application program of bandwidth availability on the computing device, the bandwidth availability including timing information and an amount of data that can be sent by the computing device, wherein the timing information comprises at least one of a deadline for action and when a transmit window will open paired with a size of the transmit window
designating at least one region in a shared memory for storage of descriptors of payload data by the application program
forming data units from the descriptors of payload data placed in the shared memory by the application program, the forming including
obtaining the descriptors of payload data from the shared memory
recognizing the descriptors of payload data
based on the recognized descriptors performing one of the following actions
setting the payload data to be anything
setting the payload data to be a constant value
setting the payload data to be constant application data.
7. The process of claim 6 wherein
the constant application data is pointed to by a buffer.
8. The process of claim 6 wherein the plurality of interfaced layers include at least two of, from highest to lowest, a session layer, a transport layer, a network layer and a data-link layer.
9. The process of claim 8 wherein the transport layer is the transmission control protocol of a TCPIP protocol and the network layer is the Internet Protocol of the TCPIP protocol.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A method of printing a color image, comprising the steps of:
providing a two-color printer for printing said image on a paper;
determining a location of a printer carriage with respect to a print location of said image being printed on said paper, wherein said printer carriage contains only two print cartridges, namely, a primary color cartridge and an alternate color cartridge corresponding to a primary color and an alternate color, respectively;
moving said printer carriage to a second side of said print location if said printer carriage is on a first side of said print location, and when said primary color cartridge is over said print location, one primary color dot is printed on said paper where called for by said image; after which, when said alternate color cartridge is over said print location, one alternate color dot is printed on said paper when called for by said image;
stopping said print carriage from moving from said first side to said second side once both print cartridges are at said second side of said print location;
moving said printer carriage to said first side of said print location if said printer carriage is on said second side of said print location, and when said alternate color cartridge is over said print location, one alternate color dot is printed on said paper where called for by said image; after which, when said primary color cartridge is over said print location, one primary color dot is printed on said paper when called for by said image; and
stopping said print carriage from moving from said second side to said first side once both print cartridges are at said first side of said print location.
2. A method according to claim 1, further comprising the step of advancing said paper in said printer after said print carriage is stopped.
3. A method according to claim 2, wherein said steps of moving alternate with each other until said image is completely printed.
4. A method according to claim 1, further comprising the step of moving said printer carriage to said second side of said print location if said printer carriage is over said print location.
5. An apparatus for printing a color image, comprising:
a two-color printer for printing said image on a paper;
means for determining a location of a printer carriage with respect to a print location of said image being printed on said paper, wherein said printer carriage contains only two print cartridges, namely, a primary color cartridge and an alternate color cartridge corresponding to a primary color and an alternate color, respectively;
means for moving said printer carriage to a second side of said print location if said printer carriage is on a first side of said print location, and when said primary color cartridge is over said print location, one primary color dot is printed on said paper where called for by said image; after which, when said alternate color cartridge is over said print location, one alternate color dot is printed on said paper when called for by said image;
means for stopping said print carriage from moving from said first side to said second side once both print cartridges are at said second side of said print location;
means for moving said printer carriage to said first side of said print location if said printer carriage is on said second side of said print location, and when said alternate color cartridge is over said print location, one alternate color dot is printed on said paper where called for by said image; after which, when said primary color cartridge is over said print location, one primary color dot is printed on said paper when called for by said image; and
means for stopping said print carriage from moving from said second side to said first side once both print cartridges are at said first side of said print location.
6. A method according to claim 5, further comprising means for advancing said paper in said printer after said print carriage is stopped.
7. A method according to claim 6, further comprising means for alternating lines of printing in each direction until said image is completely printed.
8. A method according to claim 1, further comprising means for moving said printer carriage to said second side of said print location if said printer carriage is over said print location.