*
* Return a newly allocated lttng pipe on success or else NULL.
*/
+LTTNG_HIDDEN
struct lttng_pipe *lttng_pipe_open(int flags)
{
int ret;
*
* Return 0 on success else a negative value.
*/
+LTTNG_HIDDEN
int lttng_pipe_read_close(struct lttng_pipe *pipe)
{
int ret;
*
* Return 0 on success else a negative value.
*/
+LTTNG_HIDDEN
int lttng_pipe_write_close(struct lttng_pipe *pipe)
{
int ret;
*
* Return 0 on success else a negative value.
*/
+LTTNG_HIDDEN
int lttng_pipe_close(struct lttng_pipe *pipe)
{
int ret, ret_val = 0;
/*
* Close and destroy a lttng pipe object. Finally, pipe is freed.
*/
+LTTNG_HIDDEN
void lttng_pipe_destroy(struct lttng_pipe *pipe)
{
int ret;
* Return "count" on success. Return < count on error. errno can be used
* to check the actual error.
*/
+LTTNG_HIDDEN
ssize_t lttng_pipe_read(struct lttng_pipe *pipe, void *buf, size_t count)
{
ssize_t ret;
* Return "count" on success. Return < count on error. errno can be used
* to check the actual error.
*/
+LTTNG_HIDDEN
ssize_t lttng_pipe_write(struct lttng_pipe *pipe, const void *buf,
size_t count)
{
#define LTTNG_PIPE_H
#include <pthread.h>
+#include <common/macros.h>
enum lttng_pipe_state {
LTTNG_PIPE_STATE_OPENED = 1,
return pipe->fd[1];
}
+LTTNG_HIDDEN
struct lttng_pipe *lttng_pipe_open(int flags);
+LTTNG_HIDDEN
int lttng_pipe_write_close(struct lttng_pipe *pipe);
+LTTNG_HIDDEN
int lttng_pipe_read_close(struct lttng_pipe *pipe);
/* Close both side of pipe. */
+LTTNG_HIDDEN
int lttng_pipe_close(struct lttng_pipe *pipe);
+LTTNG_HIDDEN
void lttng_pipe_destroy(struct lttng_pipe *pipe);
+LTTNG_HIDDEN
ssize_t lttng_pipe_read(struct lttng_pipe *pipe, void *buf, size_t count);
+LTTNG_HIDDEN
ssize_t lttng_pipe_write(struct lttng_pipe *pipe, const void *buf,
size_t count);