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

Function virtio_input_write

components/drivers/virtio/virtio_input.c:160–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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{
162 struct virtio_input_device *virtio_input_dev = (struct virtio_input_device *)dev;
163
164 if (buffer == RT_NULL || pos + size >= virtio_input_dev->virtio_dev.queues[VIRTIO_INPUT_QUEUE_EVENT].num)
165 {
166 return 0;
167 }
168
169 rt_mutex_take(&virtio_input_dev->rw_mutex, RT_WAITING_FOREVER);
170
171 rt_memcpy(&virtio_input_dev->bcst_events[pos], buffer, size);
172
173 rt_mutex_release(&virtio_input_dev->rw_mutex);
174
175 return size;
176}
177
178static rt_err_t virtio_input_control(rt_device_t dev, int cmd, void *args)
179{

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