videobuf-vmalloc.h (1166B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * helper functions for vmalloc capture buffers 4 * 5 * The functions expect the hardware being able to scatter gather 6 * (i.e. the buffers are not linear in physical memory, but fragmented 7 * into PAGE_SIZE chunks). They also assume the driver does not need 8 * to touch the video data. 9 * 10 * (c) 2007 Mauro Carvalho Chehab, <mchehab@kernel.org> 11 */ 12#ifndef _VIDEOBUF_VMALLOC_H 13#define _VIDEOBUF_VMALLOC_H 14 15#include <media/videobuf-core.h> 16 17/* --------------------------------------------------------------------- */ 18 19struct videobuf_vmalloc_memory { 20 u32 magic; 21 22 void *vaddr; 23 24 /* remap_vmalloc_range seems to need to run 25 * after mmap() on some cases */ 26 struct vm_area_struct *vma; 27}; 28 29void videobuf_queue_vmalloc_init(struct videobuf_queue *q, 30 const struct videobuf_queue_ops *ops, 31 struct device *dev, 32 spinlock_t *irqlock, 33 enum v4l2_buf_type type, 34 enum v4l2_field field, 35 unsigned int msize, 36 void *priv, 37 struct mutex *ext_lock); 38 39void *videobuf_to_vmalloc(struct videobuf_buffer *buf); 40 41void videobuf_vmalloc_free(struct videobuf_buffer *buf); 42 43#endif