pipe.h 631 字节
Newer Older
B
bernard 已提交
1 2 3 4 5 6 7 8 9
#ifndef PIPE_H__
#define PIPE_H__

/**
 * Pipe Device
 */
#include <rtthread.h>
#include <rtdevice.h>

10 11
#if defined(RT_USING_POSIX)

B
bernard 已提交
12 13 14 15 16 17 18 19
#ifndef RT_PIPE_BUFSZ
#define PIPE_BUFSZ    512
#else
#define PIPE_BUFSZ    RT_PIPE_BUFSZ
#endif

struct rt_pipe_device
{
20
    struct rt_device parent;
B
bernard 已提交
21

22 23
    /* ring buffer in pipe device */
    struct rt_ringbuffer *fifo;
B
bernard 已提交
24

25 26
    rt_uint8_t readers;
    rt_uint8_t writers;
B
bernard 已提交
27

28 29
    rt_wqueue_t reader_queue;
    rt_wqueue_t writer_queue;
B
bernard 已提交
30

31
    struct rt_mutex lock;
B
bernard 已提交
32 33 34 35 36
};
typedef struct rt_pipe_device rt_pipe_t;

rt_pipe_t *rt_pipe_create(const char *name);

37 38
#endif /* RT_USING_POSIX */
#endif /* PIPE_H__ */