Home | History | Annotate | Download | only in hw

Lines Matching full:pipe

20  * A goldfish pipe is a very fast communication channel between the guest
23 * To open a new pipe to the emulator, a guest client will do the following:
37 * This header provides the interface used by pipe services in the emulator
41 * 1/ Call goldfish_pipe_add_type() to register a new pipe service by name.
43 * during normal pipe operations.
49 * 3/ Call goldfish_pipe_close() to force the closure of a given pipe.
51 * 4/ Call goldfish_pipe_signal() to signal a change of state to the pipe.
61 /* Pipe handler funcs */
66 * to goldfish_pipe_add_type() when registering a given pipe service.
70 /* Called when the guest kernel has finally closed a pipe connection.
75 void (*close)( void* pipe );
77 /* Called when the guest is write()-ing to the pipe. Should return the
82 int (*sendBuffers)( void* pipe, const GoldfishPipeBuffer* buffers, int numBuffers );
84 /* Same as sendBuffers when the guest is read()-ing from the pipe. */
85 int (*recvBuffers)( void* pipe, GoldfishPipeBuffer* buffers, int numBuffers );
87 /* Called when guest wants to poll the read/write status for the pipe.
90 unsigned (*poll)( void* pipe );
94 * then the pipe implementation shall call goldfish_pipe_wake().
98 /* Called to save the pipe's state to a QEMUFile, i.e. when saving
100 * In this case, when the pipe is loaded, the emulator will automatically
104 void (*save)( void* pipe, QEMUFile* file );
106 /* Called to load the sate of a pipe from a QEMUFile. This will always
107 * correspond to the state of the pipe as saved by a previous call to
108 * the 'save' method. Can be NULL to indicate that the pipe state cannot
112 * In case of success, this returns 0, and the new pipe object is returned
120 /* Register a new pipe handler type. 'pipeOpaque' is passed directly
121 * to 'init() when a new pipe is connected to.
127 /* This tells the guest system that we want to close the pipe and that
135 /* Signal that the pipe can be woken up. 'flags' must be a combination of
149 /* pipe device registers */
186 #define PIPE_WAKE_CLOSED (1 << 0) /* emulator closed pipe */
187 #define PIPE_WAKE_READ (1 << 1) /* pipe can now be read from */
188 #define PIPE_WAKE_WRITE (1 << 2) /* pipe can now be written to */