MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / virtio_input_read

Function virtio_input_read

components/drivers/virtio/virtio_input.c:142–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

140}
141
142static rt_ssize_t virtio_input_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
143{
144 struct virtio_input_device *virtio_input_dev = (struct virtio_input_device *)dev;
145
146 if (buffer == RT_NULL || pos + size >= virtio_input_dev->virtio_dev.queues[VIRTIO_INPUT_QUEUE_EVENT].num)
147 {
148 return 0;
149 }
150
151 rt_mutex_take(&virtio_input_dev->rw_mutex, RT_WAITING_FOREVER);
152
153 rt_memcpy(buffer, &virtio_input_dev->bcst_events[pos], size);
154
155 rt_mutex_release(&virtio_input_dev->rw_mutex);
156
157 return size;
158}
159
160static rt_ssize_t virtio_input_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
161{

Callers

nothing calls this directly

Calls 3

rt_mutex_takeFunction · 0.85
rt_memcpyFunction · 0.85
rt_mutex_releaseFunction · 0.85

Tested by

no test coverage detected