device/pipe: add a control cmd to get the space left in pipe
This commit is contained in:
parent
ac5da68db7
commit
0feefc03b6
|
@ -114,6 +114,8 @@ struct rt_pipe_device
|
|||
struct rt_portal_device *read_portal;
|
||||
};
|
||||
|
||||
#define PIPE_CTRL_GET_SPACE 0x14 /**< get the remaining size of a pipe device */
|
||||
|
||||
#define RT_DATAQUEUE_EVENT_UNKNOWN 0x00
|
||||
#define RT_DATAQUEUE_EVENT_POP 0x01
|
||||
#define RT_DATAQUEUE_EVENT_PUSH 0x02
|
||||
|
|
|
@ -190,6 +190,8 @@ static rt_size_t rt_pipe_write(rt_device_t dev,
|
|||
|
||||
static rt_err_t rt_pipe_control(rt_device_t dev, rt_uint8_t cmd, void *args)
|
||||
{
|
||||
if (cmd == PIPE_CTRL_GET_SPACE && args)
|
||||
*(rt_size_t*)args = rt_ringbuffer_space_len(&PIPE_DEVICE(dev)->ringbuffer);
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue