Techniques for inter-user-space communication
First Claim
1. A method of intermodule communication between a first code module and a second code module comprising:
- providing said first code module and said second code module each executing in user space;
providing a shared memory portion including storage for one or more commands and which is accessible to said first and said second code modules;
providing a first first-in-first-out (FIFO) structure for sending a location in said shared memory portion from said first code module to said second code module;
providing a second FIFO structure for sending a location in said shared memory portion from said second code module to said first code module;
performing, by said first code module, a first call to code of an application programming interface, said first call having a defined client interface including a first portion of one or more input parameters identifying one or more callback routines of the first code module and a second portion of one or more input parameters identifying other input, said one or more callback routines each being invoked in subsequent processing by said code of the application programming interface;
storing, by said first code module, command data for a command at a first location in said shared memory portion, said storing being performed by a first of said one or more callbacks invoked by said code of the application programming interface; and
issuing a command from said first code module to said second code module by sending said first location from said first code module to said second code module using said first FIFO structure, wherein said issuing is performed by said code of the application programming interface as a result of performing said first call, wherein a completion callback is an optional one of the callback routines of the defined client interface which, if specified in the first call, is invoked by said code of the application programming interface after performing said issuing and causes said first call by the first code module to be performed asynchronously whereby the first code module continues execution while also performing processing for the first call, and wherein if the completion callback is omitted from the first call, said first call is performed synchronously whereby execution of the first code module waits inline at a point of invocation of the first call until processing of the first call completes prior to continuing execution of code of the first code module subsequent to the first call.
9 Assignments
0 Petitions
Accused Products
Abstract
Described are techniques for intermodule communication between a first code module and a second code module each executing in user space. A shared memory portion includes storage for one or more commands and is accessible to the first and the second code modules. A first first-in-first-out (FIFO) structure is used for sending a location in the shared memory portion from the first code module to the second code module. A second FIFO structure is used for sending a location in the shared memory portion from the second code module to the first code module. The first code module stores command data for a command at a first location in the shared memory portion. A command is issued from the first code module to the second code module by sending the first location from the first code module to the second code module using the first FIFO structure.
16 Citations
18 Claims
-
1. A method of intermodule communication between a first code module and a second code module comprising:
-
providing said first code module and said second code module each executing in user space; providing a shared memory portion including storage for one or more commands and which is accessible to said first and said second code modules; providing a first first-in-first-out (FIFO) structure for sending a location in said shared memory portion from said first code module to said second code module; providing a second FIFO structure for sending a location in said shared memory portion from said second code module to said first code module; performing, by said first code module, a first call to code of an application programming interface, said first call having a defined client interface including a first portion of one or more input parameters identifying one or more callback routines of the first code module and a second portion of one or more input parameters identifying other input, said one or more callback routines each being invoked in subsequent processing by said code of the application programming interface; storing, by said first code module, command data for a command at a first location in said shared memory portion, said storing being performed by a first of said one or more callbacks invoked by said code of the application programming interface; and issuing a command from said first code module to said second code module by sending said first location from said first code module to said second code module using said first FIFO structure, wherein said issuing is performed by said code of the application programming interface as a result of performing said first call, wherein a completion callback is an optional one of the callback routines of the defined client interface which, if specified in the first call, is invoked by said code of the application programming interface after performing said issuing and causes said first call by the first code module to be performed asynchronously whereby the first code module continues execution while also performing processing for the first call, and wherein if the completion callback is omitted from the first call, said first call is performed synchronously whereby execution of the first code module waits inline at a point of invocation of the first call until processing of the first call completes prior to continuing execution of code of the first code module subsequent to the first call. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable medium comprising executable code stored thereon for intermodule communication between a first code module and a second code module, the computer readable medium comprising executable code for:
-
providing said first code module and said second code module each executing in user space; providing a shared memory portion including storage for one or more commands and which is accessible to said first and said second code modules; providing a first first-in-first-out (FIFO) structure for sending a location in said shared memory portion from said first code module to said second code module; providing a second FIFO structure for sending a location in said shared memory portion from said second code module to said first code module; performing, by said first code module, a first call to code of an application programming interface, said first call having a defined client interface including a first portion of one or more input parameters identifying one or more callback routines of the first code module and a second portion of one or more input parameters identifying other input, said one or more callback routines each being invoked in subsequent processing by said code of the application programming interface; storing, by said first code module, command data for a command at a first location in said shared memory portion, said storing being performed by a first of said one or more callbacks invoked by said code of the application programming interface; and issuing a command from said first code module to said second code module by sending said first location from said first code module to said second code module using said first FIFO structure, wherein said issuing is performed by said code of the application programming interface as a result of performing said first call, wherein a completion callback is an optional one of the callback routines of the defined client interface which, if specified in the first call, is invoked by said code of the application programming interface after performing said issuing and causes said first call by the first code module to be performed asynchronously whereby the first code module continues execution while also performing processing for the first call, and wherein if the completion callback is omitted from the first call, said first call is performed synchronously whereby execution of the first code module waits inline at a point of invocation of the first call until processing of the first call completes prior to continuing execution of code of the first code module subsequent to the first call. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification